Spring Oauth2 JDBC 实现中 OAUTH_CLIENT_TOKEN 表的目的是啥

Posted

技术标签:

【中文标题】Spring Oauth2 JDBC 实现中 OAUTH_CLIENT_TOKEN 表的目的是啥【英文标题】:What is the purpose of the OAUTH_CLIENT_TOKEN table in a Spring Oauth2 JDBC implementationSpring Oauth2 JDBC 实现中 OAUTH_CLIENT_TOKEN 表的目的是什么 【发布时间】:2021-12-26 00:56:05 【问题描述】:

您知道 OAUTH_CLIENT_TOKEN 表在 Spring Oauth2 服务器的 JDBC 实现中的用途是什么吗?

似乎永远不会填充该表,但是当客户端使用“客户端凭据”获取令牌时,其令牌会保存到 OAUTH_ACCESS_TOKEN 中,而不是使用空用户名保存到 OAUTH_CLIENT_TOKEN 中。

这里的表架构实际上非常相似。

drop table if exists oauth_client_token;
create table oauth_client_token
(
    token_id          VARCHAR(255),
    token             LONGBLOB,
    authentication_id VARCHAR(255),
    user_name         VARCHAR(255),
    client_id         VARCHAR(255)
);

drop table if exists oauth_access_token;
create table `oauth_access_token`
(
    token_id          VARCHAR(255),
    token             LONGBLOB,
    authentication_id VARCHAR(255) PRIMARY KEY,
    user_name         VARCHAR(255),
    client_id         VARCHAR(255),
    authentication    LONGBLOB,
    refresh_token     VARCHAR(255)
);

同样配置到 AuthorizationServerConfigurerAdapter

@Bean
public JdbcClientTokenServices clientTokenServices() 
    return new JdbcClientTokenServices(this.dataSource);


@Bean
public TokenStore tokenStore() 
    return new JdbcTokenStore(this.dataSource);

【问题讨论】:

您似乎指的是旧版spring-security-oauth project 中的一个表。这个项目是deprecated。请迁移到支持 OAuth 2.0 客户端支持的 Spring Security 版本。您可以按照官方迁移指南here。 @EleftheriaStein-Kousathana 谢谢我不知道它已被弃用...我发现另一个关于新授权服务器的主题here 【参考方案1】:

那张桌子似乎不再使用了。旧版 Spring oauth2 授权服务器将于 5 月 22 日结束。

【讨论】:

以上是关于Spring Oauth2 JDBC 实现中 OAUTH_CLIENT_TOKEN 表的目的是啥的主要内容,如果未能解决你的问题,请参考以下文章