我已经运行了WSO2 IS 5.0.0,并且我不时删除用户。我检查数据库,我没有活动令牌,会话等,但我无法删除用户。如果我尝试通过管理控制台(网页)删除它们,那么用户页面只是刷新,我试图删除的用户仍然存在。如果我尝试使用管理服务并执行删除操作,一切似乎都很好,但用户仍然在那里。可能导致问题的原因是什么?
这是我尝试从管理控制台删除用户后在日志中的堆栈跟踪(部分):
[2016-08-02 11:07:16,415] ERROR {org.wso2.carbon.identity.oauth.listener.IdentityOathEventListener} - 检索OAuth应用程序信息时出错 org.wso2.carbon.identity.oauth2.IdentityOAuth2Exception:键'CON_APP_KEY'的重复条目'PLCQPGJ8_yYZ9lOb36xFg3gmdVwa-randomUser@carbon.super-AP' at org.wso2.carbon.identity.oauth2.dao.TokenMgtDAO.revokeTokensByResourceOwner(TokenMgtDAO.java:931) at org.wso2.carbon.identity.oauth.listener.IdentityOathEventListener.doPreDeleteUser(IdentityOathEventListener.java:92) 在org.wso2.carbon.user.core.common.AbstractUserStoreManager.deleteUser(AbstractUserStoreManager.java:865) 在org.wso2.carbon.user.mgt.UserRealmProxy.deleteUser(UserRealmProxy.java:752) 在org.wso2.carbon.user.mgt.UserAdmin.deleteUser(UserAdmin.java:190) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
答案 0 :(得分: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)
答案 1 :(得分: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);
}
我希望这可以帮到你。