Format, organize imports, remove eclipse artifacts
This commit is contained in:
@@ -18,16 +18,15 @@ package org.springframework.data.document;
|
||||
|
||||
|
||||
public abstract class AbstractDocumentStoreTemplate<C> {
|
||||
|
||||
public abstract C getConnection();
|
||||
|
||||
public <T> T execute(DocumentStoreConnectionCallback<C, T> action) {
|
||||
try {
|
||||
return action.doInConnection(getConnection());
|
||||
}
|
||||
catch (Exception e) {
|
||||
throw new UncategorizedDocumentStoreException("Failure executing using datastore connection", e);
|
||||
}
|
||||
}
|
||||
|
||||
public abstract C getConnection();
|
||||
|
||||
public <T> T execute(DocumentStoreConnectionCallback<C, T> action) {
|
||||
try {
|
||||
return action.doInConnection(getConnection());
|
||||
} catch (Exception e) {
|
||||
throw new UncategorizedDocumentStoreException("Failure executing using datastore connection", e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ package org.springframework.data.document;
|
||||
* @since 1.0
|
||||
*/
|
||||
public interface DocumentMapper<D, T> {
|
||||
|
||||
T mapDocument(D document);
|
||||
|
||||
T mapDocument(D document);
|
||||
|
||||
}
|
||||
|
||||
@@ -18,5 +18,5 @@ package org.springframework.data.document;
|
||||
|
||||
public interface DocumentStoreConnectionCallback<C, T> {
|
||||
|
||||
T doInConnection(C con) throws Exception;
|
||||
T doInConnection(C con) throws Exception;
|
||||
}
|
||||
|
||||
@@ -20,12 +20,12 @@ import org.springframework.dao.InvalidDataAccessApiUsageException;
|
||||
|
||||
public class InvalidDocumentStoreApiUsageException extends InvalidDataAccessApiUsageException {
|
||||
|
||||
public InvalidDocumentStoreApiUsageException(String msg) {
|
||||
super(msg);
|
||||
}
|
||||
public InvalidDocumentStoreApiUsageException(String msg) {
|
||||
super(msg);
|
||||
}
|
||||
|
||||
public InvalidDocumentStoreApiUsageException(String msg, Throwable cause) {
|
||||
super(msg, cause);
|
||||
}
|
||||
public InvalidDocumentStoreApiUsageException(String msg, Throwable cause) {
|
||||
super(msg, cause);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -20,8 +20,8 @@ import org.springframework.dao.UncategorizedDataAccessException;
|
||||
|
||||
public class UncategorizedDocumentStoreException extends UncategorizedDataAccessException {
|
||||
|
||||
public UncategorizedDocumentStoreException(String msg, Throwable cause) {
|
||||
super(msg, cause);
|
||||
}
|
||||
public UncategorizedDocumentStoreException(String msg, Throwable cause) {
|
||||
super(msg, cause);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,45 +1,43 @@
|
||||
package org.springframework.data.document.analytics;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
public class ControllerCounter {
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public double getCount() {
|
||||
return count;
|
||||
}
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public void setCount(double count) {
|
||||
this.count = count;
|
||||
}
|
||||
public double getCount() {
|
||||
return count;
|
||||
}
|
||||
|
||||
public Map<String, Double> getMethods() {
|
||||
return methods;
|
||||
}
|
||||
|
||||
|
||||
public void setCount(double count) {
|
||||
this.count = count;
|
||||
}
|
||||
|
||||
public void setMethods(Map<String, Double> methods) {
|
||||
this.methods = methods;
|
||||
}
|
||||
public Map<String, Double> getMethods() {
|
||||
return methods;
|
||||
}
|
||||
|
||||
private String name;
|
||||
|
||||
private double count;
|
||||
|
||||
private Map<String, Double> methods;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ControllerCounter [name=" + name + ", count=" + count
|
||||
+ ", methods=" + methods + "]";
|
||||
}
|
||||
|
||||
public void setMethods(Map<String, Double> methods) {
|
||||
this.methods = methods;
|
||||
}
|
||||
|
||||
private String name;
|
||||
|
||||
private double count;
|
||||
|
||||
private Map<String, Double> methods;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ControllerCounter [name=" + name + ", count=" + count
|
||||
+ ", methods=" + methods + "]";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,81 +4,80 @@ import java.util.Date;
|
||||
|
||||
public class MvcEvent {
|
||||
|
||||
private String controller;
|
||||
|
||||
private String action;
|
||||
|
||||
private Parameters parameters;
|
||||
|
||||
private Date date;
|
||||
|
||||
private String requestUri;
|
||||
|
||||
private String requestAddress;
|
||||
|
||||
private String remoteUser;
|
||||
|
||||
private String view;
|
||||
private String controller;
|
||||
|
||||
public String getController() {
|
||||
return controller;
|
||||
}
|
||||
private String action;
|
||||
|
||||
public void setController(String controller) {
|
||||
this.controller = controller;
|
||||
}
|
||||
private Parameters parameters;
|
||||
|
||||
public String getAction() {
|
||||
return action;
|
||||
}
|
||||
private Date date;
|
||||
|
||||
public void setAction(String action) {
|
||||
this.action = action;
|
||||
}
|
||||
private String requestUri;
|
||||
|
||||
public Parameters getParameters() {
|
||||
return parameters;
|
||||
}
|
||||
private String requestAddress;
|
||||
|
||||
public void setParameters(Parameters parameters) {
|
||||
this.parameters = parameters;
|
||||
}
|
||||
private String remoteUser;
|
||||
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
private String view;
|
||||
|
||||
public void setDate(Date date) {
|
||||
this.date = date;
|
||||
}
|
||||
public String getController() {
|
||||
return controller;
|
||||
}
|
||||
|
||||
public String getRequestUri() {
|
||||
return requestUri;
|
||||
}
|
||||
public void setController(String controller) {
|
||||
this.controller = controller;
|
||||
}
|
||||
|
||||
public void setRequestUri(String requestUri) {
|
||||
this.requestUri = requestUri;
|
||||
}
|
||||
public String getAction() {
|
||||
return action;
|
||||
}
|
||||
|
||||
public String getRequestAddress() {
|
||||
return requestAddress;
|
||||
}
|
||||
public void setAction(String action) {
|
||||
this.action = action;
|
||||
}
|
||||
|
||||
public void setRequestAddress(String requestAddress) {
|
||||
this.requestAddress = requestAddress;
|
||||
}
|
||||
public Parameters getParameters() {
|
||||
return parameters;
|
||||
}
|
||||
|
||||
public void setParameters(Parameters parameters) {
|
||||
this.parameters = parameters;
|
||||
}
|
||||
|
||||
public Date getDate() {
|
||||
return date;
|
||||
}
|
||||
|
||||
public void setDate(Date date) {
|
||||
this.date = date;
|
||||
}
|
||||
|
||||
public String getRequestUri() {
|
||||
return requestUri;
|
||||
}
|
||||
|
||||
public void setRequestUri(String requestUri) {
|
||||
this.requestUri = requestUri;
|
||||
}
|
||||
|
||||
public String getRequestAddress() {
|
||||
return requestAddress;
|
||||
}
|
||||
|
||||
public void setRequestAddress(String requestAddress) {
|
||||
this.requestAddress = requestAddress;
|
||||
}
|
||||
|
||||
public String getRemoteUser() {
|
||||
return remoteUser;
|
||||
}
|
||||
|
||||
public void setRemoteUser(String remoteUser) {
|
||||
this.remoteUser = remoteUser;
|
||||
}
|
||||
|
||||
//TODO
|
||||
//Map sessionAttributes
|
||||
|
||||
public String getRemoteUser() {
|
||||
return remoteUser;
|
||||
}
|
||||
|
||||
public void setRemoteUser(String remoteUser) {
|
||||
this.remoteUser = remoteUser;
|
||||
}
|
||||
|
||||
//TODO
|
||||
//Map sessionAttributes
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -2,34 +2,34 @@ package org.springframework.data.document.analytics;
|
||||
|
||||
public class Parameters {
|
||||
|
||||
private String p1;
|
||||
|
||||
private String p2;
|
||||
|
||||
private String p3;
|
||||
private String p1;
|
||||
|
||||
public String getP1() {
|
||||
return p1;
|
||||
}
|
||||
private String p2;
|
||||
|
||||
public void setP1(String p1) {
|
||||
this.p1 = p1;
|
||||
}
|
||||
private String p3;
|
||||
|
||||
public String getP2() {
|
||||
return p2;
|
||||
}
|
||||
public String getP1() {
|
||||
return p1;
|
||||
}
|
||||
|
||||
public void setP2(String p2) {
|
||||
this.p2 = p2;
|
||||
}
|
||||
public void setP1(String p1) {
|
||||
this.p1 = p1;
|
||||
}
|
||||
|
||||
public String getP3() {
|
||||
return p3;
|
||||
}
|
||||
public String getP2() {
|
||||
return p2;
|
||||
}
|
||||
|
||||
public void setP2(String p2) {
|
||||
this.p2 = p2;
|
||||
}
|
||||
|
||||
public String getP3() {
|
||||
return p3;
|
||||
}
|
||||
|
||||
public void setP3(String p3) {
|
||||
this.p3 = p3;
|
||||
}
|
||||
|
||||
public void setP3(String p3) {
|
||||
this.p3 = p3;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -22,40 +22,37 @@ import org.springframework.web.servlet.ModelAndView;
|
||||
public class ActionExecutedContext extends ActionExecutingContext {
|
||||
|
||||
|
||||
private ModelAndView modelAndView;
|
||||
|
||||
private Exception exception;
|
||||
|
||||
public ActionExecutedContext(ActionExecutingContext actionExecutingContext, ModelAndView modelAndView, Exception exception) {
|
||||
super(actionExecutingContext.getServletWebRequest(), actionExecutingContext.getHandler(),
|
||||
actionExecutingContext.getHandlerMethod(), actionExecutingContext.getHandlerParameters(),
|
||||
actionExecutingContext.getImplicitModel());
|
||||
this.modelAndView = modelAndView;
|
||||
this.exception = exception;
|
||||
}
|
||||
private ModelAndView modelAndView;
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ActionExecutedContext [handler=" + getHandler()
|
||||
+ ", servletWebRequest=" + getServletWebRequest()
|
||||
+ ", implicitModel=" + getImplicitModel() + ", handlerMethod="
|
||||
+ getHandlerMethod() + ", handlerParameters="
|
||||
+ Arrays.toString(getHandlerParameters()) + ",modelAndView=" + modelAndView
|
||||
+ ", exception=" + exception + "]";
|
||||
}
|
||||
|
||||
private Exception exception;
|
||||
|
||||
public ActionExecutedContext(ActionExecutingContext actionExecutingContext, ModelAndView modelAndView, Exception exception) {
|
||||
super(actionExecutingContext.getServletWebRequest(), actionExecutingContext.getHandler(),
|
||||
actionExecutingContext.getHandlerMethod(), actionExecutingContext.getHandlerParameters(),
|
||||
actionExecutingContext.getImplicitModel());
|
||||
this.modelAndView = modelAndView;
|
||||
this.exception = exception;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ActionExecutedContext [handler=" + getHandler()
|
||||
+ ", servletWebRequest=" + getServletWebRequest()
|
||||
+ ", implicitModel=" + getImplicitModel() + ", handlerMethod="
|
||||
+ getHandlerMethod() + ", handlerParameters="
|
||||
+ Arrays.toString(getHandlerParameters()) + ",modelAndView=" + modelAndView
|
||||
+ ", exception=" + exception + "]";
|
||||
}
|
||||
|
||||
|
||||
public ModelAndView getModelAndView() {
|
||||
return modelAndView;
|
||||
}
|
||||
public ModelAndView getModelAndView() {
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
|
||||
public Exception getException() {
|
||||
return exception;
|
||||
}
|
||||
public Exception getException() {
|
||||
return exception;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -17,7 +17,6 @@ package org.springframework.data.document.web.servlet;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.Arrays;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
@@ -26,67 +25,65 @@ import org.springframework.web.context.request.ServletWebRequest;
|
||||
|
||||
public class ActionExecutingContext {
|
||||
|
||||
|
||||
private Object handler;
|
||||
|
||||
private ServletWebRequest servletWebRequest;
|
||||
|
||||
private ExtendedModelMap implicitModel;
|
||||
|
||||
private Method handlerMethod;
|
||||
|
||||
private Object[] handlerParameters;
|
||||
|
||||
|
||||
public ActionExecutingContext(ServletWebRequest servletWebRequest,
|
||||
Object handler, Method handlerMethod, Object[] handlerParameters,
|
||||
ExtendedModelMap implicitModel) {
|
||||
super();
|
||||
this.servletWebRequest = servletWebRequest;
|
||||
this.handler = handler;
|
||||
this.handlerMethod = handlerMethod;
|
||||
this.handlerParameters = handlerParameters;
|
||||
this.implicitModel = implicitModel;
|
||||
}
|
||||
private Object handler;
|
||||
|
||||
public HttpServletRequest getHttpServletRequest() {
|
||||
return servletWebRequest.getRequest();
|
||||
}
|
||||
private ServletWebRequest servletWebRequest;
|
||||
|
||||
public HttpServletResponse getHttpServletResponse() {
|
||||
return servletWebRequest.getResponse();
|
||||
}
|
||||
private ExtendedModelMap implicitModel;
|
||||
|
||||
public Object getHandler() {
|
||||
return handler;
|
||||
}
|
||||
private Method handlerMethod;
|
||||
|
||||
public ServletWebRequest getServletWebRequest() {
|
||||
return servletWebRequest;
|
||||
}
|
||||
private Object[] handlerParameters;
|
||||
|
||||
public ExtendedModelMap getImplicitModel() {
|
||||
return implicitModel;
|
||||
}
|
||||
|
||||
public Method getHandlerMethod() {
|
||||
return handlerMethod;
|
||||
}
|
||||
public ActionExecutingContext(ServletWebRequest servletWebRequest,
|
||||
Object handler, Method handlerMethod, Object[] handlerParameters,
|
||||
ExtendedModelMap implicitModel) {
|
||||
super();
|
||||
this.servletWebRequest = servletWebRequest;
|
||||
this.handler = handler;
|
||||
this.handlerMethod = handlerMethod;
|
||||
this.handlerParameters = handlerParameters;
|
||||
this.implicitModel = implicitModel;
|
||||
}
|
||||
|
||||
public HttpServletRequest getHttpServletRequest() {
|
||||
return servletWebRequest.getRequest();
|
||||
}
|
||||
|
||||
public HttpServletResponse getHttpServletResponse() {
|
||||
return servletWebRequest.getResponse();
|
||||
}
|
||||
|
||||
public Object getHandler() {
|
||||
return handler;
|
||||
}
|
||||
|
||||
public ServletWebRequest getServletWebRequest() {
|
||||
return servletWebRequest;
|
||||
}
|
||||
|
||||
public ExtendedModelMap getImplicitModel() {
|
||||
return implicitModel;
|
||||
}
|
||||
|
||||
public Method getHandlerMethod() {
|
||||
return handlerMethod;
|
||||
}
|
||||
|
||||
public Object[] getHandlerParameters() {
|
||||
return handlerParameters;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ActionExecutingContext [handler=" + handler
|
||||
+ ", servletWebRequest=" + servletWebRequest
|
||||
+ ", implicitModel=" + implicitModel + ", handlerMethod="
|
||||
+ handlerMethod + ", handlerParameters="
|
||||
+ Arrays.toString(handlerParameters) + "]";
|
||||
}
|
||||
|
||||
public Object[] getHandlerParameters() {
|
||||
return handlerParameters;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ActionExecutingContext [handler=" + handler
|
||||
+ ", servletWebRequest=" + servletWebRequest
|
||||
+ ", implicitModel=" + implicitModel + ", handlerMethod="
|
||||
+ handlerMethod + ", handlerParameters="
|
||||
+ Arrays.toString(handlerParameters) + "]";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -17,9 +17,9 @@ package org.springframework.data.document.web.servlet;
|
||||
|
||||
public interface ActionInterceptor {
|
||||
|
||||
boolean preHandle(ActionExecutingContext actionExecutingContext);
|
||||
|
||||
void postHandle(ActionExecutedContext actionExecutedContext);
|
||||
|
||||
void afterCompletion(ActionExecutedContext actionExecutedContext);
|
||||
boolean preHandle(ActionExecutingContext actionExecutingContext);
|
||||
|
||||
void postHandle(ActionExecutedContext actionExecutedContext);
|
||||
|
||||
void afterCompletion(ActionExecutedContext actionExecutedContext);
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -34,110 +34,108 @@ import org.springframework.web.util.WebUtils;
|
||||
*/
|
||||
abstract class ServletAnnotationMappingUtils {
|
||||
|
||||
/**
|
||||
* Check whether the given request matches the specified request methods.
|
||||
* @param methods the HTTP request methods to check against
|
||||
* @param request the current HTTP request to check
|
||||
*/
|
||||
public static boolean checkRequestMethod(RequestMethod[] methods, HttpServletRequest request) {
|
||||
if (ObjectUtils.isEmpty(methods)) {
|
||||
return true;
|
||||
}
|
||||
for (RequestMethod method : methods) {
|
||||
if (method.name().equals(request.getMethod())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Check whether the given request matches the specified request methods.
|
||||
*
|
||||
* @param methods the HTTP request methods to check against
|
||||
* @param request the current HTTP request to check
|
||||
*/
|
||||
public static boolean checkRequestMethod(RequestMethod[] methods, HttpServletRequest request) {
|
||||
if (ObjectUtils.isEmpty(methods)) {
|
||||
return true;
|
||||
}
|
||||
for (RequestMethod method : methods) {
|
||||
if (method.name().equals(request.getMethod())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether the given request matches the specified parameter conditions.
|
||||
* @param params the parameter conditions, following
|
||||
* {@link org.springframework.web.bind.annotation.RequestMapping#params() RequestMapping.#params()}
|
||||
* @param request the current HTTP request to check
|
||||
*/
|
||||
public static boolean checkParameters(String[] params, HttpServletRequest request) {
|
||||
if (!ObjectUtils.isEmpty(params)) {
|
||||
for (String param : params) {
|
||||
int separator = param.indexOf('=');
|
||||
if (separator == -1) {
|
||||
if (param.startsWith("!")) {
|
||||
if (WebUtils.hasSubmitParameter(request, param.substring(1))) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (!WebUtils.hasSubmitParameter(request, param)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
boolean negated = separator > 0 && param.charAt(separator - 1) == '!';
|
||||
String key = !negated ? param.substring(0, separator) : param.substring(0, separator - 1);
|
||||
String value = param.substring(separator + 1);
|
||||
if (!value.equals(request.getParameter(key))) {
|
||||
return negated;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* Check whether the given request matches the specified parameter conditions.
|
||||
*
|
||||
* @param params the parameter conditions, following
|
||||
* {@link org.springframework.web.bind.annotation.RequestMapping#params() RequestMapping.#params()}
|
||||
* @param request the current HTTP request to check
|
||||
*/
|
||||
public static boolean checkParameters(String[] params, HttpServletRequest request) {
|
||||
if (!ObjectUtils.isEmpty(params)) {
|
||||
for (String param : params) {
|
||||
int separator = param.indexOf('=');
|
||||
if (separator == -1) {
|
||||
if (param.startsWith("!")) {
|
||||
if (WebUtils.hasSubmitParameter(request, param.substring(1))) {
|
||||
return false;
|
||||
}
|
||||
} else if (!WebUtils.hasSubmitParameter(request, param)) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
boolean negated = separator > 0 && param.charAt(separator - 1) == '!';
|
||||
String key = !negated ? param.substring(0, separator) : param.substring(0, separator - 1);
|
||||
String value = param.substring(separator + 1);
|
||||
if (!value.equals(request.getParameter(key))) {
|
||||
return negated;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check whether the given request matches the specified header conditions.
|
||||
* @param headers the header conditions, following
|
||||
* {@link org.springframework.web.bind.annotation.RequestMapping#headers() RequestMapping.headers()}
|
||||
* @param request the current HTTP request to check
|
||||
*/
|
||||
public static boolean checkHeaders(String[] headers, HttpServletRequest request) {
|
||||
if (!ObjectUtils.isEmpty(headers)) {
|
||||
for (String header : headers) {
|
||||
int separator = header.indexOf('=');
|
||||
if (separator == -1) {
|
||||
if (header.startsWith("!")) {
|
||||
if (request.getHeader(header.substring(1)) != null) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if (request.getHeader(header) == null) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
boolean negated = separator > 0 && header.charAt(separator - 1) == '!';
|
||||
String key = !negated ? header.substring(0, separator) : header.substring(0, separator - 1);
|
||||
String value = header.substring(separator + 1);
|
||||
if (isMediaTypeHeader(key)) {
|
||||
List<MediaType> requestMediaTypes = MediaType.parseMediaTypes(request.getHeader(key));
|
||||
List<MediaType> valueMediaTypes = MediaType.parseMediaTypes(value);
|
||||
boolean found = false;
|
||||
for (Iterator<MediaType> valIter = valueMediaTypes.iterator(); valIter.hasNext() && !found;) {
|
||||
MediaType valueMediaType = valIter.next();
|
||||
for (Iterator<MediaType> reqIter = requestMediaTypes.iterator();
|
||||
reqIter.hasNext() && !found;) {
|
||||
MediaType requestMediaType = reqIter.next();
|
||||
if (valueMediaType.includes(requestMediaType)) {
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Check whether the given request matches the specified header conditions.
|
||||
*
|
||||
* @param headers the header conditions, following
|
||||
* {@link org.springframework.web.bind.annotation.RequestMapping#headers() RequestMapping.headers()}
|
||||
* @param request the current HTTP request to check
|
||||
*/
|
||||
public static boolean checkHeaders(String[] headers, HttpServletRequest request) {
|
||||
if (!ObjectUtils.isEmpty(headers)) {
|
||||
for (String header : headers) {
|
||||
int separator = header.indexOf('=');
|
||||
if (separator == -1) {
|
||||
if (header.startsWith("!")) {
|
||||
if (request.getHeader(header.substring(1)) != null) {
|
||||
return false;
|
||||
}
|
||||
} else if (request.getHeader(header) == null) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
boolean negated = separator > 0 && header.charAt(separator - 1) == '!';
|
||||
String key = !negated ? header.substring(0, separator) : header.substring(0, separator - 1);
|
||||
String value = header.substring(separator + 1);
|
||||
if (isMediaTypeHeader(key)) {
|
||||
List<MediaType> requestMediaTypes = MediaType.parseMediaTypes(request.getHeader(key));
|
||||
List<MediaType> valueMediaTypes = MediaType.parseMediaTypes(value);
|
||||
boolean found = false;
|
||||
for (Iterator<MediaType> valIter = valueMediaTypes.iterator(); valIter.hasNext() && !found;) {
|
||||
MediaType valueMediaType = valIter.next();
|
||||
for (Iterator<MediaType> reqIter = requestMediaTypes.iterator();
|
||||
reqIter.hasNext() && !found;) {
|
||||
MediaType requestMediaType = reqIter.next();
|
||||
if (valueMediaType.includes(requestMediaType)) {
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
if (!found) {
|
||||
return negated;
|
||||
}
|
||||
}
|
||||
else if (!value.equals(request.getHeader(key))) {
|
||||
return negated;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
return negated;
|
||||
}
|
||||
} else if (!value.equals(request.getHeader(key))) {
|
||||
return negated;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private static boolean isMediaTypeHeader(String headerName) {
|
||||
return "Accept".equalsIgnoreCase(headerName) || "Content-Type".equalsIgnoreCase(headerName);
|
||||
}
|
||||
private static boolean isMediaTypeHeader(String headerName) {
|
||||
return "Accept".equalsIgnoreCase(headerName) || "Content-Type".equalsIgnoreCase(headerName);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user