分布式整合之实现思路分析|学习笔记

简介: 快速学习分布式整合之实现思路分析

开发者学堂课程【Spring Security知识精讲与实战演示(三)分布式整合之实现思路分析】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/732/detail/13068


分布式整合之实现思路分析

 

分布式整合的整体思路

分布式认证的思路,默认情况下,用户认证的时候,使用的是usernamepasswordauthentication方法实现的验证。

认证成功之后,过滤应用之后进行查看后,可以看到它只接收post的请求,不是post请求,会报错。

但现在要进行分布式,需要修改成符合的模式进行修改,因此需要进行重写这个方法。在此页面其实就是接收到username和password。

传过来之后,需要分装一个userpassworduthentication的对象直接往下传即可。

后续的步骤就是框架自己完成,会去验证密码和用户名是否正确。

)else(

String username = this.obtainUsername(request);

String password = this.obtainPassword(request);

if(username == null) (

username =排A

if(password== null) [

password="”

username =username.trim();

UsernamePasswordAuthenticationToken

authRequest = new UsernamePasswordAuthenticationToken(username, password); this.setDetails(request, authRequest);

return this.getAuthegticationManager().authenticate(authRequest);

protected String obtainPassword(HttpServletRequest request) (return request.getParameter(this.passwordParameter);)

成功之后的操作在filter里面查看到一个seccussful的页面,成功之后直接将结果放到了userpassworduthentication中,得到了自己的容器。名字叫securitycontext,相当于在容器中放入了一个认证通过的对象。但这里面很明显不是想要的结果,如果认证成功,首先发起认证,系统需要判断是否成功,成功是发放一个令牌,而不是筛选一个对象。

rotected

void

successfulAuthentication(HttpServletRequest

request, HttpServletResponse response, FilterChain chain, Authentication if(this.logger.isDebugEnabled())(

this.

logger.debug(0:"Authentication

success.

Updating SecurityContextHolder to contain:" + authResult);SecurityContextHolder.getContext().setAuthentication(authResult);

this.rememberleServices.

loginSuccess(request, response, authResult);

if (this.eventPublisher!= null) (

this.erentPublisher.publishEvent

(new

InteractiveAuthenticationSuccessEvent(authResult, this.getClass()));

this. successHandler.onAuthenticationSuccess(request, response, authResult);

rotected void unsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, AuthenticationException failed) SecurityContextHolder.clearContext();

if (this.logger.isDebugEnabled())(

this. logger.debug( o:"Authentication request failed:"+ failed.toString(), failed);

上述为认证流程的分析。

1.用户认证

由于,分布式项目,多数是前后端分离的架构设计,我们要满足可以接受异步post的认证请求参数,需要修改UsernamePasswordAuthenticationFilter过滤器中attemptAuthentication方法,让其能够接收请求体。

另外,默认successfulAuthentication方法在认证通过后,是把用户信息直接放入session就完事了,现在我们需要修改这个方法,在认证通过后生成token并返回给用户。

2.身份校验

原来BasicAuthenticationFilter过滤器中doFilterInternal方法校验用户是否登录,就是看session中是否有用户信息,我们要修改为,验证用户携带的token是否合法,并解析出用户信息,交给SpringSecurity,以便于后续的授权功能可以正常使用。

需要重写BasicAuthenticationFilter过滤器中doFilterInternal方法。到此,分析完成分布式认证要做的就是自定义俩个过滤器,进行重新的分析认证即可。

相关文章
|
5月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(二)Rest微服务工程搭建
145 0
|
5月前
|
设计模式 安全 Java
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
95 0
|
2月前
|
运维 安全
基于simulink的分布式发电系统自动重合闸的建模与仿真分析
本课题研究配电系统中分布式电源接入后的自动重合闸问题,着重分析非同期重合闸带来的冲击电流及其影响。通过Simulink搭建模型,仿真不同位置及容量的分布式电源对冲击电流的影响,并对比突发性和永久性故障情况。利用MATLAB2022a进行参数设置与仿真运行,结果显示非同期重合闸对系统安全构成挑战,需通过优化参数提升系统性能。
|
5月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
250 0
|
3月前
|
设计模式 安全 NoSQL
Java面试题:结合单例模式与Java内存管理,设计一个线程安全的单例类?分析Java多线程工具类ExecutorService与Java并发工具包中的工具类,设计一个Java并发框架的分布式锁实现
Java面试题:结合单例模式与Java内存管理,设计一个线程安全的单例类?分析Java多线程工具类ExecutorService与Java并发工具包中的工具类,设计一个Java并发框架的分布式锁实现
55 0
|
3月前
|
运维 监控 Java
在大数据场景下,Elasticsearch作为分布式搜索与分析引擎,因其扩展性和易用性成为全文检索首选。
【7月更文挑战第1天】在大数据场景下,Elasticsearch作为分布式搜索与分析引擎,因其扩展性和易用性成为全文检索首选。本文讲解如何在Java中集成Elasticsearch,包括安装配置、使用RestHighLevelClient连接、创建索引和文档操作,以及全文检索查询。此外,还涉及高级查询、性能优化和故障排查,帮助开发者高效处理非结构化数据。
66 0
|
5月前
|
数据采集 存储 运维
如何使用SkyWalking收集分析分布式系统的追踪数据
通过以上步骤,你可以使用 SkyWalking 工具实现对分布式系统的数据采集和可视化。SkyWalking 提供了强大的追踪和度量功能,帮助开发者和运维人员更好地理解系统的性能状况。欢迎关注威哥爱编程,一起学习成长。
143 0
|
5月前
|
前端开发 JavaScript 算法
分布式系统的一致性级别划分及Zookeeper一致性级别分析
分布式系统的一致性级别划分及Zookeeper一致性级别分析
|
5月前
|
缓存 监控 负载均衡
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(数据缓存不一致分析)
【分布式技术专题】「缓存解决方案」一文带领你好好认识一下企业级别的缓存技术解决方案的运作原理和开发实战(数据缓存不一致分析)
124 2
|
5月前
|
存储 负载均衡 NoSQL
【分布式技术架构】「Tomcat技术专题」 探索Tomcat集群架构原理和开发分析指南
【分布式技术架构】「Tomcat技术专题」 探索Tomcat集群架构原理和开发分析指南
124 1

热门文章

最新文章