로직을 호출하기 전에 일부 http 헤더 정보를 확인하고 싶기 때문에 요청 필터를 설정하려고합니다. 불행히도 내 필터는 JBoss AS7.1.1에서 결코 호출되지 않습니다. 이미 RestEasy 문서 (RestEasy 문서)에 설명 된 것과 같이 RestEasy 구현 (모듈)을 3.0.6으로 업데이트하려고했습니다. 그것은 새로운 구현 zip 파일에 의해 제공되는 디렉토리를 대체해야한다고 말했고 그렇게했습니다. AS는 오류없이 시작되었지만 동작은 어떤 식 으로든 변경되지 않습니다. 각 요청은 차단되지 않습니다. 나는 더 복잡한 예에서이 코드를 추출하지만이 간단한 것은 작동하지 않습니다ContainerRequestFilter JBoss AS 7.1.1 RestEasy 3.0.6.Final
Filter.java
import java.io.IOException;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.ext.Provider;
@Provider
@Secured
public class SecurityFilter implements ContainerRequestFilter {
public void filter(ContainerRequestContext crc) throws IOException {
throw new IllegalStateException("Not in my house");
}
}
ItemsResource.java
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
@Path("/Items")
public class ItemsResource {
@GET
@Produces("application/json")
@Secured
public String getJson() {
return "{\"id:\" \"1\"}";
}
}
ApplicationConfig.java을
@javax.ws.rs.ApplicationPath("rest")
public class ApplicationConfig extends Application {
}
Secured.java
import javax.ws.rs.NameBinding;
@NameBinding
public @interface Secured {}
내가 주석없이 인터셉터와 리소스를 사용하려고하면 아무것도 변경되지 않습니다. 나는 모든 요청을 가로 채기를 원하지만 비 의지를 기대한다. 나는 무엇을 해야할지 모르겠다. 아무도 조언을 좀 해줄 수 있을까요? 추가 할 물건을 추가합시다. 나는 Wildfly (JBoss 8.0.0 Final)와 같은 것을 시도했다. @NameBinding을 사용하고 커스텀 어노테이션을 적용하는 것은 또한 작동하지 않지만 어노테이션을 사용하지 않고 @Provider로 인터셉터에 주석을 달면 모든 요청이 가로 채게됩니다. Wildfly로 마이그레이션해야합니까?
[가능한 특정 메서드를 통해 NameBinding RESTeasy] (http://stackoverflow.com/questions/15119309/match-filter-with-specific-method-through-namebinding-on-resteasy) –