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 表的目的是啥的主要内容,如果未能解决你的问题,请参考以下文章
如何绕过 Grails 异常处理以使用 Spring Oauth2?
Spring Boot + OAuth2 + Google Login - 如何实现注销
带有jdbc令牌存储的spring boot oauth2给出oauth_access_token关系不存在
任何用户的 jdbc-authentication 访问被拒绝 [OAUTH2]
如何使用 spring-social-security SocialAuthenticationFilter 指定 OAuth2 范围?