cancel
Showing results for 
Search instead for 
Did you mean: 

Can't create new user with NTLM passthru

tcordova
Champ in-the-making
Champ in-the-making
I've got NTLM passthru working (I can authenticate against our AD domain), but now I can't create new users.  When I try I get the following error:

"Failed to create person due to error: Not implemented"

with this stack trace:


10:46:44,526 ERROR [Utils] Failed to create Person due to error: Not implemented
org.alfresco.error.AlfrescoRuntimeException: Not implemented
   at org.alfresco.repo.security.authentication.ntlm.NullMutableAuthenticationDao.createUser(NullMutableAuthenticationDao.java:59)
   at org.alfresco.repo.security.authentication.AuthenticationServiceImpl.createAuthentication(AuthenticationServiceImpl.java:62)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:335)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
   at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
   at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
   at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
   at $Proxy145.createAuthentication(Unknown Source)
   at org.alfresco.web.bean.wizard.NewUserWizard.finish(NewUserWizard.java:506)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:129)
   at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63)
   at javax.faces.component.UICommand.broadcast(UICommand.java:106)
   at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:90)
   at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:164)
   at org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:316)
   at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:86)
   at org.apache.myfaces.portlet.MyFacesGenericPortlet.processAction(MyFacesGenericPortlet.java:221)
   at org.alfresco.web.app.portlet.AlfrescoFacesPortlet.processAction(AlfrescoFacesPortlet.java:178)
   at org.jboss.portal.portlet.PortletContainer.invokeAction(PortletContainer.java:470)
   at org.jboss.portal.portlet.PortletContainer.dispatch(PortletContainer.java:411)
   at org.jboss.portal.server.app.ComponentInvocation.dispatch(ComponentInvocation.java:66)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:127)
   at org.jboss.portal.core.aspects.component.TransactionInterceptor.invoke(TransactionInterceptor.java:59)
   at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.core.aspects.component.HeaderInterceptor.invoke(HeaderInterceptor.java:37)
   at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.server.aspects.component.NavigationInterceptor.invoke(NavigationInterceptor.java:63)
   at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.server.aspects.component.CacheInterceptor.invoke(CacheInterceptor.java:154)
   at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.server.aspects.component.ModesInterceptor.invoke(ModesInterceptor.java:38)
   at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.server.aspects.component.WindowStatesInterceptor.invoke(WindowStatesInterceptor.java:32)
   at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.bridge.BridgeInterceptor.invoke(BridgeInterceptor.java:36)
   at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.portlet.aspects.component.SessionPostDispatchInterceptor.invoke(SessionPostDispatchInterceptor.java:71)
   at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.server.aspects.component.ContextDispatcherInterceptor$InvokeNextCommand.execute(ContextDispatcherInterceptor.java:116)
   at sun.reflect.GeneratedMethodAccessor561.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.jboss.portal.server.servlet.CommandServlet.doGet(CommandServlet.java:88)
   at org.jboss.portal.server.servlet.CommandServlet.doPost(CommandServlet.java:136)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
   at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
   at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:539)
   at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
   at org.jboss.portal.server.app.impl.AbstractRequestContext.include(AbstractRequestContext.java:234)
   at org.jboss.portal.server.aspects.component.ContextDispatcherInterceptor$1.include(ContextDispatcherInterceptor.java:60)
   at org.jboss.portal.server.servlet.CommandServlet.include(CommandServlet.java:68)
   at org.jboss.portal.server.aspects.component.ContextDispatcherInterceptor.invoke(ContextDispatcherInterceptor.java:66)
   at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.portlet.aspects.component.SessionPreDispatchInterceptor.invoke(SessionPreDispatchInterceptor.java:97)
   at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.server.aspects.component.ContextTrackerInterceptor.invoke(ContextTrackerInterceptor.java:36)
   at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.portlet.aspects.component.SecureTransportInterceptor.invoke(SecureTransportInterceptor.java:56)
   at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.portlet.aspects.component.ValveInterceptor.invoke(ValveInterceptor.java:51)
   at org.jboss.portal.server.app.ComponentInterceptor.invoke(ComponentInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.server.invocation.Invocation.invoke(Invocation.java:162)
   at org.jboss.portal.core.command.InvokeWindowActionCommand.execute(InvokeWindowActionCommand.java:131)
   at org.jboss.portal.core.command.ControllerCommand.dispatch(ControllerCommand.java:65)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:127)
   at org.jboss.portal.core.aspects.controller.EventBroadcasterInterceptor.invoke(EventBroadcasterInterceptor.java:72)
   at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.core.aspects.controller.PolicyEnforcementInterceptor.invoke(PolicyEnforcementInterceptor.java:156)
   at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.core.aspects.controller.PortalNodeInterceptor.invoke(PortalNodeInterceptor.java:48)
   at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.core.aspects.controller.NavigationInterceptor.invoke(NavigationInterceptor.java:45)
   at org.jboss.portal.core.command.CommandInterceptor.invoke(CommandInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.server.invocation.Invocation.invoke(Invocation.java:162)
   at org.jboss.portal.core.command.CommandContext.execute(CommandContext.java:94)
   at org.jboss.portal.core.command.ExecutionContext.execute(ExecutionContext.java:80)
   at org.jboss.portal.core.command.ExecutionContext.execute(ExecutionContext.java:64)
   at org.jboss.portal.core.CoreController.handle(CoreController.java:177)
   at sun.reflect.GeneratedMethodAccessor365.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:585)
   at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:141)
   at org.jboss.mx.server.Invocation.dispatch(Invocation.java:80)
   at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:118)
   at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
   at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:127)
   at org.jboss.mx.server.Invocation.invoke(Invocation.java:74)
   at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:245)
   at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:644)
   at org.jboss.mx.util.JMXInvocationHandler.invoke(JMXInvocationHandler.java:273)
   at $Proxy207.handle(Unknown Source)
   at org.jboss.portal.server.ServerInvocation.dispatch(ServerInvocation.java:63)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:127)
   at org.jboss.portal.core.aspects.server.SubjectAssociationInterceptor.invoke(SubjectAssociationInterceptor.java:35)
   at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.core.aspects.server.PolicyAssociationInterceptor.invoke(PolicyAssociationInterceptor.java:40)
   at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.server.aspects.server.ContentTypeInterceptor.invoke(ContentTypeInterceptor.java:55)
   at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.core.aspects.server.LocaleInterceptor.invoke(LocaleInterceptor.java:56)
   at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.core.aspects.server.UserInterceptor.invoke(UserInterceptor.java:171)
   at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.server.aspects.server.SessionInvalidatorInterceptor.invoke(SessionInvalidatorInterceptor.java:74)
   at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.core.aspects.server.TransactionInterceptor.invoke(TransactionInterceptor.java:62)
   at org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:25)
   at org.jboss.portal.server.invocation.Invocation.invokeNext(Invocation.java:117)
   at org.jboss.portal.server.invocation.Invocation.invoke(Invocation.java:162)
   at org.jboss.portal.server.servlet.PortalServlet.doGet(PortalServlet.java:208)
   at org.jboss.portal.server.servlet.PortalServlet.doPost(PortalServlet.java:136)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
   at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
   at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
   at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
   at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:407)
   at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
   at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
   at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
   at java.lang.Thread.run(Thread.java:595)

I've looked through the forums and wiki and can't find an answer for this.
4 REPLIES 4

tcordova
Champ in-the-making
Champ in-the-making
here's the code:



<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans>

    <bean id="authenticationDao" class="org.alfresco.repo.security.authentication.ntlm.NullMutableAuthenticationDao">
<!–      
         <property name="nodeService">
           <ref bean="nodeService" />
      </property>
–>         
    </bean>

    <!– The authentication component.                                      –>

    <!– Use the passthru authentication component to authenticate using    –>
    <!– user accounts on one or more Windows servers.                      –>
   
    <!– Properties that specify the server(s) to use for passthru          –>
    <!– authentication :-                                                  –>
    <!–   useLocalServer   use the local server for authentication         –>
    <!–   domain           use domain controllers from the specified domain–>
    <!–   servers          comma delimted list of server addresses or      –>
    <!–                    names                                           –>
      
    <bean id="authenticationComponentImpl" class="org.alfresco.repo.security.authentication.ntlm.NTLMAuthenticationComponentImpl">
        <property name="useLocalServer">
            <value>false</value>
        </property>
        <property name="servers">
            <value>useqdev</value>
        </property>
        <property name="personService">
            <ref bean="personService" />
        </property>
        <property name="nodeService">
            <ref bean="nodeService" />
        </property>
        <property name="guestAccess">
            <value>true</value>
        </property>
    </bean>
   
</beans>

andy
Champ on-the-rise
Champ on-the-rise
Hi

Pass through authentication is just that, it uses another back end for authentication.

It does not support adding users, removing them or changing password.

There are the normal windows APIs for that.

You can have passthrough and alfresco local authentication if you want using the chaining authentication. See the sample config file.

Regards

Andy

tcordova
Champ in-the-making
Champ in-the-making
The problem is that even though authentication should be handled by pass thru, unless the user exists in the Al Fresco repository they can't log in.  I get an "Unable to login - unknown username/password." error for those users that don't have an equivalent user in the repository.

andy
Champ on-the-rise
Champ on-the-rise
Hi

This sould not be the case.

The Person object in the repo should be created on demand for NTLM.
As people login the person should appear. If you have configured this out then the best approach is to add it back in.

Regards

Andy