V4-06 单点登录下篇, 无数据库版(没完成)
2021/7/27 2:06:02
本文主要是介绍V4-06 单点登录下篇, 无数据库版(没完成),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
接上: 总结逻辑(单点登录由来)
传统单体架构方式的会话是如何实现的Cookie session
传统单体架构方式的登录在分布式架构中有什么缺陷(Cookie的跨域 session的共享
分布式架构中的认证方式如何实现
1. (session数据持久化 Redis)
2. 认证服务器创建令牌, 客户端存储令牌(服务端进行解析)
认证服务器的作用:
专门用来判断用户的合法性(创建并相应令牌,设置认证机制, 登录成功,失败,没有认证)
认证服务器基于什么规范进行创建
JWT-JSON web Token
资源服务器要做什么(解析令牌, 存储用户认证和权限信息, 提供有条件的资源访问)
Bug分析
400 参数异常401 403
---------------------- resource 资源服务器
token的制作或者解析时候出现错误
检查JwtUtils类 查看方法有无错误, 两个utils
如果拦截器没放行 返回true 返回的就是
------------------------------创建公共工程(抽取共性)----------------
创建sso-common工程
util包拉过来, 删除多余util包
common工程的三个依赖
引用common依赖
---> 在auth包中添加依赖(common依赖)
---> 在resource中添加依赖(common依赖)
<dependencies> <dependency> <groupId>com.cy.jt</groupId> <artifactId>sso-common</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies>
服务端过滤器层面的跨域请求的解决办法
当访问认证和资源服务器时,假如是前后端分离项目,需要进行跨域访问
跨域配置代码如下--->
package sso.config; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.UrlBasedCorsConfigurationSource; import org.springframework.web.filter.CorsFilter; @Configuration public class CorsFilterConfig { /** * 服务器服务端过滤器层面设计 * @return */ @Bean public FilterRegistrationBean<CorsFilter> filterFilterRegistrationBean(){ //1.对此过滤器进行配置(跨域设置-url,method) UrlBasedCorsConfigurationSource configSource=new UrlBasedCorsConfigurationSource(); CorsConfiguration config=new CorsConfiguration(); config.addAllowedHeader("*");//所有请求头信息 config.addAllowedMethod("*");//post,delete,get,put,.... config.addAllowedOrigin("*");//所有请求参数 config.setAllowCredentials(true);//所有认证信息,cookie //2.注册过滤器并设置其优先级 这种请求的路径全部放行 configSource.registerCorsConfiguration("/**", config); FilterRegistrationBean<CorsFilter> fBean= new FilterRegistrationBean(new CorsFilter(configSource)); fBean.setOrder(Ordered.HIGHEST_PRECEDENCE);//设置优先级 return fBean; } }
-------->测试: 登录 访问增查,查看权限信息
当你已经点击退出登录logout时候
removeItem直接删除token
这篇关于V4-06 单点登录下篇, 无数据库版(没完成)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?
- 2024-05-30java excel上传--poi
- 2024-05-30安装笔记本应用商店的pycharm,再安排pandas等模块,说是没有打包工具?
- 2024-05-29java11新特性
- 2024-05-29哪些无用敏捷指标正在破坏敏捷转型?
- 2024-05-29鸿蒙原生应用再新丁!新华社 入局鸿蒙
- 2024-05-29设计模式 之 迭代器模式(Iterator)