
SpringSecurity
lizc_lizc
好好学习,天天向上。
展开
-
SpringSecurity(二)基于数据库用户登录
一、使用SpringSecurity提用的User对象1. 新建一个MyUserService类@Componentpublic class MyUserService implements UserDetailsService { @Override public UserDetails loadUserByUsername(String s) throws Use...原创 2018-11-13 17:34:49 · 5231 阅读 · 1 评论 -
SpringSecurity(九)退出管理
实现退出SpringSecurityConfig.and() .logout() .logoutUrl("/user/logout") // .logoutSuccessUrl("") // 设置退出成功后跳转的页面 .logoutSuccessHandler(new LzcLogoutSuccessHandler()) // 设置退出处理器.and...原创 2018-11-16 12:22:30 · 755 阅读 · 2 评论 -
SpringSecurity(八)session管理
限制用户最大登录数SpringSecurityConfig.and() .sessionManagement() .maximumSessions(1) .maxSessionsPreventsLogin(false) // 当达到maximumSessions时,true表示不能踢掉前面的登录,false表示踢掉前面的用户 .expiredSessio...原创 2018-11-16 10:41:46 · 2034 阅读 · 4 评论 -
SpringSecurity(七)添加记住我功能
记住我基本原理用户认证成功后调用RemeberMeService服务,这个服务里有一个TokenRepository,它会生成一个Token写入浏览器Cookie,同时它还会使用TokenRepository将Token和用户名写入到数据库中。当用户再次访问系统时,过滤器链如下所示,请求会经过RememberMeAuthenticationFilter过滤器,该过滤器会读取cookie...原创 2018-11-14 21:51:09 · 1677 阅读 · 0 评论 -
SpringSecurity(六)短信验证码登录
由 SpringSecurity(四)认证流程 我们已经知道了Spring Security用户名和密码的登录流程。仿照用户名和密码登录编写一个短信验证码登录 手机验证码登录流程图 短信验证码新建一个SmsCode类,里面有三个属性:String code(验证码字符串)、LocalDateTime expireTime(过期时间)、String mobile(手机号)。省...原创 2018-11-14 21:03:47 · 4232 阅读 · 9 评论 -
SpringSecurity(五)图片验证码的使用
SpringSecurity默认是没有图片验证码功能的,假如我们需要在登录界面添加一个图片验证码的功能,我们可以在UsernamePasswordAuthenticationFilter过滤器之前写一个图片验证码过滤器,图片验证码过滤器的功能:首先判断请求地址是否需要图片验证码,如果需要就判断图片验证码是否正确,如果验证码正确则继续往下执行,否则抛出验证码错误异常;如果不需要就直接往下执行。 ...原创 2018-11-14 19:13:53 · 1601 阅读 · 0 评论 -
SpringSecurity(一)自定义登录界面
1. 新建一个SpringBoot工程添加如下依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId&g...原创 2018-11-12 21:13:09 · 6172 阅读 · 0 评论 -
SpringSecurity(十一)权限表达式和Rbac数据模型
常用表达式 表达式 说明 hasRole([role]) 用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀) hasAnyRole([role1,role2]) 用户拥有任意一个制定的角色时返回true hasAuthority([authority]) 等同于hasRole,但不会带有ROLE_前缀 has...原创 2018-11-18 20:52:36 · 5172 阅读 · 5 评论 -
SpringSecurity(四)认证流程
认证流程图相关类UsernamePasswordAuthenticationFilter是一个过滤器,它继承了抽象类AbstractAuthenticationProcessingFilter,负责表单登录请求,public class UsernamePasswordAuthenticationFilter extends AbstractAuthenticationPro...原创 2018-11-14 12:26:14 · 2766 阅读 · 2 评论 -
SpringSecurity(三)自定义登录成功与失败处理
通过前面两篇文章,我们已经知道了如何使用简单的配置来保护我们的应用了,根本不需要去管SpringSecurity的登录验证流程。如果我们需要自定义登录成功与失败处理,我们需要实现AuthenticationSuccessHandler接口和AuthenticationFailureHandler接口。1. 新建MyAuthenticationSuccessHandler类@Compo...原创 2018-11-14 09:19:41 · 12860 阅读 · 5 评论 -
SpringSecurity(十)强制退出指定用户
使用场景假设用户A具有Authority1,Authority2两个权限,用户A登录系统进行相关操作,而此时系统管理员需要删除用户A的Authority2权限,但是需要用户A重新登录权限修改才会生效,如果用户A不重新登录,那么用户A仍然拥有Authority2权限。因此,系统管理员修改完用户A的权限后需要让用户A的登录信息失效。 实现1. 新建一个Bean @Bean...原创 2018-11-16 17:25:05 · 6631 阅读 · 3 评论