搜狗推广做网站要钱吗,义乌制作网站公司,郑州网站建设制作价格,学做粤菜的网站SpringSecurity6从入门到实战之SpringSecurity6自定义认证规则 Spring Security 中默认所有的 http 请求都需要先认证通过后#xff0c;才能访问。那么#xff0c; 如何指定不需要认证就可以直接访问的资源呢#xff1f;比如 用户的登录页面和注册页面#xff0c;都是不需要…SpringSecurity6从入门到实战之SpringSecurity6自定义认证规则 Spring Security 中默认所有的 http 请求都需要先认证通过后才能访问。那么 如何指定不需要认证就可以直接访问的资源呢比如 用户的登录页面和注册页面都是不需要认证就必须能被直接访问的。这就需要设置自定义的URL认证规则 SpringSecurity5.x自定义认证与6.x
# 在 SpringSecurity5.x中 了解已被废弃 // 自定义配置类 继承 WebSecurityConfigurerAdapter 类覆盖 configure() 方法Configurationpublic class WebSecurityConfigurer extends WebSecurityConfigurerAdapter {Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeHttpRequests().mvcMatchers(/hello).permitAll().anyRequest().authenticated().and().formLogin();}}
# 在 SpringSecurity6.x 中// 自定义配置类 使用注解 EnableWebSecurity 配置 SpringSecurity开发示例
创建一个新的controller
/test
package com.example.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;RestController
public class HelloController {RequestMapping(/hello)public String hello() {System.out.println(/hello);return hello...;}RequestMapping(/test)public String test() {System.out.println(/test);return test...;}
}方便与/hello对比进行测试 根据SpringSecurity6.x自定义认证规则配置
新建MyWeSecurityConfig自定义配置类
package com.example.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.SecurityFilterChain;Configuration
EnableWebSecurity
public class MyWeSecurityConfig {Beanpublic SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {//放行hello和testhttp.authorizeHttpRequests().requestMatchers(/hello, test).permitAll()//所有请求都需要进行认证.anyRequest().authenticated()//进行表单登录验证.and().formLogin();return http.build();}
}测试 结论
最终可以发现我们可以自定义认证规则,让例如注册等不需要认证的请求直接放行,让其他请求进行认证操作后再进行放行