使用自定義配置替代默認規則
之前(懶得找了)筆記提到,Security 有自己的默認配置,其中一點就是當不存在 WebSecurityConfigurerAdapter 和另一個叫什麼的 Filter 來着的時候,默認配置就生效,也就是說,想要自己控制 Security 的行爲就自己實現 WebSecurityConfigurerAdapter 或 Filter。
實現 WebSecurityConfigurerAdapter
定義一個類,繼承 WebSecurityConfigurerAdapter,在這個子類中完成定義以替代默認行爲。下面代碼效果是 /index 資源被放行(無需認證),其他任何請求需要認證,認證方式是 Form 表單方式。
package top.litt.springsecuritylearn.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
/**
* 覆寫 Spring Security WebSecurityConfigureAdapter,
* 用於以自定義配置替代 Security 默認配置和行爲
*/
// @Configuration表示一個配置類
@Configuration
public class AppWebSecurityConfigure extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
// 放行
.mvcMatchers("/index").permitAll()
// 攔截
.anyRequest().authenticated()
.and()
.formLogin();
}
}
bilibili - 編程不良人 - SpringSecurity最新實戰