Spring Security 认证

时间:2022-07-22
本文章向大家介绍Spring Security 认证,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

认证用户所要实现的方法还是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("/")
``