2011-09-22 2 views
0

스프링 저지 응용 프로그램에 인터셉터/필터를 작성해야합니다.이 인터셉터/필터는 세션에 대한 모든 요청을 확인하고 성공하면 해당 컨트롤러에 코드를 전달합니다. 이 코드를 전달하면 코드 컨트롤러를 기반으로 추가 작업이 결정되므로 imp입니다.스프링 인터셉터/필터

Q : 1) 이런 종류의 로그인 필터를 Spring에 작성할 수 있습니까? 방법? 2) 이것이 인터셉터의 컨트롤러에 일부 코드를 전달할 수 있습니까? 방법?

+0

spring-jersey? @Controller 또는 JSR-311 주석을 사용하고 있습니까? 두 가지 경우 모두 해답이 달라집니다. – goroncy

+0

컨트롤러에서 Jersey 컨트롤러 (JSR-311 annotations)를 의미했습니다. – Arnav

답변

0

저지 필터를 생성하려면 ContainerRequestFilter 인터페이스를 구현해야합니다. 차단 및 저지 필터를 사용하여 요청을 수정하는 코드 샘플은 다음과 같은 :

import com.sun.jersey.spi.container.ContainerRequest; 
import com.sun.jersey.spi.container.ContainerRequestFilter; 
import javax.ws.rs.core.MultivaluedMap; 
import org.apache.log4j.Logger; 

/** 
* 
* @author arnav 
*/ 
public class MyAppFilter implements ContainerRequestFilter{ 


    public ContainerRequest filter(ContainerRequest request) { 

     MultivaluedMap<String, String> headers = request.getRequestHeaders(); 

     headers.add("code", "MY_APP_CODE"); 
     request.setHeaders((InBoundHeaders)headers); 

     return request; 
    } 
} 

이 클래스를 추가 한 후에, 우리는 우리의 웹 응용 프로그램이 필터를 등록해야합니다. 이제 우리는 web.xml에 다음 줄을 추가 할 것입니다 :

<servlet> 
     .......... 
     .......... 
     <init-param> 
     <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name> 
     <param-value>package.MyAppFilter</param-value> 
     </init-param> 
</servlet> 
관련 문제