2016-08-10 5 views
0

Camel 서블릿 (또는 라우트)을 구성하여 IP 목록의 요청 처리를 제한하고 있지만 찾을 수 없었던 것을 참조하기로했습니다. 저는 낙타와 함께 봄 부팅을 사용하고 요격, 가로 채기, InterceptStrategy 정의, CamelHttpTransportServlet 확장, doGet 오버라이드 등 여러 가지 방법을 시도했습니다.Camel HTTP 서블릿 IP 제한

나는 이것이 스프링 부트 서블릿에서 가능하다는 것을 알고 있지만, XML을 통해 필요한만큼 많은 경로를 정의 할 수있는 융통성이 부족하다. 비 개발자는 XML 경로 정의로만 작업 할 수 있습니다.

답변

0

음, 원칙 ​​우려의 분리를 잊어 버렸습니다 ... 내 딜레마에 대한 이 솔루션은 봄 부트 웹 서버를 통해 필터를 만드는 것이 었습니다, 뭔가 같은 :

public class AllowedIpFilter implements Filter { 

@Value("${my.allowed.ip-address}") 
private String allowedIpAddress; 

@Override 
public void init(FilterConfig filterConfig) throws ServletException {} 

@Override 
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, 
     ServletException { 
    if(!request.getRemoteAddr().equals(allowedIpAddress)){ 
     System.out.println(request.getRemoteAddr() + " is forbidden"); 
     PrintWriter out = response.getWriter(); 
     out.println("Not authorized"); 
     out.flush(); 
    } else { 
     chain.doFilter(request, response); 
    } 

} 

@Override 
public void destroy() {} 

}