[英]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.