You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by gt...@apache.org on 2011/05/09 18:33:59 UTC

svn commit: r1101099 - /activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/

Author: gtully
Date: Mon May  9 16:33:59 2011
New Revision: 1101099

URL: http://svn.apache.org/viewvc?rev=1101099&view=rev
Log:
https://issues.apache.org/jira/browse/AMQ-3308 - Minor code improvements in jaas module. patch applied with thanks.

Modified:
    activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/CertificateLoginModule.java
    activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/GroupPrincipal.java
    activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/GuestLoginModule.java
    activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/JaasCertificateCallbackHandler.java
    activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/JassCredentialCallbackHandler.java
    activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/LDAPLoginModule.java
    activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/PropertiesLoginModule.java
    activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/TextFileCertificateLoginModule.java
    activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/UserPrincipal.java

Modified: activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/CertificateLoginModule.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/CertificateLoginModule.java?rev=1101099&r1=1101098&r2=1101099&view=diff
==============================================================================
--- activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/CertificateLoginModule.java (original)
+++ activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/CertificateLoginModule.java Mon May  9 16:33:59 2011
@@ -52,13 +52,14 @@ public abstract class CertificateLoginMo
 
     private X509Certificate certificates[];
     private String username;
-    private Set groups;
+    private Set<String> groups;
     private Set<Principal> principals = new HashSet<Principal>();
     private boolean debug;
 
     /**
      * Overriding to allow for proper initialization. Standard JAAS.
      */
+    @Override
     public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options) {
         this.subject = subject;
         this.callbackHandler = callbackHandler;
@@ -73,6 +74,7 @@ public abstract class CertificateLoginMo
     /**
      * Overriding to allow for certificate-based login. Standard JAAS.
      */
+    @Override
     public boolean login() throws LoginException {
         Callback[] callbacks = new Callback[1];
 
@@ -102,13 +104,12 @@ public abstract class CertificateLoginMo
     /**
      * Overriding to complete login process. Standard JAAS.
      */
+    @Override
     public boolean commit() throws LoginException {
         principals.add(new UserPrincipal(username));
 
-        String currentGroup = null;
-        for (Iterator iter = groups.iterator(); iter.hasNext();) {
-            currentGroup = (String)iter.next();
-            principals.add(new GroupPrincipal(currentGroup));
+        for (String group : groups) {
+             principals.add(new GroupPrincipal(group));
         }
 
         subject.getPrincipals().addAll(principals);
@@ -124,6 +125,7 @@ public abstract class CertificateLoginMo
     /**
      * Standard JAAS override.
      */
+    @Override
     public boolean abort() throws LoginException {
         clear();
 
@@ -136,6 +138,7 @@ public abstract class CertificateLoginMo
     /**
      * Standard JAAS override.
      */
+    @Override
     public boolean logout() {
         subject.getPrincipals().removeAll(principals);
         principals.clear();
@@ -172,7 +175,7 @@ public abstract class CertificateLoginMo
      *                getUserNameForDn returned for the user's DN.
      * @return A Set of the names of the groups this user belongs to.
      */
-    protected abstract Set getUserGroups(final String username) throws LoginException;
+    protected abstract Set<String> getUserGroups(final String username) throws LoginException;
 
     protected String getDistinguishedName(final X509Certificate[] certs) {
         if (certs != null && certs.length > 0 && certs[0] != null) {

Modified: activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/GroupPrincipal.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/GroupPrincipal.java?rev=1101099&r1=1101098&r2=1101099&view=diff
==============================================================================
--- activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/GroupPrincipal.java (original)
+++ activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/GroupPrincipal.java Mon May  9 16:33:59 2011
@@ -33,10 +33,12 @@ public class GroupPrincipal implements P
         this.name = name;
     }
 
+    @Override
     public String getName() {
         return name;
     }
 
+    @Override
     public boolean equals(Object o) {
         if (this == o) {
             return true;
@@ -54,6 +56,7 @@ public class GroupPrincipal implements P
         return true;
     }
 
+    @Override
     public int hashCode() {
         if (hash == 0) {
             hash = name.hashCode();
@@ -61,6 +64,7 @@ public class GroupPrincipal implements P
         return hash;
     }
 
+    @Override
     public String toString() {
         return name;
     }

Modified: activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/GuestLoginModule.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/GuestLoginModule.java?rev=1101099&r1=1101098&r2=1101099&view=diff
==============================================================================
--- activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/GuestLoginModule.java (original)
+++ activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/GuestLoginModule.java Mon May  9 16:33:59 2011
@@ -56,7 +56,7 @@ public class GuestLoginModule implements
     private CallbackHandler callbackHandler;
     private boolean loginSucceeded;
 
-
+    @Override
     public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options) {
         this.subject = subject;
         this.callbackHandler = callbackHandler;
@@ -77,6 +77,7 @@ public class GuestLoginModule implements
 
     }
 
+    @Override
     public boolean login() throws LoginException {
         loginSucceeded = true;
         if (credentialsInvalidate) {
@@ -100,6 +101,7 @@ public class GuestLoginModule implements
         return loginSucceeded;
     }
 
+    @Override
     public boolean commit() throws LoginException {
         if (loginSucceeded) {
             subject.getPrincipals().addAll(principals);
@@ -111,6 +113,7 @@ public class GuestLoginModule implements
         return loginSucceeded;
     }
 
+    @Override
     public boolean abort() throws LoginException {
 
         if (debug) {
@@ -119,6 +122,7 @@ public class GuestLoginModule implements
         return true;
     }
 
+    @Override
     public boolean logout() throws LoginException {
         subject.getPrincipals().removeAll(principals);
 

Modified: activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/JaasCertificateCallbackHandler.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/JaasCertificateCallbackHandler.java?rev=1101099&r1=1101098&r2=1101099&view=diff
==============================================================================
--- activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/JaasCertificateCallbackHandler.java (original)
+++ activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/JaasCertificateCallbackHandler.java Mon May  9 16:33:59 2011
@@ -50,6 +50,7 @@ public class JaasCertificateCallbackHand
      * @throws UnsupportedCallbackException Thrown if an unkown Callback type is
      *                 encountered.
      */
+    @Override
     public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
         for (int i = 0; i < callbacks.length; i++) {
             Callback callback = callbacks[i];

Modified: activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/JassCredentialCallbackHandler.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/JassCredentialCallbackHandler.java?rev=1101099&r1=1101098&r2=1101099&view=diff
==============================================================================
--- activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/JassCredentialCallbackHandler.java (original)
+++ activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/JassCredentialCallbackHandler.java Mon May  9 16:33:59 2011
@@ -37,6 +37,7 @@ public class JassCredentialCallbackHandl
         this.password = password;
     }
 
+    @Override
     public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
         for (int i = 0; i < callbacks.length; i++) {
             Callback callback = callbacks[i];

Modified: activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/LDAPLoginModule.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/LDAPLoginModule.java?rev=1101099&r1=1101098&r2=1101099&view=diff
==============================================================================
--- activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/LDAPLoginModule.java (original)
+++ activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/LDAPLoginModule.java Mon May  9 16:33:59 2011
@@ -22,7 +22,7 @@ import java.text.MessageFormat;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.Hashtable;
-import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -82,6 +82,7 @@ public class LDAPLoginModule implements 
     private String username;
     private Set<GroupPrincipal> groups = new HashSet<GroupPrincipal>();
 
+    @Override
     public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options) {
         this.subject = subject;
         this.handler = callbackHandler;
@@ -104,6 +105,7 @@ public class LDAPLoginModule implements 
         		};
     }
 
+    @Override
     public boolean login() throws LoginException {
 
         Callback[] callbacks = new Callback[2];
@@ -141,21 +143,23 @@ public class LDAPLoginModule implements 
         }
     }
 
+    @Override
     public boolean logout() throws LoginException {
         username = null;
         return true;
     }
 
+    @Override
     public boolean commit() throws LoginException {
         Set<Principal> principals = subject.getPrincipals();
         principals.add(new UserPrincipal(username));
-        Iterator<GroupPrincipal> iter = groups.iterator();
-        while (iter.hasNext()) {
-            principals.add(iter.next());
+        for (GroupPrincipal gp : groups) {
+            principals.add(gp);
         }
         return true;
     }
 
+    @Override
     public boolean abort() throws LoginException {
         username = null;
         return true;
@@ -196,7 +200,7 @@ public class LDAPLoginModule implements 
             }
 
             // setup attributes
-            ArrayList<String> list = new ArrayList<String>();
+            List<String> list = new ArrayList<String>();
             if (isLoginPropertySet(USER_ROLE_NAME)) {
                 list.add(getLDAPPropertyValue(USER_ROLE_NAME));
             }
@@ -204,13 +208,13 @@ public class LDAPLoginModule implements 
             list.toArray(attribs);
             constraints.setReturningAttributes(attribs);
 
-            NamingEnumeration results = context.search(getLDAPPropertyValue(USER_BASE), filter, constraints);
+            NamingEnumeration<SearchResult> results = context.search(getLDAPPropertyValue(USER_BASE), filter, constraints);
 
             if (results == null || !results.hasMore()) {
                 return false;
             }
 
-            SearchResult result = (SearchResult)results.next();
+            SearchResult result = results.next();
 
             if (results.hasMore()) {
                 // ignore for now
@@ -227,7 +231,7 @@ public class LDAPLoginModule implements 
             if (attrs == null) {
                 return false;
             }
-            ArrayList<String> roles = null;
+            List<String> roles = null;
             if (isLoginPropertySet(USER_ROLE_NAME)) {
                 roles = addAttributeValues(getLDAPPropertyValue(USER_ROLE_NAME), attrs, roles);
             }
@@ -254,8 +258,8 @@ public class LDAPLoginModule implements 
         return true;
     }
 
-    protected ArrayList<String> getRoles(DirContext context, String dn, String username, ArrayList<String> currentRoles) throws NamingException {
-        ArrayList<String> list = currentRoles;
+    protected List<String> getRoles(DirContext context, String dn, String username, List<String> currentRoles) throws NamingException {
+        List<String> list = currentRoles;
         MessageFormat roleSearchMatchingFormat;
         boolean roleSearchSubtreeBool;
         roleSearchMatchingFormat = new MessageFormat(getLDAPPropertyValue(ROLE_SEARCH_MATCHING));
@@ -277,9 +281,9 @@ public class LDAPLoginModule implements 
         } else {
             constraints.setSearchScope(SearchControls.ONELEVEL_SCOPE);
         }
-        NamingEnumeration results = context.search(getLDAPPropertyValue(ROLE_BASE), filter, constraints);
+        NamingEnumeration<SearchResult> results = context.search(getLDAPPropertyValue(ROLE_BASE), filter, constraints);
         while (results.hasMore()) {
-            SearchResult result = (SearchResult)results.next();
+            SearchResult result = results.next();
             Attributes attrs = result.getAttributes();
             if (attrs == null) {
                 continue;
@@ -346,7 +350,7 @@ public class LDAPLoginModule implements 
         return isValid;
     }
 
-    private ArrayList<String> addAttributeValues(String attrId, Attributes attrs, ArrayList<String> values) throws NamingException {
+    private List<String> addAttributeValues(String attrId, Attributes attrs, List<String> values) throws NamingException {
 
         if (attrId == null || attrs == null) {
             return values;
@@ -358,7 +362,7 @@ public class LDAPLoginModule implements 
         if (attr == null) {
             return values;
         }
-        NamingEnumeration e = attr.getAll();
+        NamingEnumeration<?> e = attr.getAll();
         while (e.hasMore()) {
             String value = (String)e.next();
             values.add(value);

Modified: activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/PropertiesLoginModule.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/PropertiesLoginModule.java?rev=1101099&r1=1101098&r2=1101099&view=diff
==============================================================================
--- activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/PropertiesLoginModule.java (original)
+++ activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/PropertiesLoginModule.java Mon May  9 16:33:59 2011
@@ -61,7 +61,7 @@ public class PropertiesLoginModule imple
     private File baseDir;
     private boolean loginSucceeded;
 
-
+    @Override
     public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options) {
         this.subject = subject;
         this.callbackHandler = callbackHandler;
@@ -124,6 +124,7 @@ public class PropertiesLoginModule imple
         }
     }
 
+    @Override
     public boolean login() throws LoginException {
         Callback[] callbacks = new Callback[2];
 
@@ -160,12 +161,13 @@ public class PropertiesLoginModule imple
         return loginSucceeded;
     }
 
+    @Override
     public boolean commit() throws LoginException {
         boolean result = loginSucceeded;
         if (result) {
             principals.add(new UserPrincipal(user));
 
-            for (Enumeration enumeration = groups.keys(); enumeration.hasMoreElements();) {
+            for (Enumeration<?> enumeration = groups.keys(); enumeration.hasMoreElements();) {
                 String name = (String)enumeration.nextElement();
                 String[] userList = ((String)groups.getProperty(name) + "").split(",");
                 for (int i = 0; i < userList.length; i++) {
@@ -188,6 +190,7 @@ public class PropertiesLoginModule imple
         return result;
     }
 
+    @Override
     public boolean abort() throws LoginException {
         clear();
 
@@ -197,6 +200,7 @@ public class PropertiesLoginModule imple
         return true;
     }
 
+    @Override
     public boolean logout() throws LoginException {
         subject.getPrincipals().removeAll(principals);
         principals.clear();

Modified: activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/TextFileCertificateLoginModule.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/TextFileCertificateLoginModule.java?rev=1101099&r1=1101098&r2=1101099&view=diff
==============================================================================
--- activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/TextFileCertificateLoginModule.java (original)
+++ activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/TextFileCertificateLoginModule.java Mon May  9 16:33:59 2011
@@ -55,6 +55,7 @@ public class TextFileCertificateLoginMod
     /**
      * Performs initialization of file paths. A standard JAAS override.
      */
+    @Override
     public void initialize(Subject subject, CallbackHandler callbackHandler, Map sharedState, Map options) {
         super.initialize(subject, callbackHandler, sharedState, options);
         if (System.getProperty("java.security.auth.login.config") != null) {
@@ -77,6 +78,7 @@ public class TextFileCertificateLoginMod
      * @throws LoginException Thrown if unable to find user file or connection
      *                 certificate.
      */
+    @Override
     protected String getUserNameForCertificates(final X509Certificate[] certs) throws LoginException {
         if (certs == null) {
             throw new LoginException("Client certificates not found. Cannot authenticate.");
@@ -97,7 +99,7 @@ public class TextFileCertificateLoginMod
         String dn = getDistinguishedName(certs);
 
         Enumeration<Object> keys = users.keys();
-        for (Enumeration vals = users.elements(); vals.hasMoreElements();) {
+        for (Enumeration<Object> vals = users.elements(); vals.hasMoreElements();) {
             if (((String)vals.nextElement()).equals(dn)) {
                 return (String)keys.nextElement();
             } else {
@@ -116,6 +118,7 @@ public class TextFileCertificateLoginMod
      * @return A Set of name Strings for groups this user belongs to.
      * @throws LoginException Thrown if unable to find group definition file.
      */
+    @Override
     protected Set<String> getUserGroups(String username) throws LoginException {
         File groupsFile = new File(baseDir, groupsFilePathname);
 
@@ -128,7 +131,7 @@ public class TextFileCertificateLoginMod
             throw new LoginException("Unable to load group properties file " + groupsFile);
         }
         Set<String> userGroups = new HashSet<String>();
-        for (Enumeration enumeration = groups.keys(); enumeration.hasMoreElements();) {
+        for (Enumeration<Object> enumeration = groups.keys(); enumeration.hasMoreElements();) {
             String groupName = (String)enumeration.nextElement();
             String[] userList = (groups.getProperty(groupName) + "").split(",");
             for (int i = 0; i < userList.length; i++) {

Modified: activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/UserPrincipal.java
URL: http://svn.apache.org/viewvc/activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/UserPrincipal.java?rev=1101099&r1=1101098&r2=1101099&view=diff
==============================================================================
--- activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/UserPrincipal.java (original)
+++ activemq/trunk/activemq-jaas/src/main/java/org/apache/activemq/jaas/UserPrincipal.java Mon May  9 16:33:59 2011
@@ -33,10 +33,12 @@ public class UserPrincipal implements Pr
         this.name = name;
     }
 
+    @Override
     public String getName() {
         return name;
     }
 
+    @Override
     public boolean equals(Object o) {
         if (this == o) {
             return true;
@@ -54,6 +56,7 @@ public class UserPrincipal implements Pr
         return true;
     }
 
+    @Override
     public int hashCode() {
         if (hash == 0) {
             hash = name.hashCode();
@@ -61,6 +64,7 @@ public class UserPrincipal implements Pr
         return hash;
     }
 
+    @Override
     public String toString() {
         return name;
     }