[
https://issues.apache.org/jira/browse/HTTPCORE-478?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17687253#comment-17687253
]
Arturo Bernal commented on HTTPCORE-478:
----------------------------------------
[~olegk]
Just to know if I'm on the right track and I'm not saying/doing anything
foolish. Does this comply with the rules of the RFC? I've tried to follow the
documentation and reflect everything it says but it's not easy to follow.
{code:java}
@Override
public void process(final HttpRequest request, final EntityDetails entity,
final HttpContext context) throws HttpException, IOException {
Args.notNull(request, "HTTP request");
Args.notNull(context, "HTTP context");
final ProtocolVersion ver = context.getProtocolVersion() != null ?
context.getProtocolVersion() : HttpVersion.HTTP_1_1;
final URIAuthority authority = request.getAuthority();
if (authority == null) {
throw new ProtocolException("Request authority not specified");
}
final int port = authority.getPort();
final StringBuilder valueBuilder = new StringBuilder();
valueBuilder.append("host=").append(authority.getHostName());
if (port != -1) {
valueBuilder.append(";port=").append(port);
}
final String protoValue = ver.getProtocol();
if (protoValue != null) {
valueBuilder.append("proto=").append(protoValue);
}
final EndpointDetails endpointDetails = (EndpointDetails)
context.getAttribute(HttpCoreContext.CONNECTION_ENDPOINT);
// Add the "for" property
if (endpointDetails != null) {
valueBuilder.append(";for=").append(endpointDetails.getRemoteAddress().toString());
}
final String byValue = (String)
context.getAttribute(X_FORWARDED_HEADER_NAME);
if (byValue != null) {
valueBuilder.append(";by=").append(byValue);
} else {
valueBuilder.append(";by=unknown");
}
final Header header = request.getFirstHeader(X_FORWARDED_HEADER_NAME);
if (header != null) {
request.removeHeader(header);
}
request.addHeader(new BasicHeader(X_FORWARDED_HEADER_NAME,
valueBuilder.toString()));
request.addHeader(new BasicHeader(FORWARDED_HEADER_NAME,
valueBuilder.toString()));
}{code}
> Add "Forwarded" HttpRequestInterceptor
> --------------------------------------
>
> Key: HTTPCORE-478
> URL: https://issues.apache.org/jira/browse/HTTPCORE-478
> Project: HttpComponents HttpCore
> Issue Type: New Feature
> Reporter: Gary D. Gregory
> Priority: Major
>
> Add a "Forwarded" HttpRequestInterceptor to add the "Forwarded" HTTP header.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]