无法删除WSO2为的用户

无法删除WSO2为的用户,wso2,wso2is,wso2carbon,Wso2,Wso2is,Wso2carbon,我一直在运行WSO2 IS 5.0.0,有时我无法删除用户。我签入数据库,没有活动令牌、会话等,但无法删除用户。如果我试图通过管理控制台(网页)删除它们,那么用户页面只是刷新,我试图删除的用户仍然存在。如果我尝试使用管理服务并执行删除操作,一切似乎都很好,但用户仍然在那里。什么可能导致问题 这是我在尝试从管理控制台删除用户后在日志中的堆栈跟踪(部分): [2016-08-02 11:07:16415]错误{org.wso2.carbon.identity.oauth.listener.Ident

我一直在运行WSO2 IS 5.0.0,有时我无法删除用户。我签入数据库,没有活动令牌、会话等,但无法删除用户。如果我试图通过管理控制台(网页)删除它们,那么用户页面只是刷新,我试图删除的用户仍然存在。如果我尝试使用管理服务并执行删除操作,一切似乎都很好,但用户仍然在那里。什么可能导致问题

这是我在尝试从管理控制台删除用户后在日志中的堆栈跟踪(部分):

[2016-08-02 11:07:16415]错误{org.wso2.carbon.identity.oauth.listener.IdentityOathEventListener}-检索oauth应用程序信息时出错 org.wso2.carbon.identity.oauth2.identityoauth2异常:重复条目“PLCQPGJ8_yYZ9lOb36xFg3gmdVwa”-randomUser@carbon.super-AP'用于钥匙'CON_APP_钥匙' 位于org.wso2.carbon.identity.oauth2.dao.TokenMgtDAO.revokeTokensByResourceOwner(TokenMgtDAO.java:931) 位于org.wso2.carbon.identity.oauth.listener.IdentityOathEventListener.dopredeleteeuser(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) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)中


这似乎是一个Bug,作为一种解决方法,您可以从IDN_OAUTH2_ACCESS_令牌表中删除该用户的条目,然后尝试删除该用户。或者,正如我提到的,您可以安装Identity Server的SP并重试。或者,您可以迁移到最新的IS

复制此问题的步骤

复制步骤:

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

问题未在
SP
上解决。我希望
5.1.0
能解决这个问题。如果您有一个自定义的
jdbc
用户存储,您可以在调用
super.doDeleteUser()
之前修改
doDeleteUser
清除要删除的用户记录的
IDN\u OAUTH2\u ACCESS\u令牌


我希望这能对您有所帮助。

您是否发现积压工作中有任何错误?可能您可以尝试安装IS 5.0的SP,可以在这里找到:我添加了几行堆栈跟踪,因此可能会有帮助,谢谢您的回复。据我所知,有一个随机发放的访问令牌_user@yahoo.com还有一个随机的标记_user@yahoo.com@carbon.super(没有@carbon.super,很少有像第一个一样的)。删除这几个令牌不会导致成功删除用户,但删除属于此特定用户的所有访问令牌会导致成功删除用户。所以我想是关于这些代币的。也许我应该做更多的调查。谢谢。嗨,瓦西里,错误是重复的条目正在被添加。SP似乎也没有修复此错误。您必须迁移到最新的IS版本才能修复此问题。另外,我在答案中添加了一些步骤,让您重现这个问题,因此调试起来很容易:)
@Override
public void doDeleteUser(String userName) throws UserStoreException{ 
  clean_idn_oauth2_access_token(userName);
  super.doDeleteUser(userName);
}