Camel http Servlet IP限制

时间:2016-08-10 20:30:25

标签: spring-boot apache-camel

我已经google了一下参考配置Camel servlet(或路由)来限制IP列表的处理请求,但没有找到任何IP。我正在使用带有驼峰的弹簧启动并尝试了几种方法:截取,定义InterceptStrategy,扩展CamelHttpTransportServlet,覆盖doGet ......所有这些都没有成功。

我知道这对于spring boot servlet是可行的,但是我放松了通过XML定义尽可能多的路由的灵活性,只是改变了URI。非开发人员只能使用XML路由定义。

1 个答案:

答案 0 :(得分:0)

好吧,我忘记了关注点分离的原则...... 我的困境的解决方案是在Spring Boot Web服务器上创建一个过滤器,如:

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() {}

}