我使用的是spring-security-core + spring-security-rest,在大多数端点中,我使用的是Config.groovy中的URL静态规则。
例如:
'/app/clientdata/**': ['IS_AUTHENTICATED_FULLY'],
'/app/opendata/**': ['permitAll'],
'/app/secretdata/**': ['hasRole("ADMIN_ROLE")'],然而,对于某些端点,我对HTTP方法的限制感兴趣(get,post,.)或者用目标法。
问题是..。我是否应该/可以混合不同的安全方法(url静态规则+基于类的注释,基于方法)?
和
是否有任何选项允许我限制基于HTTP方法.例如,有些方法有一个角色,另一些方法有其他角色?
谢谢,
发布于 2014-12-22 16:22:09
而且,正如我所经历的,完全有可能混合这两种不同的方式,这样您就可以定义一个'/app/opendata/**':'permitAll‘,然后使用@Secured("ROLE_XXX")在对象方法级别定义一个限制性更强的约束。
发布于 2014-12-22 15:03:38
是的,但它是新的,还没有记录在案。不是使用像当前样式那样的简单映射,其中键是模式,值是角色和表达式的列表,每一行都是一个带有三个键的映射;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']
]https://stackoverflow.com/questions/27601766
复制相似问题