用户发起对rest服务的请求,因为非登录请求,会通过前面的过滤器链(在配置中指定的过滤器会生效),到达最后一道拦截器,在里面校验用户是否认证,未认证时抛出对应类型异常,被拦截器前面一道处理异常的过滤器捕获,默认是重定向到登录页面,此时登录,由于请求匹配了usernamepassword的认证过滤器,进入方法,通过账号密码组装了一个未认证的token,调用manager,遍历其中的provider集合,通过token类型匹配其中一个provider,进入其中进行校验,在provider中会调用被自定义的userdetailservice获取userdetail的实现(一般为数据库中的用户对象),然后进入各种校验,通过的话再组装一个有权限并且认证的token,会被放入线程中,再放入session中,然后通过最后一道拦截器,成功访问应用的服务。(也有可能进入自定义的成功处理器,返回认证用户的json信息)。
自己理解的Spring Security流程
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 引言: 本文系《认证鉴权与API权限控制在微服务架构中的设计与实现》系列的完结篇,前面三篇已经将认证鉴权与API权...