关于springsecurity技术栈,逻辑概念的总结

发布时间:2026/6/15 1:34:04

关于springsecurity技术栈,逻辑概念的总结 我之前总结过springmvc的技术栈当时是从三个主要的角度去理解1.springmvc的逻辑作用是什么2.springmvc在代码层面如何配置处理3.springmvc具体提供了哪些机制这里简单做一下说明我们知道tomcat获取到来自http请求包里面的数据以后就使用springmvc解析http请求包里面的内容解析成java数据然后在返回给前端服务器发送一个http请求包回去他本质上就是java和http请求处理的那一层然后对哪一层的领域的概念提供机制供开发者使用。具体配置的话在pom中引入依赖在config包下创建文件夹springmvc提供了1.拦截器的机制2.解析响应http请求包的机制这边也讲一下springsecurity的机制这里说一下背景因为我们不是搞安全的是搞数据流转的程序员所以这个主体封装了一个springsecurity作为安全层面的配置他其实就是主要解决两件事1.网站的登录注册注销就是用户有没有权限去看数据以及如果有权限看数据在代码中应该如何处理基本上就是把数据存到jwt里面然后解析拿到数据2.权限配置使用rbac机制如何配置工程就是1.在pom中引入依赖2.在config包下创建一个配置类继承一个类然后重写方法提供的机制好的我会严格保留你的原文不做任何删改只在你已有内容的基础上进行拓展。下面是整理后的博客文章拓展部分以【拓展】标记方便你识别。我之前总结过springmvc的技术栈当时是从三个主要的角度去理解1.springmvc的逻辑作用是什么2.springmvc在代码层面如何配置处理3.springmvc具体提供了哪些机制这里简单做一下说明我们知道tomcat获取到来自http请求包里面的数据以后就使用springmvc解析http请求包里面的内容解析成java数据然后在返回给前端服务器发送一个http请求包回去他本质上就是java和http请求处理的那一层然后对哪一层的领域的概念提供机制供开发者使用。【拓展】更具体地说Spring MVC 在 Java Web 体系中扮演的是**“表示层框架”**的角色。它把 HTTP 请求抽象成 Controller 中的方法调用把请求参数、头信息、Body 内容等映射成 Java 方法的参数把返回值再映射成 HTTP 响应。这样开发者只需要关心业务逻辑和数据结构而不必直接操作 HttpServletRequest 和 HttpServletResponse。具体配置的话在pom中引入依赖在config包下创建文件夹【拓展】一个典型的 Spring MVC 配置类会用Configuration和EnableWebMvc标注并实现WebMvcConfigurer接口。比如ConfigurationEnableWebMvcComponentScan(com.your.controller)publicclassWebConfigimplementsWebMvcConfigurer{// 重写配置方法如视图解析器、拦截器等}同时在 Servlet 容器初始化时例如通过AbstractAnnotationConfigDispatcherServletInitializer注册DispatcherServlet。springmvc提供了1.拦截器的机制2.解析响应http请求包的机制【拓展】除了你提到的这两个Spring MVC 还提供了很多实用机制例如参数解析器HandlerMethodArgumentResolver自动将请求参数、路径变量、JSON 体等绑定到 Controller 方法的参数上。返回值处理器HandlerMethodReturnValueHandler将方法返回值转换成响应体、视图名或 ModelAndView。消息转换器HttpMessageConverter支持 JSON、XML、表单等多种数据格式与 Java 对象互转。数据校验Valid BindingResult结合 JSR-303 注解对入参进行自动校验。视图解析与内容协商根据请求的 Accept 头或扩展名返回 JSP、Thymeleaf、JSON 等不同视图。文件上传解析器MultipartResolver处理 multipart/form-data 类型的请求。这边也讲一下springsecurity的机制这里说一下背景因为我们不是搞安全的是搞数据流转的程序员所以这个主体封装了一个springsecurity作为安全层面的配置他其实就是主要解决两件事1.网站的登录注册注销就是用户有没有权限去看数据以及如果有权限看数据在代码中应该如何处理基本上就是把数据存到jwt里面然后解析拿到数据2.权限配置使用rbac机制如何配置工程就是1.在pom中引入依赖2.在config包下创建一个配置类继承一个类然后重写方法提供的机制【拓展】Spring Security 在底层提供了一套完整的过滤器链FilterChainProxy每个过滤器负责一个安全关注点。核心机制包括认证Authentication支持多种认证方式如表单登录、Basic 认证、OAuth2、JWT 等。你提到的“数据存到 JWT 里”通常结合JwtAuthenticationFilter实现从请求头解析 Token 并创建Authentication对象。授权Authorization基于角色或权限的访问控制。RBAC 模型可以借助hasRole()、hasAuthority()表达式以及PreAuthorize注解在方法级别进行控制。安全上下文SecurityContextHolder线程绑定的SecurityContext存储当前用户的Authentication对象方便在业务代码中获取用户信息如SecurityContextHolder.getContext().getAuthentication()。密码编码PasswordEncoder提供BCryptPasswordEncoder等对密码进行单向加密避免明文存储。会话管理Session Management可以控制并发会话、固定会话保护、会话超时等。Remember-Me 机制通过 Cookie 实现长时间记住登录状态。异常处理AccessDeniedHandler AuthenticationEntryPoint定制无权限或未认证时的响应例如返回 JSON 格式的错误信息。跨域与 CSRF 防护默认开启 CSRF 保护可针对 API 场景关闭也支持配置 CORS。你可以在配置类中通过重写configure(HttpSecurity http)方法来组合这些机制例如EnableWebSecuritypublicclassSecurityConfigextendsWebSecurityConfigurerAdapter{Overrideprotectedvoidconfigure(HttpSecurityhttp)throwsException{http.csrf().disable().authorizeRequests().antMatchers(/login,/register).permitAll().anyRequest().authenticated().and().addFilter(newJwtAuthenticationFilter(authenticationManager())).sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);}}注意较新版本的 Spring Security 推荐基于SecurityFilterChainBean 的配置方式但继承WebSecurityConfigurerAdapter的思路仍是常见理解方式。

相关新闻