Spring Security6 Configuration

1. 基本概念

  • 认证(Authentication): 认证可以看成是一种最简单的授权,它只要区分“你是谁”,能拒绝“无名氏”访问Web资源
  • 授权(Authorization): 先认证,再授权。
  • HTTP Basic认证流程:当request第一次到达服务器时,服务器没有认证的信息,服务器会返回一个401 Unauthozied给客户端。认证之后将认证信息放在session,以后在session有效期内就不用再认证了。(HTTP 状态码: 401:未认证;403:未授权)
  • 默认情况下,Spring Security 使用HTTP Basic认证流程,将用户名与密码,放到HTTP 请求消息的首部-------Authentication 中传给Server端应用。
GET http://localhost:9090/public/now
Authorization: Basic user 123456

2.配置(Spring Security 6)

  • 自定义URL存取权限
//替换掉SpringSecurity的默认配置
@Configuration
public class MyWebSecurityConfig {
    @Bean
    SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
         http.authorizeHttpRequests(
                requests->{
                    //访问public控制器的请求“放行
                    requests.requestMatchers("/public").permitAll();
                    //访问security控制器的请求“需要认证”
                    requests.requestMatchers("/private").authenticated();
                }
        );
         http.formLogin(withDefaults());
         http.httpBasic(withDefaults());
         return http.build();
    }
}
  • 使用内存添加多用户支持
    @Bean
    public InMemoryUserDetailsManager userDetailServiceManager(){
        UserDetails admin= User.withDefaultPasswordEncoder()
                .username("admin")
                .password("123456")
                .roles("ADMIM")
                .authorities("read","write")
                .build();
        UserDetails user=User.withDefaultPasswordEncoder()
                .username("testUser")
                .password("123456")
                .roles("USER")
                .authorities("read")
                .build();
        return new InMemoryUserDetailsManager(admin,user);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值