package com.javaweb.platform.filter;
|
|
|
import javax.servlet.*;
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.stereotype.Component;
|
|
import java.io.IOException;
|
|
//
|
@Component
|
public class HostFilter implements Filter {
|
@Value("${javaweb.host}")
|
private String host;
|
|
public void init(FilterConfig filterConfig) throws ServletException {
|
|
}
|
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
|
HttpServletRequest request = (HttpServletRequest) servletRequest;
|
HttpServletResponse response = (HttpServletResponse) servletResponse;
|
String requestHost = request.getHeader("host");
|
|
if (requestHost != null && isRightHost(requestHost)) {
|
|
chain.doFilter(request, response);
|
|
} else {
|
response.setStatus(403);
|
return;
|
}
|
|
}
|
|
/**
|
* 检验host 合法性
|
* @param requestHost
|
* @return
|
*/
|
public boolean isRightHost(String requestHost){
|
if (requestHost.equals(host)){
|
return true;
|
}
|
return true;
|
}
|
|
|
public void destroy() {
|
|
}
|
|
}
|