【发布时间】:2014-03-25 05:59:12
【问题描述】:
如果我有一个控制器方法
@RequestMapping (value = "/boards/{id}")
public String viewBoard(@PathVariable(value="id") String id){/*..*/}
我如何通过查询database 并获取该板 id 访问所需的值(对于已登录的用户)来动态地在 run-time、pre authorize 用户那里。
我尝试使用 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{ 在登录时为用户提供角色。但那是另一回事。
【问题讨论】:
-
您可以创建自定义过滤器来拦截所有请求以进行动态过滤
-
看看这里。 stackoverflow.com/questions/17803406/…。如果您觉得这篇文章有用并且可能是您所需要的,我可以为您提供更多详细信息并详细解答。
标签: java spring spring-mvc spring-security