我正在使用spring-security-core + spring-security-rest,在大多数端点我在Config.groovy中使用URL静态规则
e.g。
'/app/clientdata/**': ['IS_AUTHENTICATED_FULLY'],
'/app/opendata/**': ['permitAll'],
'/app/secretdata/**': ['hasRole("ADMIN_ROLE")'],
但对于某些端点,我对HTTP METHOD(get,post,...)或对象方法的限制感兴趣。
问题是......应该/我可以混合使用不同的证券化方法(url静态规则+基于类的注释,方法)?
和
是否有任何选项允许我根据HTTP方法进行限制...例如一些方法,其中一个角色是其他角色?
谢谢,
答案 0 :(得分:1)
是的,但它是新的,尚未记录。而不是像键是模式的当前样式那样使用简单的映射,而值是角色和表达式的列表,每行都是带有三个键的映射;每行pattern
,access
和httpMethod
httpMethod
是可选的。所以它看起来像
[
[pattern: '/app/clientdata/**', access: ['IS_AUTHENTICATED_FULLY'], httpMethod: 'GET'],
[pattern: '/app/opendata/**', access: ['permitAll']],
[pattern: '/app/secretdata/**', access: ['hasRole("ADMIN_ROLE")'], httpMethod: 'POST']
]
答案 1 :(得分:0)
同样正如我所经历的那样,完全可以混合这两种不同的方式,这样你就可以定义一个'/ app / opendata / **':['permitAll'],然后在对象方法级别定义一个更严格的约束@Secured([ “ROLE_XXX”])