将 additional_information of oauth_client_details 的数据添加到 JWT
Add data from additional_information of oauth_client_details to JWT
我正在通过客户注册服务填写 oauth_client_details
table。我在 additional_information
字段中以 JSON 格式放置一些数据。
insert into oauth_client_details(client_id, client_secret, ..., additional_information) values
('app-client-id', 'app-client-secret', ..., '{"special-id":"abc-123"}');
我想将该数据存储在 JWT 中,但找不到访问它的方法。我看到它在 JdbcClientDetailsService.loadClientByClientId
和相关的 RowMapper
中被加载和解析但是当我的令牌增强器被调用时数据不存在:
static class MyTokenEnhancer implements TokenEnhancer {
@Override
public OAuth2AccessToken enhance(OAuth2AccessToken accessToken, OAuth2Authentication authentication) {
// accessToken.additionalInformation is an empty map here!
return accessToken;
}
}
流程中还有其他点可以让我访问 special-id
的值并将其注入 JWT 吗?
我只能通过在oauth_client_details
中添加一个自定义字段来解决这个问题,在TokenEnhancer.enhance()
中再次加载详细记录(Spring这次加载了6次记录,所以另一个无关紧要),然后像往常一样将我的自定义字段中的值添加到 JWT。
我本可以使用 additional_information 字段来存储我的自定义数据,但是我需要解析 JSON。我认为这样做没有意义。
我正在通过客户注册服务填写 oauth_client_details
table。我在 additional_information
字段中以 JSON 格式放置一些数据。
insert into oauth_client_details(client_id, client_secret, ..., additional_information) values
('app-client-id', 'app-client-secret', ..., '{"special-id":"abc-123"}');
我想将该数据存储在 JWT 中,但找不到访问它的方法。我看到它在 JdbcClientDetailsService.loadClientByClientId
和相关的 RowMapper
中被加载和解析但是当我的令牌增强器被调用时数据不存在:
static class MyTokenEnhancer implements TokenEnhancer {
@Override
public OAuth2AccessToken enhance(OAuth2AccessToken accessToken, OAuth2Authentication authentication) {
// accessToken.additionalInformation is an empty map here!
return accessToken;
}
}
流程中还有其他点可以让我访问 special-id
的值并将其注入 JWT 吗?
我只能通过在oauth_client_details
中添加一个自定义字段来解决这个问题,在TokenEnhancer.enhance()
中再次加载详细记录(Spring这次加载了6次记录,所以另一个无关紧要),然后像往常一样将我的自定义字段中的值添加到 JWT。
我本可以使用 additional_information 字段来存储我的自定义数据,但是我需要解析 JSON。我认为这样做没有意义。