Index: C:/workspaces/configuration/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/LoginModuleConfig.java
===================================================================
--- C:/workspaces/configuration/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/LoginModuleConfig.java	(revision 665892)
+++ C:/workspaces/configuration/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/config/LoginModuleConfig.java	(working copy)
@@ -44,7 +44,7 @@
      * {@link org.apache.jackrabbit.core.security.principal.PrincipalProvider}
      * to be used with the LoginModule.
      */
-    public static final String PARAM_PRINCIPAL_PROVIDER_CLASS = "principalprovider";
+    public static final String PARAM_PRINCIPAL_PROVIDER_CLASS = "principalProvider";
 
     /**
      * Creates an access manager configuration object from the
Index: C:/workspaces/configuration/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authentication/AbstractLoginModule.java
===================================================================
--- C:/workspaces/configuration/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authentication/AbstractLoginModule.java	(revision 665892)
+++ C:/workspaces/configuration/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/security/authentication/AbstractLoginModule.java	(working copy)
@@ -16,17 +16,11 @@
  */
 package org.apache.jackrabbit.core.security.authentication;
 
-import org.apache.commons.collections.set.ListOrderedSet;
-import org.apache.jackrabbit.api.security.principal.PrincipalIterator;
-import org.apache.jackrabbit.api.security.principal.PrincipalManager;
-import org.apache.jackrabbit.api.security.user.Impersonation;
-import org.apache.jackrabbit.api.security.user.User;
-import org.apache.jackrabbit.core.config.LoginModuleConfig;
-import org.apache.jackrabbit.core.security.SecurityConstants;
-import org.apache.jackrabbit.core.security.principal.PrincipalProvider;
-import org.apache.jackrabbit.core.security.principal.PrincipalProviderRegistry;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import java.io.IOException;
+import java.security.Principal;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
 
 import javax.jcr.Credentials;
 import javax.jcr.RepositoryException;
@@ -40,11 +34,18 @@
 import javax.security.auth.login.FailedLoginException;
 import javax.security.auth.login.LoginException;
 import javax.security.auth.spi.LoginModule;
-import java.io.IOException;
-import java.security.Principal;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Set;
+
+import org.apache.commons.collections.set.ListOrderedSet;
+import org.apache.jackrabbit.api.security.principal.PrincipalIterator;
+import org.apache.jackrabbit.api.security.principal.PrincipalManager;
+import org.apache.jackrabbit.api.security.user.Impersonation;
+import org.apache.jackrabbit.api.security.user.User;
+import org.apache.jackrabbit.core.config.LoginModuleConfig;
+import org.apache.jackrabbit.core.security.SecurityConstants;
+import org.apache.jackrabbit.core.security.principal.PrincipalProvider;
+import org.apache.jackrabbit.core.security.principal.PrincipalProviderRegistry;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * This Abstract class provides the means for the common Authentication tasks,
@@ -84,6 +85,8 @@
 
     private Map sharedState;
 
+    private String principalProviderName;
+
     /**
      * Initialize this LoginModule.<br> This abstract implementation, initalizes
      * the following fields for later use:
@@ -121,9 +124,8 @@
 
             // retrieve the principal-provider configured for this module
             PrincipalProviderRegistry registry = repositoryCb.getPrincipalProviderRegistry();
-            if (options.containsKey(LoginModuleConfig.PARAM_PRINCIPAL_PROVIDER_CLASS)) {
-                String providerName = (String) options.get(LoginModuleConfig.PARAM_PRINCIPAL_PROVIDER_CLASS);
-                principalProvider = registry.getProvider(providerName);
+            if (principalProviderName != null){
+                principalProvider = registry.getProvider(principalProviderName);
             }
             if (principalProvider == null) {
                 principalProvider = registry.getDefault();
@@ -700,4 +702,13 @@
     public void setDefaultUserId(String defaultUserId) {
         this.defaultUserId = defaultUserId;
     }
+    
+    public void setPrincipalProvider(String principalProviderName){
+        this.principalProviderName = principalProviderName;
+    }
+    
+    public String getPrincipalProvider(){
+        return principalProviderName;
+    }
+    
 }
