io.antmedia.filter.IPFilter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ant-media-server Show documentation
Show all versions of ant-media-server Show documentation
Ant Media Server supports RTMP, RTSP, MP4, HLS, WebRTC, Adaptive Streaming, etc.
package io.antmedia.filter;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import io.antmedia.AppSettings;
public class IPFilter extends AbstractFilter {
protected static Logger log = LoggerFactory.getLogger(IPFilter.class);
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
if (isAllowed(request.getRemoteAddr())) {
chain.doFilter(request, response);
return;
}
if(((HttpServletRequest)request).getPathInfo().contains("rest/v2/acm")) {
chain.doFilter(request, response);
return;
}
((HttpServletResponse) response).sendError(HttpServletResponse.SC_FORBIDDEN, "Not allowed IP");
}
/**
* Test if a remote's IP address is allowed to proceed.
*
* @param remoteIPAdrress The remote's IP address, as a string
* @return true if allowed
*/
public boolean isAllowed(final String remoteIPAdrress) {
AppSettings appSettings = getAppSettings();
if (appSettings != null) {
return checkCIDRList(appSettings.getAllowedCIDRList(),remoteIPAdrress);
}
// Deny this request
return false;
}
}