mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
支持从header中读取IP地址
This commit is contained in:
@@ -42,6 +42,7 @@ public abstract class ResourceSerlvet extends HttpServlet {
|
||||
public static final String PARAM_NAME_PASSWORD = "loginPassword";
|
||||
public static final String PARAM_NAME_ALLOW = "allow";
|
||||
public static final String PARAM_NAME_DENY = "deny";
|
||||
public static final String PARAM_REMOTE_ADDR = "remoteAddress";
|
||||
|
||||
protected String username = null;
|
||||
protected String password = null;
|
||||
@@ -51,6 +52,8 @@ public abstract class ResourceSerlvet extends HttpServlet {
|
||||
|
||||
protected final String resourcePath;
|
||||
|
||||
protected String remoteAddressHeader = null;
|
||||
|
||||
public ResourceSerlvet(String resourcePath){
|
||||
this.resourcePath = resourcePath;
|
||||
}
|
||||
@@ -70,6 +73,11 @@ public abstract class ResourceSerlvet extends HttpServlet {
|
||||
this.password = paramPassword;
|
||||
}
|
||||
|
||||
String paramRemoteAddressHeader = getInitParameter(PARAM_REMOTE_ADDR);
|
||||
if (!StringUtils.isEmpty(paramRemoteAddressHeader)) {
|
||||
this.remoteAddressHeader = paramRemoteAddressHeader;
|
||||
}
|
||||
|
||||
try {
|
||||
String param = getInitParameter(PARAM_NAME_ALLOW);
|
||||
if (param != null && param.trim().length() != 0) {
|
||||
@@ -218,7 +226,7 @@ public abstract class ResourceSerlvet extends HttpServlet {
|
||||
if (contextPath == null || contextPath.equals("") || contextPath.equals("/")) {
|
||||
response.sendRedirect("/druid/login.html");
|
||||
} else {
|
||||
if("".equals(path)){
|
||||
if ("".equals(path)) {
|
||||
response.sendRedirect("druid/login.html");
|
||||
} else {
|
||||
response.sendRedirect("login.html");
|
||||
@@ -267,9 +275,23 @@ public abstract class ResourceSerlvet extends HttpServlet {
|
||||
}
|
||||
|
||||
public boolean isPermittedRequest(HttpServletRequest request) {
|
||||
String remoteAddress = request.getRemoteAddr();
|
||||
String remoteAddress = getRemoteAddress(request);
|
||||
return isPermittedRequest(remoteAddress);
|
||||
}
|
||||
|
||||
protected String getRemoteAddress(HttpServletRequest request) {
|
||||
String remoteAddr = null;
|
||||
|
||||
if (remoteAddressHeader != null) {
|
||||
remoteAddr = request.getHeader(remoteAddressHeader);
|
||||
}
|
||||
|
||||
if (remoteAddr == null) {
|
||||
remoteAddr = request.getRemoteAddr();
|
||||
}
|
||||
|
||||
return remoteAddr;
|
||||
}
|
||||
|
||||
protected abstract String process(String url);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user