弹出安全方法在运行时和动态安全

时间:2014-02-23 19:06:54

标签: java spring spring-mvc spring-security

如果我有控制器方法

@RequestMapping (value = "/boards/{id}")
public String viewBoard(@PathVariable(value="id") String id){/*..*/}

我如何通过查询run-time并为该板ID访问获取所需的值(对于登录用户),在pre authorizedatabase用户为其动态创建。

我尝试使用Spring安全角色研究runtime dynamic spring安全权限,但无法找到一个有效的示例。


进一步阐述:

这意味着,每次用户想要访问该方法时,都会检查数据库是否具有该权限的用户权限。

这不能在roles中完成,因为可能有数百万个案例。,例如一个用户可能具有对于电路板ID 3的视图访问,但对于电路板ID 10003不具有视图访问权限


我收到了一些链接:

http://docs.spring.io/spring-security/site/docs/3.1.x/reference/ns-config.html#ns-method-security

http://docs.spring.io/spring-security/site/docs/3.0.x/reference/el-access.html

http://www.javabeat.net/separating-roles-and-permissions-in-spring-security/


更多信息:

我正在使用public class CustomUserDetailsService implements UserDetailsService{在登录时为用户提供角色。但那是一个不同的故事。

1 个答案:

答案 0 :(得分:0)

您可以扩展Spring安全性以提供您自己的表达式:hasRole

旁边

请参阅此问题以获取示例:How to create custom methods for use in spring security expression language annotations

寻找示例时的一个重点:注意示例是针对METHOD-Resolver,而不是针对WEB-Resolver!