python制作视频网站开发怎么建设一个漫画网站
- 作者: 多梦笔记
- 时间: 2026年02月17日 21:25
当前位置: 首页 > news >正文
python制作视频网站开发,怎么建设一个漫画网站,来个黑黑的网站,站外推广策划书Spring Boot集成Spring Security之认证流程 一、概要说明二、基于内存的用户名密码1、默认用户名密码2、自定义用户名密码3、为方便测试添加测试接口TestController 三、登录登出重要概念介绍四、登录业务逻辑1、登录业务相关过滤器2、访问业务请求处理流程①、访问业务请求地址… Spring Boot集成Spring Security之认证流程 一、概要说明二、基于内存的用户名密码1、默认用户名密码2、自定义用户名密码3、为方便测试添加测试接口TestController 三、登录登出重要概念介绍四、登录业务逻辑1、登录业务相关过滤器2、访问业务请求处理流程①、访问业务请求地址被拦截重定向到登录页面请求②、重定向定页面请求返回登录页面③、输入正确用户名密码重定向到业务请求④、重定向到业务请求 五、登出业务实现逻辑1、登出业务相关过滤器2、访问登出页面请求处理流程3、登出页面确认登出请求处理流程①、确认登出重定向到登录页面请求②、登录页面请求 六、说明七、Spring Boot集成Spring Security专栏 一、概要说明
本文主要介绍登录登出业务流程所以使用基于内存的用户名密码暂不介绍授权相关内容后续会详细介绍基于数据库的认证及授权如何查看基于内存的默认用户名密码如何配置基于内存的自定义用户名密码本文与上文有强关联性如果对过滤器链中登录相关的过滤器不熟悉的同学请先查看过滤器链详解
二、基于内存的用户名密码
1、默认用户名密码
一、Spring Boot集成Spring Security之自动装配中第五节已介绍当用户未自定义认证接口时生成默认认证接口inMemoryUserDetailsManager其中用户名为user密码为随机生成的uuid项目启动时会打印在控制台中 用户名密码源码
2、自定义用户名密码
上一小节【用户名密码源码】中配置绑定可以配置自定义用户名、密码通过配置文件配置用户名密码
3、为方便测试添加测试接口TestController
package com.yu.demo.web;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;RestController
RequestMapping(/test)
public class TestController {GetMapping(/hello)public String hello() {return success;}} 三、登录登出重要概念介绍
安全上下文仓库SecurityContextRepository用于存储安全上下文默认基于session实现HttpSessionSecurityContextRepository安全上下文持有者SecurityContextHolder用于存储本次请求的安全上下文默认基于ThreadLocal实现安全上下文SecurityContext用于存储认证信息认证信息Authentication用于存储用户及认证结果信息主要实现类有 用户名密码认证TokenUsernamePasswordAuthenticationToken匿名认证TokenAnonymousAuthenticationToken 登录页面请求跳转到登录页面的请求登录请求在登录页面输入用户名密码后提交的请求登出页面请求跳转到登出页面的请求登出请求在登出页面确认登出提交的请求
四、登录业务逻辑
1、登录业务相关过滤器
SecurityContextPersistenceFilterUsernamePasswordAuthenticationFilterDefaultLoginPageGeneratingFilterAnonymousAuthenticationFilterExceptionTranslationFilterFilterSecurityInterceptor
2、访问业务请求处理流程
①、访问业务请求地址被拦截重定向到登录页面请求
浏览器访问业务请求地址http://localhost:8080/test/helloSecurityContextPersistenceFilter处理请求 从安全上下文仓库中获取安全上下文为空创建没有认证信息的安全上下文SecurityContextImpl将第1步中获取的安全上下文设置到安全上下文持有者中执行后续过滤器链 AnonymousAuthenticationFilter处理请求 获取安全上下文持有者中的安全上下文中的认证信息为空创建匿名认证信息创建新的没有认证信息的安全上下文将第2步中的匿名认证信息设置到第3步中的安全上下文中将第3步中的安全上下文中设置到安全上下文持有者中执行后续过滤器链 FilterSecurityInterceptor处理请求 验证安全上下文持有者中的安全上下文中的匿名认证信息通过验证授权信息失败业务请求地址未设置可以匿名访问时抛出AccessDeniedException异常 ExceptionTranslationFilter处理请求 捕获FilterSecurityInterceptor抛出的AccessDeniedException异常判断是因为匿名访问导致的授权异常创建新的没有认证信息的安全上下文将第3步中的安全上下文中设置到安全上下文持有者中重定向到登录页面http://localhost:8080/login SecurityContextPersistenceFilter处理请求 执行chain.doFilter之后的代码获取安全上下文持有者中的安全上下文删除安全上下文持有者中的安全上下文将第2步中获取的安全上下文保存到安全上下文仓库中 重定向登录页面请求http://localhost:8080/loginGET
②、重定向定页面请求返回登录页面
SecurityContextPersistenceFilter处理请求 从安全上下文仓库中获取安全上下文为空创建没有认证信息的安全上下文SecurityContextImpl将第1步中获取的安全上下文设置到安全上下文持有者中执行后续过滤器链 DefaultLoginPageGeneratingFilter处理请求 判断是跳转到登录页面的请求生成默认登录页面返回并渲染生成的默认登录页面不在调用后续过滤器调用前面Filter中chain.doFilter之后的代码 SecurityContextPersistenceFilter处理请求 执行chain.doFilter之后的代码获取安全上下文持有者中的安全上下文删除安全上下文持有者中的安全上下文将第2步中获取的安全上下文保存到安全上下文仓库中
③、输入正确用户名密码重定向到业务请求
SecurityContextPersistenceFilter处理请求 从安全上下文仓库中获取安全上下文为空创建没有认证信息的安全上下文SecurityContextImpl将第1步中获取的安全上下文设置到安全上下文持有者中执行后续过滤器链 UsernamePasswordAuthenticationFilter处理请求 判断需要认证AbstractAuthenticationProcessingFilter.doFilter方法认证用户名密码成功生成已认证的认证信息UsernamePasswordAuthenticationToken创建新的没有认证信息的安全上下文将第2步中的认证信息设置到第3步中的安全上下文中将第3步中的安全上下文设置到安全上下文持有者中将第3步中的安全上下文保存到局部变量安全上下文仓库中空实现重定向到业务请求地址http://localhost:8080/test/hello SecurityContextPersistenceFilter处理请求 执行chain.doFilter之后的代码获取安全上下文持有者中的安全上下文删除安全上下文持有者中的安全上下文将第2步中获取的安全上下文保存到安全上下文仓库中
④、重定向到业务请求
SecurityContextPersistenceFilter处理请求 从安全上下文仓库中获取已认证的安全上下文将第1步中获取的安全上下文设置到安全上下文持有者中执行后续过滤器链 FilterSecurityInterceptor处理请求 验证安全上下文持有者中的安全上下文中的认证信息通过验证授权成功进入DispatcherServlet分发请求到具体的controller调用接口返回数据 SecurityContextPersistenceFilter处理请求 执行chain.doFilter之后的代码获取安全上下文持有者中的安全上下文删除安全上下文持有者中的安全上下文将第2步中获取的安全上下文保存到安全上下文仓库中
五、登出业务实现逻辑
1、登出业务相关过滤器
SecurityContextPersistenceFilterLogoutFilterDefaultLogoutPageGeneratingFilter
2、访问登出页面请求处理流程
浏览器访问登出请求地址http://localhost:8080/logoutSecurityContextPersistenceFilter处理请求 从安全上下文仓库中获取已认证的安全上下文将第1步中获取的安全上下文设置到安全上下文持有者中执行后续过滤器链 DefaultLogoutPageGeneratingFilter处理请求 判断是跳转到登出页面的请求生成默认登出页面返回并渲染生成的默认登出页面不在调用后续过滤器调用前面Filter中chain.doFilter之后的代码 SecurityContextPersistenceFilter处理请求 执行chain.doFilter之后的代码获取安全上下文持有者中的安全上下文删除安全上下文持有者中的安全上下文将第2步中获取的安全上下文保存到安全上下文仓库中
3、登出页面确认登出请求处理流程
①、确认登出重定向到登录页面请求
SecurityContextPersistenceFilter处理请求 从安全上下文仓库中获取已认证的安全上下文将第1步中获取的安全上下文设置到安全上下文持有者中执行后续过滤器链 LogoutFilter处理请求 判断是登出请求获取安全上下文持有者中的安全上下文登出处理器处理登出业务 删除安全上下文持有者中的安全上下文创建没有认证信息的安全上下文将第2步中的安全上下文保存到安全上下文仓库中 重定向到登录页面 SecurityContextPersistenceFilter处理请求 执行chain.doFilter之后的代码获取安全上下文持有者中的安全上下文删除安全上下文持有者中的安全上下文将第2步中获取的安全上下文保存到安全上下文仓库中
②、登录页面请求
第三节登录业务逻辑已介绍不再赘述。
六、说明
Spring Boot集成Spring Security默认是非前后分离架构本文介绍的流程是非前后分离版本的处理流程前后分离处理流程较为简单 未认证时访问业务接口返回未认证错误信息调用登录接口成功后返回Token此后请求头中携带此Token调用登出接口成功后返回成功后端将该Token失效携带Token访问业务接口后端验证Token成功后调用业务接口并返回数据
七、Spring Boot集成Spring Security专栏
一、Spring Boot集成Spring Security之自动装配 二、Spring Boot集成Spring Security之实现原理 三、Spring Boot集成Spring Security之securityFilterChain过滤器链详解 四、Spring Boot集成Spring Security之认证流程 五、Spring Boot集成Spring Security之登录成功后自动认证业务实现逻辑未完成 六、Spring Boot集成Spring Security之自定义securityFilterChain过滤器链未完成 七、Spring Boot集成Spring Security之自定义基于JWT的用户名密码认证未完成 八、Spring Boot集成Spring Security之登录成功后JWT自动认证未完成 九、Spring Boot集成Spring Security之验证码认证未完成
相关文章
-
python用于网站开发wordpress 断点调试
python用于网站开发wordpress 断点调试
- 站长
- 2026年02月17日
-
python网站开发优缺点vi设计案例ppt
python网站开发优缺点vi设计案例ppt
- 站长
- 2026年02月17日
-
python网站开发教程精利手表网站
python网站开发教程精利手表网站
- 站长
- 2026年02月17日
-
python做后台网站的多吗哪个网站做原创歌曲
python做后台网站的多吗哪个网站做原创歌曲
- 站长
- 2026年02月17日
-
python做软件的网站网站定制开发内容
python做软件的网站网站定制开发内容
- 站长
- 2026年02月17日
-
python做网站表白wordpress首页自定义小工具
python做网站表白wordpress首页自定义小工具
- 站长
- 2026年02月17日
