SpringSecurity认证流程分析
1、要想分析SpringSecurity的认证流程,就一定要先了解整个SpringSecurity的工作流程,我们才能最终进行一些自定义操作。
2、那就是使用username获取到数据库中用户信息并返回成UserDetail实体。
3、在认证的过程中会调UserDetailsService来获取用户的信息,跟传进来的登录信息进行比对,如果认证通过会把UsernamePasswordAuthenticationToken 做一个标志,标记为已认证放进session中。
4、Spring Security 本质就是 过滤器 ,我们可以实现自己的认证过滤器,然后加入到 Spring Security 中即可。 认证过滤器核心实现流程: 除去抛出异常的情况外, filterChain.doFilter(servletRequest, servletResponse); 是必须保证被执行的。
5、Spring Security默认使用 AffirmativeBased 实现 AccessDecisionManager 的 decide 方法来实现授权 到此位置 authentication 当前用户信息,fl当前访问的 资源路径及attributes当前资源路径的决策 (即是否需要认证)。
6、分析一波:其实不管微信或者QQ大体上都是使用这种OAuth2的基本流程:OAuth2 在服务提供者上可分为两类:注:这两者有时候可能存在同一个应用程序中(即SOA架构)。
前后端分离项目可以写什么
1、前后端分离的概念就是“调接口与前端展示数据跟数据交互”,后端给前端专门写接口,至于数据格式自己定,如果处理的好未必一定说是要用json,只是json是目前数据交互上比较好的。
2、前后端分离,前端nodejs运行环境,使用koa2集成负责资源分配与用户交互,实现token验证用户身份,路由控制。等!自行 百度 解决;program: ${workspaceFolder}\app.js此处就是是将app.js作为启动文件。
3、这篇文章主要介绍了nginx+vue.js实现前后端分离的示例代码,现在分享给大家,也给大家做个参考。
springboot国际化(前后端分离情况)
简述:Spring boot+Vue 前后端分离项目部署,主要采用docker容器部署方式。Springboot项目部署:docker构建mysql环境+docker构建项目自身环境。Vue项目:使用docker启动nginx服务器方式代理部署。
针对前后端分离场景下的一种跨域方案,如果不使用如nginx或者springboot的zuul网关等方案,可以采用 httpproxy 方案。
以往大家会选择使用shiro或spring security都需要繁琐的配置定义拦截,前后端分离时还要搭配shiro,OAuth0跨域等等问题。sa-token在于方便、简单、拆箱即用,少量配置实现登录、权限拦截。
方法中要添加 权限的 url 和 method 。但是SimpleGrantedAuthority 只支持传入一个参数。所以我门考虑要再写一个类 实现 GrantedAuthority 接口,并在构造函数中传入两个参数。嘻嘻。
【参数加密】前后端分离请求参数加密与响应结果加密处理
1、编辑更改过滤器的注册 因注册到spring security 组件上无法拦截ignoing 的请求,更改为spring boot 方式注册,注意点为order 排序的设置,响应最简单设置为最大就好。关键点是请求filter的位置非常重要。
2、前后端约定一个key,将请求参数按照字母排序拼接成一个字符串(通常都是ASCll排序),然后拼接上key,最后用MD5或者SHA进行加密,得到一个加密的签名sign,再把sign作为最后一个参数传到服务端。
3、RSA+AES混合加密,即后端通过RSA算法生成一对公私钥,并把公钥提供给前端。前端通过AES算法生成密钥,利用公钥进行加密并送给后端,后端根据私钥进行解密,得到与前端相同的AES密钥。