AFAIK spring-security-oauth2 仅支持获取开箱即用的共享公共数据存储(数据库或内存)的授权服务器/资源服务器的用户详细信息(包括角色)。
如果您确实有一个公共数据存储,则可以使用 InMemoryClientDetailsService 或 JdbcClientDetailsService。
但是,如果在您的设置中没有公共数据存储,那么您自己扩展它应该不会太难。此任务的关键接口是ClientDetailsService和ResourceServerTokenServices。
ResourceServerTokenServices 实现返回包含角色的 OAuth2Authentication。因此,您可以从此处的授权服务器调用 tokeninfo 端点。实现 ClientDetailsService 并使用它会更优雅。在这里,您还需要调用 tokeninfo 端点。
在 XML 配置中,您可以在参数 token-services-ref 和 auth-details-source-ref 中设置要在 oauth:resource-server 标记中使用的 bean。有关 Java 配置的详细信息,请参见http://projects.spring.io/spring-security-oauth/docs/oauth2.html页
(我的信息是指 spring-security-oauth2 的 2.0.8 版本)