2016-08-02 63 views
1

我已經運行WSO2 IS 5.0.0,並且不時刪除用戶。我檢查數據庫,我沒有活動的令牌,會話等,但我無法刪除用戶。如果我試圖通過管理控制檯(網頁)刪除它們,那麼用戶頁面只是刷新,我想刪除的用戶仍然在那裏。如果我嘗試使用管理服務並執行刪除操作,一切似乎都很好,但用戶仍然在那裏。什麼可能導致問題?無法刪除用戶WSO2 IS

這是堆棧跟蹤(局部的),我在日誌試圖從管理控制檯刪除用戶後:

[2016年8月2日11:07:16415] ERROR {有機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呃(IdentityOathEventListener.java:92) at org.wso2.carbon.user.core.common.AbstractUserStoreManager.deleteUser(AbstractUserStoreManager.java:865) at org.wso2.carbon.user.mgt.UserRealmProxy.deleteUser(UserRealmProxy。的java:752) 在org.wso2.carbon.user.mgt.UserAdmin.deleteUser(UserAdmin.java:190) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl .java:57)

+1

您是否在積壓中看到任何錯誤?可能是你可以嘗試安裝可用於IS 5.0的SP,可以在這裏找到:http://wso2.com/more-downloads/identity-server/ – ycr

+1

我添加了幾行堆棧跟蹤,所以它可能會有所幫助 –

回答

1

這似乎是一個Bug,並且作爲解決方法,您可以從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,錯誤是重複的條目正在被添加。看來這個bug也不是由SP修復的。你將不得不遷移到最新的IS版本來解決這個問題。此外,我在答案中添加了一些步驟來重現此問題,因此它將很容易調試:) – ycr

0

的問題沒有得到解決SP。我希望5.1.0可以解決這個問題。如果您有一個自定義的jdbc用戶商店,您可以修改您的doDeleteUser清除您要刪除的用戶的記錄的IDN_OAUTH2_ACCESS_TOKEN,然後致電super.doDeleteUser()

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

我希望這可以幫助你。