溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何在Spring Security中配置多HttpSecurity

發(fā)布時(shí)間:2024-06-05 11:54:04 來源:億速云 閱讀:124 作者:小樊 欄目:web開發(fā)

在Spring Security中配置多個(gè)HttpSecurity可以通過創(chuàng)建多個(gè)HttpSecurity實(shí)例來實(shí)現(xiàn)。每個(gè)HttpSecurity實(shí)例可以配置不同的規(guī)則、過濾器鏈和權(quán)限控制。以下是一個(gè)示例配置:

@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();
        }
    }
}

在上面的示例中,我們創(chuàng)建了一個(gè)MultiHttpSecurityConfig類來配置多個(gè)HttpSecurity。configure(HttpSecurity http)方法用于配置/admin/**路徑的權(quán)限控制和登錄頁面,而內(nèi)部的ApiSecurityConfig類用于配置/api/**路徑的權(quán)限控制和基本身份驗(yàn)證。

通過使用@Order注解可以指定HttpSecurity的順序,確保先匹配到更具體的規(guī)則。在這個(gè)示例中,ApiSecurityConfig的順序比MultiHttpSecurityConfig更小,因此/api/**路徑的規(guī)則會(huì)優(yōu)先匹配。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI