基于标准的授权检查与弹簧安全性?

时间:2011-03-09 18:28:35

标签: spring spring-security

Spring安全性如何支持动态角色&允许?例如,角色可以由最终用户在运行时生成。每个角色都可以包含多个权限,这些权限可以在运行时创建/更新。如果3个月没有活动,则每个权限都基于删除主题等标准。由于acl_entry的记录是静态的而不是动态的,因此spring security的ACL不能支持它。如何定制弹簧安全性以支持这样的要求?

1 个答案:

答案 0 :(得分:1)

Spring Security 3支持expression based authorization:它允许您在Spring Expression Language中将secuirty约束表达为任意表达式。默认情况下,您可以在这些表达式中使用SecurityExpressionRoot的方法。

但是,您可以通过自定义MethodSecurityExpressionHandler.createEvaluationContext()来添加自己的方法,以便您可以定义任意条件并在这些表达式中使用它们。另请参阅What's the difference between @Secured and @PreAuthorize in spring secu 3?。