使用
在springsecurity配置类中重写的方法中调用rememberMe方法,具体如下
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser("admin").password("123");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.rememberMe();
}
这就是简单的配置,上面的方法是基于内存配置了一个用户,下面的就是基于自动登陆的简单实现,
方法介绍
authorizeRequests()方法表示要对请求进行验证
.anyRequest().authenticated()表示对所有的请求都需要验证
.formLogin()这个配置springsecurity内置的登陆表单同时默认请求路径为/login
.rememberMe()这个就是自动登录的配置
当用户使用自动登陆的时候,前端请求将会在请求中携带一个remember-me的参数并且赋值on,这个是springsecurity默认表单默认的值,但是经测试,其实只要这个参数携带值就行。
原理
前端请求带上remember-me的参数,并且有值,那么sringsecurity将会生成一个remember-me令牌(如何生成请看TokenBasedRememberMeServices#onLoginSuccess),并且将这个令牌返回给浏览器,浏览器将会在cookie中存储一个name为remember-me信息,这样下次用户再去访问服务器中的地址,请求将会带上remember-me的信息,这样springsecurity通过解析remember-me的信息就可以得知用户能否登陆了。
版权声明:本文为weixin_45922154原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。