[hornetq-commits] JBoss hornetq SVN: r9310 - trunk/src/main/org/hornetq/integration/jboss/security.

do-not-reply at jboss.org do-not-reply at jboss.org
Fri Jun 11 20:29:09 EDT 2010


Author: clebert.suconic at jboss.com
Date: 2010-06-11 20:29:09 -0400 (Fri, 11 Jun 2010)
New Revision: 9310

Modified:
   trunk/src/main/org/hornetq/integration/jboss/security/SecurityActions.java
Log:
https://jira.jboss.org/browse/HORNETQ-415 - Setting the subject properly

Modified: trunk/src/main/org/hornetq/integration/jboss/security/SecurityActions.java
===================================================================
--- trunk/src/main/org/hornetq/integration/jboss/security/SecurityActions.java	2010-06-11 22:18:59 UTC (rev 9309)
+++ trunk/src/main/org/hornetq/integration/jboss/security/SecurityActions.java	2010-06-12 00:29:09 UTC (rev 9310)
@@ -19,6 +19,7 @@
 
 import javax.security.auth.Subject;
 
+import org.hornetq.core.logging.Logger;
 import org.jboss.security.SecurityContext;
 import org.jboss.security.SecurityContextAssociation;
 import org.jboss.security.SecurityContextFactory;
@@ -31,6 +32,8 @@
  */
 class SecurityActions
 {
+   private static final Logger log = Logger.getLogger(JBossASSecurityManager.class);
+   
    interface PrincipalInfoAction
    {
       PrincipalInfoAction PRIVILEGED = new PrincipalInfoAction()
@@ -44,23 +47,40 @@
             {
                public Object run()
                {
-                  // SecurityAssociation.pushSubjectContext(subject, principal, credential);
-                  SecurityContext sc = SecurityContextAssociation.getSecurityContext();
-                  if (sc == null)
+
+                  try
                   {
-                     try
+                     log.info("========================================================");
+                     log.info("Setting subject = " + subject);
+                     // SecurityAssociation.pushSubjectContext(subject, principal, credential);
+                     SecurityContext sc = SecurityContextAssociation.getSecurityContext();
+                     if (sc == null)
                      {
-                        sc = SecurityContextFactory.createSecurityContext(principal,
-                                                                          credential,
-                                                                          subject,
-                                                                          securityDomain);
+                        try
+                        {
+                           sc = SecurityContextFactory.createSecurityContext(principal,
+                                                                             credential,
+                                                                             subject,
+                                                                             securityDomain);
+                        }
+                        catch (Exception e)
+                        {
+                           throw new RuntimeException(e);
+                        }
                      }
-                     catch (Exception e)
+                     else
                      {
-                        throw new RuntimeException(e);
+                        sc.getUtil().createSubjectInfo(principal, credential, subject);
                      }
+                     
+                     SecurityContextAssociation.setSecurityContext(sc);
+                     log.info("========================================================");
                   }
-                  SecurityContextAssociation.setSecurityContext(sc);
+                  catch (Throwable t)
+                  {
+                     log.warn("An error happened while setting the context", t);
+                  }
+                  
                   return null;
                }
             });



More information about the hornetq-commits mailing list