@Contract(threading=IMMUTABLE)
class RequestProtocolCompliance
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private static java.util.List<java.lang.String> |
disallowedWithNoCache |
private boolean |
weakETagOnPutDeleteAllowed |
Constructor and Description |
---|
RequestProtocolCompliance() |
RequestProtocolCompliance(boolean weakETagOnPutDeleteAllowed) |
Modifier and Type | Method and Description |
---|---|
private void |
add100ContinueHeaderIfMissing(org.apache.http.HttpRequest request) |
private void |
addContentTypeHeaderIfMissing(org.apache.http.HttpEntityEnclosingRequest request) |
private java.lang.String |
buildHeaderFromElements(java.util.List<org.apache.http.HeaderElement> outElts) |
private void |
decrementOPTIONSMaxForwardsIfGreaterThen0(org.apache.http.HttpRequest request) |
org.apache.http.HttpResponse |
getErrorForRequest(RequestProtocolError errorCheck)
Extract error information about the
HttpRequest telling the 'caller'
that a problem occured. |
void |
makeRequestCompliant(HttpRequestWrapper request)
If the
HttpRequest is non-compliant but 'fixable' we go ahead and
fix the request here. |
private void |
remove100ContinueHeaderIfExists(org.apache.http.HttpRequest request) |
private RequestProtocolError |
requestContainsNoCacheDirectiveWithFieldName(org.apache.http.HttpRequest request) |
private RequestProtocolError |
requestHasWeakETagAndRange(org.apache.http.HttpRequest request) |
private RequestProtocolError |
requestHasWeekETagForPUTOrDELETEIfMatch(org.apache.http.HttpRequest request) |
java.util.List<RequestProtocolError> |
requestIsFatallyNonCompliant(org.apache.http.HttpRequest request)
Test to see if the
HttpRequest is HTTP1.1 compliant or not
and if not, we can not continue. |
protected boolean |
requestMinorVersionIsTooHighMajorVersionsMatch(org.apache.http.HttpRequest request) |
private boolean |
requestMustNotHaveEntity(org.apache.http.HttpRequest request) |
protected boolean |
requestVersionIsTooLow(org.apache.http.HttpRequest request) |
private void |
stripOtherFreshnessDirectivesWithNoCache(org.apache.http.HttpRequest request) |
private void |
verifyOPTIONSRequestWithBodyHasContentType(org.apache.http.HttpRequest request) |
private void |
verifyRequestWithExpectContinueFlagHas100continueHeader(org.apache.http.HttpRequest request) |
private final boolean weakETagOnPutDeleteAllowed
private static final java.util.List<java.lang.String> disallowedWithNoCache
public RequestProtocolCompliance()
public RequestProtocolCompliance(boolean weakETagOnPutDeleteAllowed)
public java.util.List<RequestProtocolError> requestIsFatallyNonCompliant(org.apache.http.HttpRequest request)
HttpRequest
is HTTP1.1 compliant or not
and if not, we can not continue.request
- the HttpRequest ObjectRequestProtocolError
public void makeRequestCompliant(HttpRequestWrapper request) throws ClientProtocolException
HttpRequest
is non-compliant but 'fixable' we go ahead and
fix the request here.request
- the request to check for complianceClientProtocolException
- when we have trouble making the request compliantprivate void stripOtherFreshnessDirectivesWithNoCache(org.apache.http.HttpRequest request)
private java.lang.String buildHeaderFromElements(java.util.List<org.apache.http.HeaderElement> outElts)
private boolean requestMustNotHaveEntity(org.apache.http.HttpRequest request)
private void decrementOPTIONSMaxForwardsIfGreaterThen0(org.apache.http.HttpRequest request)
private void verifyOPTIONSRequestWithBodyHasContentType(org.apache.http.HttpRequest request)
private void addContentTypeHeaderIfMissing(org.apache.http.HttpEntityEnclosingRequest request)
private void verifyRequestWithExpectContinueFlagHas100continueHeader(org.apache.http.HttpRequest request)
private void remove100ContinueHeaderIfExists(org.apache.http.HttpRequest request)
private void add100ContinueHeaderIfMissing(org.apache.http.HttpRequest request)
protected boolean requestMinorVersionIsTooHighMajorVersionsMatch(org.apache.http.HttpRequest request)
protected boolean requestVersionIsTooLow(org.apache.http.HttpRequest request)
public org.apache.http.HttpResponse getErrorForRequest(RequestProtocolError errorCheck)
HttpRequest
telling the 'caller'
that a problem occured.errorCheck
- What type of error should I getHttpResponse
that is the error generatedprivate RequestProtocolError requestHasWeakETagAndRange(org.apache.http.HttpRequest request)
private RequestProtocolError requestHasWeekETagForPUTOrDELETEIfMatch(org.apache.http.HttpRequest request)
private RequestProtocolError requestContainsNoCacheDirectiveWithFieldName(org.apache.http.HttpRequest request)