无法删除用户WSO2 IS

时间:2016-08-02 08:33:03

标签: wso2 wso2is wso2carbon

我已经运行了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)

2 个答案:

答案 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);
}

我希望这可以帮到你。