[jboss-jira] [JBoss JIRA] Commented: (SECURITY-129) Client Delegation

Zhiyong Li (JIRA) jira-events at lists.jboss.org
Fri Oct 9 11:32:06 EDT 2009


    [ https://jira.jboss.org/jira/browse/SECURITY-129?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12489190#action_12489190 ] 

Zhiyong Li commented on SECURITY-129:
-------------------------------------

If I can obtain the delegation credential, then I can accomplish the delegation (authenticate on behalf of the client user) by my code. 

In your 2.0.3 GA code, I notice that you have a threadlocal variable and also a scheme context variable in NegatiationContext.java

     private static final ThreadLocal<NegotiationContext>  negotiationContext = new ThreadLocal<NegotiationContext>();
     private Object schemeContext = null;

I thought that I may be able to get the schemeContext from my code (such as a servlet) and then in turn to get the client delegation credential, for example,


      GSSContext context = (GSSContext)NegotiationContext.getCurrentNegotiationContext().getSchemeContext();      

      //check if the credentials can be delegated   
      if (!context.getCredDelegState()) {   
         System.out.println("credentials cannot be delegated!");   
         throw new Exception("credentials cannot be delegated!");   
      }             
      
      //get the delegated credentials from the calling peer...   
      GSSCredential clientCred = context.getDelegCred(); 


however, that value of schemeContext is "clear-ed" after "authentication" in org.jboss.security.negotiation.NegotiationAuthenticator.java

   protected boolean authenticate(final Request request, final Response response, final LoginConfig config)
         throws IOException{
         
         ...
         negotiationContext.clear();
         ...
   }

Thus, I cannot get schemeContext. I get around the problem by commented out: negotiationContext.clear();

My request is that whether you can make the schemeContext or the client delegation credential available for the application code in the same request/response.


> Client Delegation
> -----------------
>
>                 Key: SECURITY-129
>                 URL: https://jira.jboss.org/jira/browse/SECURITY-129
>             Project: JBoss Security and Identity Management
>          Issue Type: Task
>      Security Level: Public(Everyone can see) 
>          Components: Negotiation
>            Reporter: Darran Lofthouse
>            Assignee: Darran Lofthouse
>             Fix For: Negotiation_2.0.4.GA
>
>
> Web browser can delegate to the server being called so same credentials can be used for further calls.
>   Delegation using GSSAPI, WS-Kerberos, credential propagation for EJB calls etc..

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list