您好,登錄后才能下訂單哦!
在Spring Security中配置多個HttpSecurity可以通過創建多個HttpSecurity實例來實現。每個HttpSecurity實例可以配置不同的規則、過濾器鏈和權限控制。以下是一個示例配置:
@Configuration
@EnableWebSecurity
public class MultiHttpSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/admin/**")
.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll();
}
@Configuration
@Order(1)
public static class ApiSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/api/**")
.authorizeRequests()
.antMatchers("/api/**").hasRole("USER")
.anyRequest().authenticated()
.and()
.httpBasic();
}
}
}
在上面的示例中,我們創建了一個MultiHttpSecurityConfig
類來配置多個HttpSecurity。configure(HttpSecurity http)
方法用于配置/admin/**路徑的權限控制和登錄頁面,而內部的ApiSecurityConfig
類用于配置/api/**路徑的權限控制和基本身份驗證。
通過使用@Order
注解可以指定HttpSecurity的順序,確保先匹配到更具體的規則。在這個示例中,ApiSecurityConfig
的順序比MultiHttpSecurityConfig
更小,因此/api/**路徑的規則會優先匹配。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。