我已经google了一下参考配置Camel servlet(或路由)来限制IP列表的处理请求,但没有找到任何IP。我正在使用带有驼峰的弹簧启动并尝试了几种方法:截取,定义InterceptStrategy,扩展CamelHttpTransportServlet,覆盖doGet ......所有这些都没有成功。
我知道这对于spring boot servlet是可行的,但是我放松了通过XML定义尽可能多的路由的灵活性,只是改变了URI。非开发人员只能使用XML路由定义。
答案 0 :(得分: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() {}
}