我扩展了 AbstractUserStoreManager 类,并在 doAuthenticate() 方法中覆盖了代码来执行自定义身份验证过程。当我使用我的凭据登录时,doAuthenticate 方法正确返回 true。
但是,wso2 身份服务器用户管理控制台仍然抛出登录失败消息。(即正在调用 CarbonAuthenticationUtil.onFailedAdminLogin 方法)。
可能是一个问题,如果没有做工作来表明这个用户是管理员角色。
但是,我在每种方法中都添加了一些日志记录,以查看触发了什么。然而,在触发 doAuthenticate() 方法后,我没有看到任何检查角色被触发的方法。
谁能指出我正确的方向?
以下是以 DEBUG 详细程度运行的日志:
[2013-03-15 15:17:55,669] DEBUG - getRequestAddressingRequirementParameterValue: got value from MessageContext [MessageContext: logID=cd1ae48ec92e8ccb25cd294c255c695acb01113f991655f8], value: 'null' {org.apache.axis2.addressing.AddressingHelper}
[2013-03-15 15:17:55,669] DEBUG - getRequestAddressingRequirementParameterValue: value: 'null' {org.apache.axis2.addressing.AddressingHelper}
[2013-03-15 15:17:55,669] DEBUG - getRequestAddressingRequirementParameterValue: value: 'null' {org.apache.axis2.addressing.AddressingHelper}
[2013-03-15 15:17:55,670] DEBUG - [MessageContext: logID=dd1ae48ec92e8ccb25cd294c255c695acb01113f991655f8] isReplyRedirected: ReplyTo is null. Returning false {org.apache.axis2.addressing.AddressingHelper}
[2013-03-15 15:17:55,670] DEBUG - [MessageContext: logID=dd1ae48ec92e8ccb25cd294c255c695acb01113f991655f8] isReplyRedirected: ReplyTo is null. Returning false {org.apache.axis2.addressing.AddressingHelper}
[2013-03-15 15:17:55,670] INFO - isAuthenticated?: true {com.dg.rio.proxy.user.store.DGProxyReadOnlyUserStoreManager}
[2013-03-15 15:17:55,670] DEBUG - Post authenticator is called in IdentityMgtEventListener {org.wso2.carbon.identity.mgt.IdentityMgtEventListener}
[2013-03-15 15:17:55,670] DEBUG - Post authenticator is called in IdentityMgtEventListener {org.wso2.carbon.identity.mgt.IdentityMgtEventListener}
[2013-03-15 15:17:55,671] DEBUG - AUTHORIZATION_CACHE Memory cache hit, but element expired {net.sf.ehcache.Cache}
[2013-03-15 15:17:55,672] ERROR - System error while Authenticating/Authorizing User : null {org.wso2.carbon.core.services.authentication.AuthenticationAdmin}
java.lang.NullPointerException
at org.wso2.carbon.user.core.authorization.JDBCAuthorizationManager.isUserAuthorized(JDBCAuthorizationManager.java:134)
at org.wso2.carbon.core.services.authentication.AuthenticationAdmin.login(AuthenticationAdmin.java:107)