[prev in list] [next in list] [prev in thread] [next in thread]
List: httpclient-commons-dev
Subject: [jira] Commented: (HTTPCLIENT-901) Add a ContextAwareAuthScheme
From: "Oleg Kalnichevski (JIRA)" <jira () apache ! org>
Date: 2010-02-23 15:02:28
Message-ID: 1267687771.463031266937348003.JavaMail.jira () brutus ! apache ! org
[Download RAW message or body]
[ https://issues.apache.org/jira/browse/HTTPCLIENT-901?page=com.atlassian.jira.plu \
gin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12837268#action_12837268 \
]
Oleg Kalnichevski commented on HTTPCLIENT-901:
----------------------------------------------
Truth to be told I neither have time, nor competence, nor inclination to work on this \
issue. I just wanted to know whether you were still interested in working on SPNEGO \
improvements in principle.
I would prefer your changes submitted as a series of incremental small patches, which \
obviously will require some preparation on your part. No need to rush things. Take \
your time.
Oleg
> Add a ContextAwareAuthScheme that has access to the HttpContext in the authenticate \
> method
> ------------------------------------------------------------------------------------------
>
> Key: HTTPCLIENT-901
> URL: https://issues.apache.org/jira/browse/HTTPCLIENT-901
> Project: HttpComponents HttpClient
> Issue Type: Improvement
> Components: HttpAuth
> Affects Versions: 4.1 Alpha1
> Reporter: Sebastiaan van Erk
> Fix For: 4.1 Alpha2
>
>
> The interface to be added would be:
> /**
> * This interface represents an extended authentication scheme
> * that requires access to {@link HttpContext} in order to
> * generate an authorization string.
> *
> * @since 4.1
> */
> public interface ContextAwareAuthScheme extends AuthScheme {
> /**
> * Produces an authorization string for the given set of
> * {@link Credentials}.
> *
> * @param credentials The set of credentials to be used for athentication
> * @param request The request being authenticated
> * @param context HTTP context
> * @throws AuthenticationException if authorization string cannot
> * be generated due to an authentication failure
> *
> * @return the authorization string
> */
> Header authenticate(
> Credentials credentials,
> HttpRequest request,
> HttpContext context) throws AuthenticationException;
> }
> Binary compatibility can be maintained by doing an instanceof check at the location \
> where AuthScheme.authenticate() is called at the moment, and calling the context \
> aware version if available. This interface is necessary for the NegotiateScheme \
> authentication scheme because the service names for the authentication tickets are \
> based on the hostname of the target host or proxy host, depending on whether it's \
> normal or proxy authentication, and this information is only available from the \
> HttpContext. Without the HttpContext there is a workaround that works most of the \
> time, which looks like this: String host;
> if (isProxy()) {
> // FIXME this should actually taken from the HttpContext.
> HttpHost proxy = ConnRouteParams.getDefaultProxy(request.getParams());
> host = proxy.getHostName();
> } else {
> host = request.getLastHeader("Host").getValue();
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic