【发布时间】:2011-10-01 09:21:54
【问题描述】:
考虑一些带有Users 和Groups 的基本授权框架,其中对方法的访问应通过检查来保护,以确保用户或组拥有必要的PriviledgeLevel 来执行该方法,否则会失败。
我想象的是这样的:
@AccessCheck(PriviledgeLevel.ADMINISTRATOR)
public static void secureMethod(){ ... }
代码检查的基本作用
if(currentUser.getPriviledgeLevel >= PriviledgeLevel.ADMINISTRATOR ||
currentUser.getGroup.priviledgeLevel >= PriviledgeLevel.ADMINISTRATOR)
// Allow access
else
// Deny access
这样可以实现吗?
我做了一些研究,指出了一些基于 AspectJ 的现有事物,主要是 Security Annotation Framework (SAF) 和 Spring Security。
我有点担心,因为 SAF 似乎不再活跃,而且文档也不是那么好。
我不确定 Spring Security,但它似乎更专注于 Web 相关主题中的安全问题。
Java Authentication and Authorization Service 好像是相关的,但是没有使用注解的方式。
尝试使用这种声明性方法定义这些安全要求是否有意义?
是否还有我缺少的另一个库/框架,它已经实现了我想要的或者一些在这里相关的技术?
或者有一个完全不同的解决方案(比如实现我自己的ClassLoader,...),它比我想象的更好(就图书馆用户的简洁性和可读性而言)?
【问题讨论】:
-
Spring Security 是一个自上而下的解决方案,它不仅专注于与 Web 相关的安全性。实际上,我开始在我的业务层中使用 Spring Security,然后在 Web 安全中使用它。
标签: java security spring annotations spring-security