相关疑难解决方法(0)

获取ContainerRequestFilter中的资源类注释值

我正在努力了解休息拦截器注释如何添加稍后在过滤器中可见的不同值.鉴于下面的代码,我希望在过滤器中,权限值将包含foo和bar,但它们是空的.任何帮助将不胜感激.

注解

package edu.psu.swe.fortress.poc.interceptor;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import javax.enterprise.util.Nonbinding;
import javax.ws.rs.NameBinding;

@NameBinding
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(value=RetentionPolicy.RUNTIME)
public @interface FortressProtected
{
  @Nonbinding String[] permissions() default {};
}
Run Code Online (Sandbox Code Playgroud)

过滤

package edu.psu.swe.fortress.poc.interceptor;

import java.io.IOException;
import java.lang.annotation.Annotation;

import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.ext.Provider;

@Provider
@FortressProtected
public class FortressAuthorizer implements ContainerRequestFilter
{

  @Override
  public void filter(ContainerRequestContext requestContext) throws     IOException
  {
    System.out.println("In the interceptor");
    Class<?> clazz = this.getClass();
    FortressProtected annotation = clazz.getAnnotation(edu.psu.swe.fortress.poc.interceptor.FortressProtected.class);

    System.out.println("Annotation? " + clazz.isAnnotation());

    for (Annotation a : clazz.getAnnotations())
    { …
Run Code Online (Sandbox Code Playgroud)

java jax-rs interceptor

10
推荐指数
1
解决办法
6922
查看次数

如何在Jersey 2.4过滤器中获取资源注释?

我的问题与此问题基本相同:我如何在Jersey ContainerResponseFilter中获取资源注释.

但是我使用Java Jersey 2.4并且找不到ResourceFilterFactory或ResourceFilter类的任何标志.文档也没有提到它们.他们被弃用了还是真的被隐藏了?如果他们已被弃用,我可以使用什么呢?现在有一种方法可以使用Jersey 2.4和2.5从ContainerRequestFilter获取资源注释吗?

谢谢

java annotations jersey filter

9
推荐指数
1
解决办法
9756
查看次数

标签 统计

java ×2

annotations ×1

filter ×1

interceptor ×1

jax-rs ×1

jersey ×1