springSecurity
喝醉的咕咕鸟
每天学一点,进步一点点
展开
-
spring Security原理总结
Spring Security原理:相关流程图:来源网上,懒得去画了。web权限记住用户流程:表单登录认证流程图:各个过滤器链的流程图:搞懂这些SpringSecurity就没问题了。采用:责任链的设计模式,它有一条很长的过滤器链。通过不同的过滤器处理相应的业务流程,如登录认证、权限过滤等。其中15条过滤器使很常用的,业务中经常涉及到的,做个总结。一、UsernamePasswordAuthenticationFilter :账号密码过滤器作用: ...原创 2020-11-23 23:28:32 · 974 阅读 · 0 评论 -
SpringSecurity--权限配置
权限相关API和流程:关键点在: 1.FilterSecurityInterceptor 所有的SpringSecurity拦截器都会进入这个安全处理器中。只有通过才能处理业务逻辑。 2.AccessDecisionManager:认证投票处理。 3.AccessDecisionVoter:选举者。 4.AbstractAccessDecisionMan...原创 2019-03-20 11:42:03 · 3438 阅读 · 1 评论 -
SpringSecurityOauth--demo代码
demo代码:https://github.com/timeday/spring-security原创 2019-03-20 11:41:41 · 138 阅读 · 0 评论 -
SpringSecurityOauth--用户名和密码登陆(令牌)
SpringSecurityOauth:认证服务器和资源服务器。 只要登陆成功后系统都会返回一个accessToken,因而在用户名和密码登陆的过程中,认证成功需要返回一个令牌,接下来每一次请i去都需要带着这个令牌进行业务处理。登陆成功后,我们会进入一个成功处理器中,这个时候就把令牌返回回来就行。 (来源网络)...原创 2019-03-25 08:52:53 · 1445 阅读 · 0 评论 -
SpringSocial--第三方社交账号绑定
SpringSocial提供了表单登陆的账号和第三方账号绑定的功能,主要作用的控制类是social包下的ConnectController类。ConnectController源码://用于社交账号绑定@Controller@RequestMapping("/connect")public class ConnectController implements Initia...原创 2019-03-25 08:52:48 · 895 阅读 · 9 评论 -
SpringSocial--微信登陆
SpringSocial微信登陆和QQ登陆的原理是一样的,但是需要注意的是微信的access_token信息。与标准OAuth2协议不同,微信在获取access_token时会同时返回openId,并没有单独的通过accessToke换取openId的服务。因而我们需要继承了标准AccessGrant,添加了openId字段,作为对微信access_token信息的封装。public ...原创 2019-03-25 08:52:41 · 499 阅读 · 0 评论 -
SpringSocial--QQ实现
SpringSocial实现第三方社交登陆---QQ。 根据SpringSocial提供的相关接口,我们只需要从服务提供商那里获取到用户的相关信息,然后交给SpringSecurity就可以轻松的实现QQ登陆。相关涉及到的类/接口: 1. AbstractOAuth2ServiceProvider 2.OAuth2Template 3.OAuth2Connectio...原创 2019-03-25 08:52:36 · 932 阅读 · 2 评论 -
SpringSocial基本原理
SpringSocial:用于第三方应用登陆。官网:https://projects.spring.io/spring-social/原理图: (来源于网上)SocialAuthenticationFilter:用于拦截第三方应用的请求。public class...原创 2019-03-20 11:41:48 · 3389 阅读 · 0 评论 -
SpringSecurity--验证码原理
验证码生成和发送: 表单提交/短信登陆:SpringSecurity配置:@Configurationpublic class BrowserSecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private DataSource dataSource; @Autowi...原创 2019-03-25 08:52:30 · 566 阅读 · 0 评论 -
SpringSecurity--记住我功能原理
记住我功能原理:项目中记住我配置://记住我配置,如果想在'记住我'登录时记录日志,可以注册一个InteractiveAuthenticationSuccessEvent事件的监听器http.rememberMe().tokenRepository(persistentTokenRepository())//保存方式//国企时间 .tokenValiditySeconds...原创 2019-03-20 11:42:10 · 621 阅读 · 0 评论 -
SpringSecurity表单用户名和密码登陆
流程:关键点在 :UsernamePasswordAuthenticationFilter:用于处理用户名和密码登陆验证拦截。public class UsernamePasswordAuthenticationFilter extends AbstractAuthenticationProcessingFilter { //表单提交的请求参数名称 public stati...原创 2019-03-20 11:42:33 · 2875 阅读 · 0 评论 -
SpringSecurity基本原理
SpringSecurity原理图: SpringSecurity中存在各种各样的拦截器用于处理不同的业务请求,如UsernamePasswordAuthenticationFilter:用于处理用户名和密码登陆;RememberMeAuthenticationFilter:用于实现记住我功能;OAuth2AuthenticationProcessingFilter:用于实现Sp...原创 2019-03-20 11:41:33 · 576 阅读 · 0 评论 -
SpringSecurityOauth原理
SpringSecurityOauth2包含了认证服务器和资源服务器,认证服务器是用来生成令牌(token),资源服务器是验证该请求是否存在令牌,如果存在才能通过,否则不通过。认证服务器:在类上加上@EnableAuthorizationServer认证服务器有4中授权模式: 1.用户名和密码模式 2.授权码模式 3.客户端模式 4.简化模式关于这四种...原创 2019-03-20 11:42:20 · 4081 阅读 · 0 评论 -
SpringSecurityOauth实现单点登陆
单点登陆介绍: 相关介绍:https://www.cnblogs.com/EzrealLiu/p/5559255.html图片来源:https://my.oschina.net/merryyou/blog/1613235单点登陆 : 各个业务系统围绕着一个认证服务器进行身份认证和授权,并且 各个业务系统客户端从认证服务器获取到的令牌不是一样的,但是,其都获取到当前...原创 2019-03-20 11:42:27 · 682 阅读 · 0 评论 -
SpringSecurity学习代码
代码: https://github.com/timeday/spring-security.git原创 2019-03-20 11:41:58 · 113 阅读 · 0 评论