문제: 이 필터마다 배반자들의 트리거됨
필터 클래스:
@Provider
public class AuthFilter implements ContainerRequestFilter {
@Override
public void filter(ContainerRequestContext requestContext)
throws IOException {
// MY AUTHENTICATION CODE GOES HERE
}
Web. xml 파일:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="debate-rest"
version="3.0">
<display-name>rest</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
<param-value>com.hck.debate.rest.security.AuthFilter</param-value>
</init-param>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.hck.debate.rest.controller</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
그래, 난 didn& 제시스콘피g. 세르베리프로비데리파스카주 init 매개 변수 참조할 수 있는 ',' t get # 39 서비스 API (엔드포인트에) 등 모든 것이 아니라 클래스뿐만 클래스뿐만 필터란.
이제 작동하잖아:
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.hck.debate.rest.controller;com.hck.debate.rest.security</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
<param-value>com.hck.debate.rest.security.AuthFilter</param-value>
</init-param>
우린 누각되었습니다 lionbridge 의 아래 호출하십시오 레수르스콘피그 구축상의 클래스:
register(CorrelationIdFilter.class);
함께 일할 수 있는 최소요구사항 필터링합니다 저지.
난 이미 이 같은 문제를 해결하기 위해 2, 저지 및 아래 주석 고정식입니다 rs 잭스
@PreMatching
내가 대신 사용되는 협력했습니다 코맥순.저지 및 정보기술 (it), javax.ws.rs
'가져오기의 코맥순.제시오스피스콘텐리콘텐르케스트필터 가져오기의 코맥순.제시오스피스콘텐리콘텐레퀘스트 '
이렇게 해야 하는 트로포비자드 사용자
environment.jersey().getResourceConfig()
.getContainerRequestFilters()
.add(filter);
'대신' @Provider 주석 (내 경우에는 작동하지 않는) ',' 직접 '를' 제시저블레파스토리 콘텐르케스트필터 등록할 수 있습니다.
JerseyServletFactory jerseyServletFactory = new JerseyServletFactory(config);
HttpServlet myServiceServlet = jerseyServletFactory.create(myResource);
// Register your ContainerRequestFilter like this
jerseyServletFactory.addRequestFilter(new MyFilter());
httpServer.register(myServiceServlet, "/api");
httpServer.start();