0

AbstractUserStoreManager クラスを拡張し、カスタム認証プロセスを実行するために doAuthenticate() メソッドにコードをオーバーライドしました。資格情報を使用してログインすると、doAuthenticate メソッドは正しく true を返します。

ただし、wso2 アイデンティティ サーバーのユーザー管理コンソールは、依然としてログイン失敗メッセージをスローしています。(つまり、CarbonAuthenticationUtil.onFailedAdminLogin メソッドが呼び出されています)。

このユーザーが管理者ロールにあることを示すための作業を行わない場合、問題になる可能性があります。

ただし、何が起動しているかを確認するために、各メソッドにログを記録しました。しかし、doAuthenticate() メソッドが起動された後にロールが起動されることを確認するメソッドは見当たりません。

誰かが私を正しい方向に向けることができますか?

DEBUG verbosity で実行されているログは次のとおりです。


[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)
4

1 に答える 1

1

IS 4.10 のドキュメントが出たばかりです (先週だと思います)。外部 LDAP および JDBC ストアの構成に関するセクションを読んだところ、レルム構成 (user-mgt.xml) で管理者にユーザー名を使用すると書かれていました。

                <AdminUser>
                 <UserName>MYADMINUSER</UserName>

このユーザー名に任意の (バックドア) パスワードを追加すると、管理者ユーザーは有効なパスワードで認証できます。すなわち

doAuthenticate が true を返す場合、彼は認証します。false の場合、期待どおり拒否されます。

少しばかげているように見えますが、うまくいくのを見てうれしいです。

于 2013-03-19T17:31:59.153 に答える