簡體   English   中英

Spring安全性請求授權

[英]Spring security requests authorization

我剛接觸Spring Security,正在檢查如何授權對應用程序中URL的請求。

根據此處的文檔,我們添加授權如下:

protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
            .antMatchers("/resources/**", "/signup", "/about").permitAll()
            .antMatchers("/admin/**").hasRole("ADMIN")
            .antMatchers("/db/**").access("hasRole('ADMIN') and hasRole('DBA')")
            .anyRequest().authenticated()
            .and()
        // ...
        .formLogin();
}

由於此方法對我來說效果很好,我想知道是否還有另一種動態方式指定此配置。 例如,通過為我們的REST控制器使用某種注釋?

我有一個切實可行的解決方案,但是我想確保在開始開發自己的代碼之前沒有其他方法可以做到這一點。

謝謝您的幫助。

是的,有一個注釋為@Secured/@PreAuthorize/@PostAuthorize 該批注是應用方法級安全性的首選方法,並且開箱即用地支持Spring Expression Language,並提供基於表達式的訪問控制。

例如

@PreAuthorize("hasRole('ADMIN')") public String yourControllerMethod() { return response; }

詳情請點擊這里。

唯一的其他方法是使用@ Secured / @ PreAuthorize / @ PostAuthorize批注。 但是您必須將它們放在要保護的所有Web服務上。

通常,當我構建Web服務應用程序時,我希望對WebSecurityConfigurerAdapter上的所有請求進行授權,然后使用這些批注逐個保護請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM