2016-08-02 11 views
1

私はWSO2 IS 5.0.0を実行しており、時々ユーザーを削除できません。私はデータベースをチェックし、トークン、セッションなどはアクティブではありませんが、ユーザーを削除することはできません。管理コンソール(Webページ)で削除しようとすると、ユーザーページが更新され、削除しようとしているユーザーがまだ残っています。管理サービスを消費して削除アクションを実行しようとすると、すべてがうまくいくように見えますが、ユーザーはまだそこにいます。何が問題を引き起こす可能性がありますか?ユーザーを削除できませんWSO2 IS

[2016年8月2日11:07:16415] ERROR {orgの

これは私が管理コンソールからユーザーを削除しようとした後、ログに持ってスタックトレース(部分)です。 wso2.carbon.identity.oauth.listener.IdentityOathEventListener} - OAuthアプリケーション情報の取得中にエラーが発生しました org.wso2.carbon.identity.oauth2.IdentityOAuth2Exception:キー 'CON_APP_KEY'に重複するエントリ '[email protected]' at org.wso2.carbon.identity.oauth2.dao.TokenMgtDAO.revokeTokensByResourceOwner(TokenMgtDAO.java:931) at org.wso2.carbon.identity.oauth.listener.IdentityOathEventListener.doPreDeleteUs (UserRealmProxy。org.wso2.carbon.user.mgt.UserRealmProxy.deleteUser)で を返します。(UserRealmProxy。org.wso2.carbon.user.mgt.UserRealmProxy.deleteUser(UserRealmProxy。))で を返します。 Javaの:sun.reflect.NativeMethodAccessorImpl.invokeでsun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド) でorg.wso2.carbon.user.mgt.UserAdmin.deleteUser(UserAdmin.java:190) で752) (NativeMethodAccessorImpl .java:57)

+1

バックログにエラーがありますか?あなたはここで見つけることができるSPのためのIS 5.0をインストールすることができます:http://wso2.com/more-downloads/identity-server/ – ycr

+1

私はスタックトレースのいくつかの行を追加したので、有用かもしれません –

答えて

1

これはバグであると思われ、回避策として、そのユーザーのエントリをIDN_OAUTH2_ACCESS_TOKENテーブルから削除し、そのユーザーを削除してみてください。または、私が指摘したように、Identity Server用SPをインストールして試すことができます。または、最新のIS versionに移行することもできます。

1.Generate access token 
2. Wait until token expires(VALIDITY_PERIOD) 
3. Regenerate token 
4.Revoke it.(OAuthAdminService is used) 
+0

こんにちは返信してくれてありがとう。私がそこに気づいた限り、[email protected]にアクセストークンが発行され、random_user @ yahoo.com @ carbon.superのトークンがあります(最初は@ carbon.superのようなものはほとんどありません)。少数のものを削除しても、ユーザーは正常に削除されませんが、この特定のユーザーに属するすべてのアクセストークンは削除されます。だから私はこれらのトークンに関するものだと思う。おそらく私はもっと調査しなければならないだろう。ありがとう。 –

+0

こんにちはVasil、バグは重複しているエントリが追加されています。このバグはSPによって修正されていないようです。この問題を解決するには、最新のISバージョンに移行する必要があります。また、私はあなたがこの問題を再現するための答えにいくつかのステップを追加したので、簡単にデバッグできます:) – ycr

0

問題がSPで解決されていません。

手順は、この問題を再現する

の手順を再現します。私は5.1.0がこの問題を解決できることを願っています。カスタムjdbcユーザストアをお持ちの場合は、super.doDeleteUser()の前に、削除するユーザのレコードのIDN_OAUTH2_ACCESS_TOKENを掃除してdoDeleteUserを変更することができます。

@Override 
public void doDeleteUser(String userName) throws UserStoreException{ 
    clean_idn_oauth2_access_token(userName); 
    super.doDeleteUser(userName); 
} 

私はこれがあなたを助けてくれることを願っています。

関連する問題