Hi all,

Related not being able to login without userstore name,
with further debugging, identified that  below exception is thrown at [1]

> java.security.PrivilegedActionException:
> org.wso2.carbon.user.core.UserStoreException: Error when handling event :
> PRE_AUTHENTICATION
>     at java.security.AccessController.doPrivileged(Native Method)
>     at
> org.wso2.carbon.user.core.common.AbstractUserStoreManager.authenticate(AbstractUserStoreManager.java:463)
>     at
> org.wso2.carbon.user.core.common.AbstractUserStoreManager$3.run(AbstractUserStoreManager.java:451)
>     at
> org.wso2.carbon.user.core.common.AbstractUserStoreManager$3.run(AbstractUserStoreManager.java:442)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at
> org.wso2.carbon.user.core.common.AbstractUserStoreManager.authenticate(AbstractUserStoreManager.java:442)
>     at
> org.wso2.carbon.identity.application.authenticator.basicauth.BasicAuthenticator.processAuthenticationResponse(BasicAuthenticator.java:269)
>     at
> org.wso2.carbon.identity.application.authentication.framework.AbstractApplicationAuthenticator.process(AbstractApplicationAuthenticator.java:69)
>     at
> org.wso2.carbon.identity.application.authenticator.basicauth.BasicAuthenticator.process(BasicAuthenticator.java:82)
>     at
> org.wso2.carbon.identity.application.authentication.framework.handler.step.impl.DefaultStepHandler.doAuthentication(DefaultStepHandler.java:465)
>     at
> org.wso2.carbon.identity.application.authentication.framework.handler.step.impl.DefaultStepHandler.handleResponse(DefaultStepHandler.java:439)
>     at
> org.wso2.carbon.identity.application.authentication.framework.handler.step.impl.DefaultStepHandler.handle(DefaultStepHandler.java:143)
>     at
> org.wso2.carbon.identity.application.authentication.framework.handler.sequence.impl.DefaultStepBasedSequenceHandler.handle(DefaultStepBasedSequenceHandler.java:173)
>     at
> org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultAuthenticationRequestHandler.handle(DefaultAuthenticationRequestHandler.java:122)
>     at
> org.wso2.carbon.identity.application.authentication.framework.handler.request.impl.DefaultRequestCoordinator.handle(DefaultRequestCoordinator.java:138)
>     at
> org.wso2.carbon.identity.application.authentication.framework.CommonAuthenticationHandler.doPost(CommonAuthenticationHandler.java:46)
>     at
> org.wso2.carbon.identity.application.authentication.framework.CommonAuthenticationHandler.doGet(CommonAuthenticationHandler.java:37)
>     at
> org.wso2.carbon.identity.sso.saml.servlet.SAMLSSOProviderServlet.sendRequestToFramework(SAMLSSOProviderServlet.java:995)
>     at
> org.wso2.carbon.identity.sso.saml.servlet.SAMLSSOProviderServlet.handleRequest(SAMLSSOProviderServlet.java:159)
>     at
> org.wso2.carbon.identity.sso.saml.servlet.SAMLSSOProviderServlet.doPost(SAMLSSOProviderServlet.java:107)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
>     at
> org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:37)
>     at
> org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
>     at
> org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
>     at
> org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:60)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
>     at
> org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68)
>     at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
>     at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>     at
> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
>     at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>     at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>     at
> org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:120)
>     at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>     at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>     at
> org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61)
>     at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>     at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>     at
> org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:120)
>     at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
>     at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
>     at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
>     at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
>     at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
>     at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
>     at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
>     at
> org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)
>     at
> org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
>     at
> org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57)
>     at
> org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
>     at
> org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)
>     at
> org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159)
>     at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
>     at
> org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
>     at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
>     at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)
>     at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1082)
>     at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:623)
>     at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1756)
>     at
> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1715)
>     at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>     at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>     at
> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
>     at java.lang.Thread.run(Thread.java:745)
> Caused by: org.wso2.carbon.user.core.UserStoreException: Error when
> handling event : PRE_AUTHENTICATION
>     at
> org.wso2.carbon.identity.governance.listener.IdentityMgtEventListener.handleEvent(IdentityMgtEventListener.java:612)
>     at
> org.wso2.carbon.identity.governance.listener.IdentityMgtEventListener.handleEvent(IdentityMgtEventListener.java:548)
>     at
> org.wso2.carbon.identity.governance.listener.IdentityMgtEventListener.doPreAuthenticate(IdentityMgtEventListener.java:84)
>     at
> org.wso2.carbon.user.core.common.AbstractUserStoreManager.authenticateInternal(AbstractUserStoreManager.java:505)
>     at
> org.wso2.carbon.user.core.common.AbstractUserStoreManager.access$100(AbstractUserStoreManager.java:71)
>     at
> org.wso2.carbon.user.core.common.AbstractUserStoreManager$4.run(AbstractUserStoreManager.java:466)
>     at
> org.wso2.carbon.user.core.common.AbstractUserStoreManager$4.run(AbstractUserStoreManager.java:463)
>     ... 65 more
> Caused by: org.wso2.carbon.identity.event.IdentityEventException: Error
> while retrieving account lock claim value
>     at
> org.wso2.carbon.identity.recovery.handler.AccountConfirmationValidationHandler.handleEvent(AccountConfirmationValidationHandler.java:80)
>     at
> org.wso2.carbon.identity.event.services.IdentityEventServiceImpl.handleEvent(IdentityEventServiceImpl.java:56)
>     at
> org.wso2.carbon.identity.governance.listener.IdentityMgtEventListener.handleEvent(IdentityMgtEventListener.java:599)
>     ... 71 more
> Caused by: org.wso2.carbon.user.core.UserStoreException: UserNotFound:
> User pushdoes not exist in: PRIMARY
>     at
> org.wso2.carbon.user.core.common.AbstractUserStoreManager.callSecure(AbstractUserStoreManager.java:168)
>     at
> org.wso2.carbon.user.core.common.AbstractUserStoreManager.getUserClaimValue(AbstractUserStoreManager.java:580)
>     at
> org.wso2.carbon.identity.recovery.handler.AccountConfirmationValidationHandler.handleEvent(AccountConfirmationValidationHandler.java:78)
>     ... 73 more
> Caused by: java.security.PrivilegedActionException:
> java.lang.reflect.InvocationTargetException
>     at java.security.AccessController.doPrivileged(Native Method)
>     at
> org.wso2.carbon.user.core.common.AbstractUserStoreManager.callSecure(AbstractUserStoreManager.java:158)
>     ... 75 more
> Caused by: java.lang.reflect.InvocationTargetException
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>     at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>     at java.lang.reflect.Method.invoke(Method.java:606)
>     at
> org.wso2.carbon.user.core.common.AbstractUserStoreManager$2.run(AbstractUserStoreManager.java:161)
>     ... 77 more
> Caused by: org.wso2.carbon.user.core.UserStoreException: UserNotFound:
> User pushdoes not exist in: PRIMARY
>     at
> org.wso2.carbon.user.core.common.AbstractUserStoreManager.getUserClaimValue(AbstractUserStoreManager.java:594)
>     ... 82 more
>


   - AccountConfirmationValidationHandler[2] tries to verify whether the
   user-account is locked when handling PRE_AUTHENTICATION.When trying to
   retrieve account lock claim an exception is thrown and it terminates the
   authentication flow. User is only searched within PRIMARY user store.


   - When AccountConfirmationValidationHandler is disabled I am able to
   login to dashboard without userstore domain name.


   - The other concern is checking for account lock claim of a particular
   user before authenticate will block users with same name in secondary users
   stores getting authenticated

What is the best way to handle this scenarios?
[1]
https://github.com/wso2/carbon-kernel/blob/release-4.4.9/core/org.wso2.carbon.user.core/src/main/java/org/wso2/carbon/user/core/common/AbstractUserStoreManager.java#L476
[2]
https://github.com/wso2-extensions/identity-governance/blob/master/components/org.wso2.carbon.identity.recovery/src/main/java/org/wso2/carbon/identity/recovery/handler/AccountConfirmationValidationHandler.java#L72

Thanks!
-Ayesha


On Mon, Oct 31, 2016 at 1:55 PM, Ayesha Dissanayaka <aye...@wso2.com> wrote:

>
> On Fri, Oct 28, 2016 at 6:02 PM, Darshana Gunawardana <darsh...@wso2.com>
> wrote:
>
>>
>> This should be possible. Are you getting any errors in UI or in console?
>> If not can you enable debug logs in user.core and see any error getting
>> printed?
>>
>
> No errors in the backend.
>
> In the UI it shows below error message.
>
> "Login failed! Please recheck the username and password and try again."
>
> When I try "TEST/ayesha" as username, I can login.
>
> I have enabled debug logs for user core and below are the logs in two
> cases.
>
> *without userstore name, username only "ayesha"*
>
>> [2016-10-31 13:35:22,837] DEBUG 
>> {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager}
>> -  Searching for user ayesha003
>> [2016-10-31 13:35:22,844] DEBUG 
>> {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager}
>> -  Searching for user with SearchFilter: 
>> (&(objectClass=person)(uid=ayesha003))
>> in SearchBase:
>> [2016-10-31 13:35:22,855] DEBUG 
>> {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager}
>> -  Name in space for ayesha003 is null
>> [2016-10-31 13:35:22,856] DEBUG 
>> {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager}
>> -  User: ayesha003 exist: false
>> [2016-10-31 13:35:22,863] DEBUG 
>> {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager}
>> -  Searching for user ayesha003
>> [2016-10-31 13:35:22,866] DEBUG 
>> {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager}
>> -  Searching for user with SearchFilter: 
>> (&(objectClass=person)(uid=ayesha003))
>> in SearchBase:
>> [2016-10-31 13:35:22,870] DEBUG 
>> {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager}
>> -  Name in space for ayesha003 is null
>> [2016-10-31 13:35:22,870] DEBUG 
>> {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager}
>> -  User: ayesha003 exist: false
>>
>
>
> *with userstore name "TEST2/ayesha"*
>>
>> *[2016-10-31 13:36:10,657] DEBUG
>> {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} -  Searching
>> for user ayesha003*
>> *[2016-10-31 13:36:10,663] DEBUG
>> {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} -  Searching
>> for user with SearchFilter: (&(objectClass=person)(uid=ayesha003)) in
>> SearchBase: *
>> *[2016-10-31 13:36:10,666] DEBUG
>> {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} -  *Name
>> in space for ayesha003 is uid=ayesha003,ou=Users,dc=wso2,dc=org
>> *[2016-10-31 13:36:10,666] DEBUG
>> {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} -  User:
>> ayesha003 exist: true*
>> *[2016-10-31 13:36:10,666] DEBUG
>> {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} -  Searching
>> for user ayesha003*
>> *[2016-10-31 13:36:10,667] DEBUG
>> {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} -  value
>> after escaping special characters in ayesha003 : ayesha003*
>> *[2016-10-31 13:36:10,667] DEBUG
>> {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} -  User:
>> ayesha003 exist: true*
>> *[2016-10-31 13:36:10,684] DEBUG
>> {org.wso2.carbon.user.core.ldap.ReadOnlyLDAPUserStoreManager} -  Searching
>> for user with SearchFilter: (&(objectClass=person)(uid=ayesha003)) in
>> SearchBase:*
>
>
> Created https://wso2.org/jira/browse/IDENTITY-5291 to track this.
>
> Thanks!
> -Ayesha
>
> --
> *Ayesha Dissanayaka*
> Software Engineer,
> WSO2, Inc : http://wso2.com
> <http://www.google.com/url?q=http%3A%2F%2Fwso2.com&sa=D&sntz=1&usg=AFQjCNEZvyc0uMD1HhBaEGCBxs6e9fBObg>
> 20, Palmgrove Avenue, Colombo 3
> E-Mail: aye...@wso2.com <ayshsa...@gmail.com>
>



-- 
*Ayesha Dissanayaka*
Software Engineer,
WSO2, Inc : http://wso2.com
<http://www.google.com/url?q=http%3A%2F%2Fwso2.com&sa=D&sntz=1&usg=AFQjCNEZvyc0uMD1HhBaEGCBxs6e9fBObg>
20, Palmgrove Avenue, Colombo 3
E-Mail: aye...@wso2.com <ayshsa...@gmail.com>
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to