spring security的demo

发布于:2024-07-10 ⋅ 阅读:(128) ⋅ 点赞:(0)

参考:

https://juejin.cn/post/6844903502003568647

Spring Security 5.7.0弃用 WebSecurityConfigurerAdapter-CSDN博客

创建 Spring Security 配置类

WebSecurityConfigurerAdapter已被弃用

package com.cq.sc.security.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.Customizer;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.web.SecurityFilterChain;

@Configuration      // 声明为配置类
@EnableWebSecurity      // 启用 Spring Security web 安全的功能
public class WebSecurityConfig {

    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
//        配置HTTP请求的授权规则
//        authz是HttpSecurity.AuthorizeRequests的实例,用于定义授权规则。
//.anyRequest().authenticated()表示对于任何HTTP请求,都需要用户认证(即用户必须登录)。
// 这里的authenticated()是一个Configurer,它要求所有请求都必须由已认证的用户发起。
//        HTTP Basic认证是一种简单的认证方式,它将用户名和密码以明文(但通常是Base64编码)的形式放在HTTP请求头中。
//        Customizer.withDefaults()是一个定制器(Customizer),它通常用于为HTTP Basic认证提供默认配置。然而,需要注意的是,在Spring Security的常规用法中,直接调用.httpBasic()而不带参数通常已经足够,因为它会自动应用一些默认配置。Customizer.withDefaults()可能是一个特定于项目或库的自定义扩展,用于提供额外的默认配置或行为,但它不是Spring Security核心库中的标准部分。
        http.authorizeHttpRequests((authz)->authz
                .anyRequest().authenticated()
        ).httpBasic(Customizer.withDefaults());
//        这个构建过程将应用所有之前通过链式调用设置的配置,生成一个配置好的HttpSecurity实例,
//        该实例随后可以用于构建Spring Security的过滤器链。
        return http.build();
    }
}

......

还是不太会,有人有更详细的资料分享一下,还有sa-token的demo加说明。