Spring Security架构与实战全解析

Spring security

1.安全架构

1. 认证

who are you

登陆系统:用户系统

2. 授权

权限管理:用户授权

3. 攻击防护

  • xss (cross-site scripting)
  • csrf (cross-site request forgery)
  • cors (cross-origin resource sharing)
  • sql注入

4. 扩展:权限管理模型

a. RBAC(role based access controll)
  • 用户(t_user)
  • 用户角色关联表
  • 角色(t.role)
  • 角色权限关联表
  • 权限 (t_permission)
b. ACL
  • 直接用户和权限挂钩
    用户(t.user)
    权限(t_permission)

2.Spring security 原理

1.过滤器链架构

2.FilterChainProxy

3.SecurityFilterChain

3.使用

导入依赖

复制代码
<!-- Spring Security依赖 -->
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
  <scope>provided </scope>
</dependency>

配置类

复制代码
@Configuration
public class AppSercuityConfig {

    @Bean
    SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http.authorizeHttpRequests(registry ->{
            registry.requestMatchers("/").permitAll()   //允许所有人访问主页
                    .anyRequest().authenticated();              //剩下的所有请求都需要认证
        });

        //启用表单登陆
        http.formLogin(FormLogin -> {
          FormLogin.loginPage("/login").permitAll();
        });

        return http.build();
    }
}

yaml配置文件中配置默认用户名和密码

复制代码
spring:
  security:
    user:
      name: user
      password: 123
      roles: admin,common,hr

不配置默认用户名:user

密码每次都是随机由控制台打印

自定义用户信息查询规则

开启方法级别的精确权限控制

配置类中 @EnableMethodSecurity

控制类中

相关推荐
Wang's Blog几秒前
Java 项目实战: 交友项目 - 圈子互动章总结与自检清单
java·bootstrap·交友
得助智能-垂类大模型6 分钟前
降低大模型推理成本:2026企业级模型推理平台核心架构与选型指标
架构
伯奥克客服21 分钟前
2026年专业全域智能管控平台怎么选?底层架构与协议对接深度解析
架构
海宇服务31 分钟前
零信任架构实战:基于海宇全国车辆配置查验构建自动化二手商用车出厂参数建档网关
运维·人工智能·架构·自动化·1024程序员节
xyouyuweizhu37 分钟前
字节流与字符流:Java IO 的两条主线该怎么选
java·开发语言·python
代码方舟1 小时前
零信任架构实战:基于天远人企关联构建自动化供应链核心企业关联穿透与利益冲突审查网关
java·人工智能·架构·自动化
奈落241 小时前
Dify 管对话、n8n 管执行:把‘大脑+手脚‘的组合架构对照三方平台资料读清楚
人工智能·架构·agent·ai 办公
qianbo_insist1 小时前
# 在 Qwen3.5-2B 上把 GDN-1 无损换成 GDN-2:一次完整的架构手术实验(负结果)
人工智能·pytorch·python·架构
liyi_hz20081 小时前
O2OA(翱途) V10.1 即将发布|功能再升级,安全再加固,协同更高效!
java·javascript·windows·开源软件
骑着蜗牛撵大象3272 小时前
AI Agent 工程化开发实战(三):用 StateGraph 给智能体搭一条可回放的状态流水线
java·开发语言·jvm·ai·状态管理·langgraph·stategraph