Added checks to the file server configuration bean initialization to check that the configured

authenticator matches the authentication component NTLM mode.
Updated authenticator base class required for passthru changes.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@2479 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Gary Spencer
2006-02-23 13:59:50 +00:00
parent f737be201b
commit 6fac2e9b25
3 changed files with 46 additions and 5 deletions

View File

@@ -73,6 +73,7 @@ import org.alfresco.filesys.smb.DialectSelector;
import org.alfresco.filesys.smb.ServerType;
import org.alfresco.filesys.util.IPAddress;
import org.alfresco.repo.security.authentication.AuthenticationComponent;
import org.alfresco.repo.security.authentication.NTLMMode;
import org.alfresco.service.cmr.repository.NodeService;
import org.alfresco.service.cmr.security.AuthenticationService;
import org.alfresco.service.cmr.security.PersonService;
@@ -516,7 +517,7 @@ public class ServerConfiguration implements ApplicationListener
{
// Configuration error
logger.error("CIFS server configuration error, " + ex.getMessage(), ex);
logger.error("File server configuration error, " + ex.getMessage(), ex);
// Disable the CIFS server
@@ -1531,6 +1532,10 @@ public class ServerConfiguration implements ApplicationListener
if (authType == null)
throw new AlfrescoRuntimeException("Authenticator type not specified");
// Get the authentication component type
NTLMMode ntlmMode = m_authenticationComponent.getNTLMMode();
// Set the authenticator class to use
SrvAuthenticator auth = null;
@@ -1538,6 +1543,11 @@ public class ServerConfiguration implements ApplicationListener
auth = new LocalAuthenticator();
else if (authType.equalsIgnoreCase("passthru"))
{
// Check if the appropriate authentication component type is configured
if ( ntlmMode != NTLMMode.NONE)
throw new AlfrescoRuntimeException("Wrong authentication setup for passthru authenticator");
// Load the passthru authenticator dynamically
auth = loadAuthenticatorClass("org.alfresco.filesys.server.auth.passthru.PassthruAuthenticator");
@@ -1554,6 +1564,11 @@ public class ServerConfiguration implements ApplicationListener
}
else if (authType.equalsIgnoreCase("alfresco"))
{
// Standard authenticator requires MD4 or passthru based authentication
if ( ntlmMode == NTLMMode.NONE)
throw new AlfrescoRuntimeException("Wrong authentication setup for alfresco authenticator");
// Load the Alfresco authenticator dynamically
auth = loadAuthenticatorClass("org.alfresco.filesys.server.auth.ntlm.AlfrescoAuthenticator");