使用面向方面编程在Java中进行用户身份验证?

时间:2011-10-11 15:35:01

标签: java authentication aop guice

我想将用户身份验证添加到我的REST网络服务(Guice + Jersey)。

我首先要通过Google Guice方法拦截来解决身份验证问题。例如:

@Path("user")
public class User {

  @OnlyAdmin
  @Post
  public void addUser(String apiKey) {
  }

} 

但遗憾的是,Guice仅为具有无参数构造函数的类支持AOP。

  1. 使用AOP进行用户身份验证通常是个好主意吗?
  2. 是否有其他框架来构建用户身份验证?
  3. 编辑:框架可能是错误的术语。我只想找到一种方法在每个带注释的方法中注入一些代码,这段代码应该检查方法的参数

2 个答案:

答案 0 :(得分:1)

它不是AOP,但您可以在需要检查用户的任何地方注入绑定到请求范围的当前用户角色,并使用方法截取或显式逻辑来检查正确的用户类是否正在执行某些操作。 / p>

答案 1 :(得分:1)

AOP在您的案例中唯一重要的一点是您的班级由Guice 创建

如果你有带参数的构造函数,请确保它们是可注射的(直接或辅助注射)。