簡體   English   中英

java Spring REST控制器全局安全性注釋

[英]java Spring REST controller global security annotation

我一直在嘗試保護Spring REST控制器的安全,並且能夠使用@Secured({"myrole"})注釋來實現方法級別的安全性。

但是,在我看來,我必須注釋要保護的每種方法。

是否有其他機制可以默認保護所有方法,並且可以使用一些Anonymous注釋將其排除?

我認為在您的情況下,最好使用基於表達式的訪問控制,因此您不必在所有地方添加注釋。 這是基於xml的上下文配置的示例。

<http use-expressions="true">
...
    <intercept-url pattern="/**" access="hasRole('myrole')"/>
...

據我所知,沒有這樣的注釋可以覆蓋這種默認行為,但是您可以通過定義各自的intercept-url模式來實現。 關於此的更多信息,您可以在這里查看https://docs.spring.io/spring-security/site/docs/3.0.x/reference/el-access.html

該解決方案是使用安全的切入點像這樣

<global-method-security>
    <protect-pointcut expression="execution(* com.mycompany.*Service.*(..))"
         access="ROLE_USER"/>
</global-method-security>

要了解有關切入點的更多信息,請閱讀Spring AOP

這里是一些例子 ,如何用Poincuts工作。

暫無
暫無

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

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