Java注释,将变量传递给带注释的方法

时间:2015-02-08 15:26:50

标签: java annotations

我正在用Java编写Web服务,其中一些要点是进行身份验证。

为了实现这一点,我创建了一个可以应用于任何需要进行身份验证的请求方法的注释,然后我有一个请求过滤器,它拦截带注释的任何请求并执行身份验证检查。

我的问题是:过滤器是否可以在注释中设置一个变量,然后可以访问请求方法,这样我就可以将用户信息从身份验证过滤器传递给请求方法,而无需执行2次相同的检查。 。

基本上它看起来像:

public @interface Authenticated {
    UserData user;
}

public Response filterRequest() //for @Authenticated methods
{
    user = doAuthentication();
    if(user == null)
        throw new UnauthorisedException();

    //Call the next method, the one with the annotation
    return Requests.next();
}

@Authenticated
public Response foo()
{
    return new Response("Hello " + user.Name);
}

我知道它在其他语言中的可能性,因为我在C#中已经完成了它,但我无法在Java中找到它的任何引用。 如果注释放在类而不是单个方法上,它是否可行?

0 个答案:

没有答案