Требования:
как написать веб-фильтр для tomcat 6 или других альтернатив?
Используйте следующий код в фильтре, чтобы проверить, адресован ли запрос «администратору»:
public static boolean isRequestTo(HttpServletRequest request, String urlPart) {
return request.getRequestURI().startsWith(urlPart);
}
Используйте следующий код в фильтре, чтобы проверить, поступает ли запрос с локального хоста:
private static final String LOCAL_IP = "127.0.0.1";
private static final String LOCAL_IPV6 = "0:0:0:0:0:0:0:1";
private static Set<String> localAddresses = new HashSet<String>();
static {
try {
localAddresses.add(InetAddress.getLocalHost().getHostAddress());
for (InetAddress inetAddress : InetAddress.getAllByName("localhost")) {
localAddresses.add(inetAddress.getHostAddress());
}
} catch (Exception e) {
if (!localAddresses.contains(LOCAL_IP)) {
localAddresses.add(LOCAL_IP);
}
if (!localAddresses.contains(LOCAL_IPV6)) {
localAddresses.add(LOCAL_IPV6);
}
}
}
public static boolean isLocalRequest(HttpServletRequest request) {
return localAddresses.contains(request.getRemoteAddr());
}