繁体   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