Spring Security 认证
2019-01-22 本文已影响2人
Tim在路上
认证用户所要实现的方法还是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("/")
``