Make client certificate authorization more robust
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / auth / UserAdminLoginModule.java
index b50bf8ac4699ba5098fff3cac93d041d5c687efd..ad9eb24c52ac912c32f9568ca956f19869123405 100644 (file)
@@ -13,7 +13,6 @@ import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 
-import javax.naming.InvalidNameException;
 import javax.naming.ldap.LdapName;
 import javax.security.auth.Subject;
 import javax.security.auth.callback.Callback;
@@ -94,15 +93,16 @@ public class UserAdminLoginModule implements LoginModule {
                        // // TODO locale?
                } else if (sharedState.containsKey(CmsAuthUtils.SHARED_STATE_NAME)
                                && sharedState.containsKey(CmsAuthUtils.SHARED_STATE_CERTIFICATE_CHAIN)) {
-                       String certificateName = (String) sharedState.get(CmsAuthUtils.SHARED_STATE_NAME);
-                       LdapName ldapName;
-                       try {
-                               ldapName = new LdapName(certificateName);
-                       } catch (InvalidNameException e) {
-                               e.printStackTrace();
-                               return false;
-                       }
-                       username = ldapName.getRdn(ldapName.size() - 1).getValue().toString();
+                       String certDn = (String) sharedState.get(CmsAuthUtils.SHARED_STATE_NAME);
+//                     LdapName ldapName;
+//                     try {
+//                             ldapName = new LdapName(certificateName);
+//                     } catch (InvalidNameException e) {
+//                             e.printStackTrace();
+//                             return false;
+//                     }
+//                     username = ldapName.getRdn(ldapName.size() - 1).getValue().toString();
+                       username = certDn;
                        certificateChain = sharedState.get(CmsAuthUtils.SHARED_STATE_CERTIFICATE_CHAIN);
                        password = null;
                } else if (singleUser) {