Spring oAuth:结果大小不正确:使用jdbctokenstore时应为1,实际为2

Spring oAuth:结果大小不正确:使用jdbctokenstore时应为1,实际为2,spring,oauth,Spring,Oauth,在SpringOAuth中,我们面临一个复制访问令牌的问题,我们通过扩展DefaultTokenServices来提供同步令牌服务,但它没有得到解决。 我们使用Oauth版本:oauth2:1.0.0 Spring版本:3.2.5 参考图片:如何在后端存储数据 我们也遇到了同样的问题。我通过将表中的oauth\u access\u token中的authentication\u id设置为primary来解决这个问题 org.springframework.security.oauth2.pro

在SpringOAuth中,我们面临一个复制访问令牌的问题,我们通过扩展DefaultTokenServices来提供同步令牌服务,但它没有得到解决。 我们使用Oauth版本:oauth2:1.0.0 Spring版本:3.2.5

参考图片:如何在后端存储数据


我们也遇到了同样的问题。我通过将表中的
oauth\u access\u token
中的
authentication\u id
设置为primary来解决这个问题

org.springframework.security.oauth2.provider.token.DefaultTokenServices#refreshAccessToken中存在竞争条件,这导致表oauth_access_token中的条目具有重复的身份验证id(即使在2.0.5之后)。当两个线程同时访问数据库,但都获得旧刷新令牌(tokenStore.readauthenticationforrefreshttoken(refreshttoken))的身份验证时,就会发生这种情况


谢谢,目前我们将oauth版本从1.0.0升级到2.0.9,我需要澄清一下,这个问题在哪个版本中得到了解决。根据我的分析,dsyer在2.0.4版本中告诉我们,这个问题已经解决了(请点击链接:)。我的答案中提供了相关信息,即使在2.0.5版本之后,问题仍然存在。谢谢回溯,我认为这个问题在oauth2中没有解决,所有版本都有这个问题。我将版本从1.0.0升级到了2.0.4,但仍然出现了这个错误(在oauth\u access\u令牌中为身份验证\u id设置主键)。这个问题什么时候可以解决。但是@Dsyer是如何在2.0.4中修复此问题的?:(@Priya,你是否尝试添加主键并检查它。它没有解决你的问题。?是的,我添加了主键并检查,它没有解决我的问题。显示错误:ORA-00001:违反了唯一约束(OAUTH\u访问令牌\u PK);嵌套异常是java.sql.SQLException:ORA-00001:违反了唯一约束(SCOTT.OAUTH\u访问令牌\u PK)\n“
create table oauth_access_token (
  token_id VARCHAR(256),
  token LONGVARBINARY,
  authentication_id VARCHAR(256) PRIMARY KEY,
  user_name VARCHAR(256),
  client_id VARCHAR(256),
  authentication LONGVARBINARY,
  refresh_token VARCHAR(256)
);