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

控制类中

相关推荐
寄存器漫游者12 分钟前
Linux 软件编程 - IO 编程
linux·运维·spring
zfoo-framework12 分钟前
帧同步和状态同步
java
charlotte1024102415 分钟前
高并发:关于在等待学校教务系统选课时的碎碎念
java·运维·网络
2的n次方_19 分钟前
CANN Ascend C 编程语言深度解析:异构并行架构、显式存储层级与指令级精细化控制机制
c语言·开发语言·架构
亓才孓20 分钟前
[JDBC]PreparedStatement替代Statement
java·数据库
L、21831 分钟前
深入理解CANN:面向AI加速的异构计算架构详解
人工智能·架构
_F_y42 分钟前
C++重点知识总结
java·jvm·c++
打工的小王43 分钟前
Spring Boot(三)Spring Boot整合SpringMVC
java·spring boot·后端
毕设源码-赖学姐1 小时前
【开题答辩全过程】以 高校体育场馆管理系统为例,包含答辩的问题和答案
java·spring boot
我真会写代码1 小时前
SSM(指南一)---Maven项目管理从入门到精通|高质量实操指南
java·spring·tomcat·maven·ssm