Spring Security 认证

作者: Tim在路上 | 来源:发表于2019-01-22 14:17 被阅读2次

    认证用户所要实现的方法还是configure(HttpSecurity)配置如何通过拦截器保护请求。

    认证指的是通过用户密码登一系列信息认证,在配置Spring Security时我们免费获得了一个登录界面。

    @Configuration
    @EnableWebSecurity
    public class SecurityConfig extends WebSecurityConfigurerAdapter{}
    

    即使重写configure(HttpSecurity),也可通过这个.formLogin()方法来使用默认页面。

    当然也可以重写登录页面。

    启用HTTP Basic认证

    如果要启用HTTP Basic认证的话,只需要在configure()方法所传入的HttpSecurity对象上调用httpBasic()即可。另外,还可以通过调用realmName()方法指定域。如下是在Spring Security中启用HTTP Basic认证的典型配置:

    @Override
    protected void configure(HttpSecurity http) throws Exception{
        http
          .formLogin()
            .loginPage("/login")
          .and()
          .httpBasic()
             .realmName("Spittr")
          .and()
          ...
    }
    
    启用remember-me功能

    只要在方法上添加

    http
       ...
       .rememberMe()
             .tokenValiditySeconds(2419200)
             .key("spittrKey")
    

    即可

    我们指定这个token最多四周内有效(2,419,200秒)。存储在cookie中的token包含用户名、密码、过期时间和一个私匙——在写入cookie前都进行了MD5哈希。默认情况下,私匙的名为SpringSecured,但是这里我们将其设置为spitterKey,使他专门用于Spittr应用。

    <input id="remember-me" name="remember-me" type="checkbox"/>
    <lable for="remember-me" class="inline">Remember me</label>
    

    我们需要有一种方式来让用户表明他们希望应用程序记住他们。为了实现这一点,登录请求必须包含一个名为remember-me的参数。在登录表单中,增加一个简单复选框就可以完成这件事:

    退出

    默认security退出页面是到登录页面,如果想重定义到其他页面可以在其中添加方法配置。

    .logout()
             .logoutSuccessUrl("/")
    ``

    相关文章

      网友评论

        本文标题:Spring Security 认证

        本文链接:https://www.haomeiwen.com/subject/rfxhjqtx.html