[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