我正在尝试设置基于Spring引导的OAuth实施以保护我们的REST API。 这是我拥有的基础架构:
打算授予的类型:CLIENT_CREDETIALS
使用@EnableAuthorizationServer批注的授权服务器(单独的服务),它的ClientDetailsService由JDBC令牌存储支持。
使用@EnableResourceServer的资源服务器(与许多服务一样多的服务器)。
我已指定属性
security.oauth2.resource.token-info-uri = http://host:port/oauth/check_token。
问题出在这里。
仅当我将授权服务器使用的JDBC令牌存储与资源服务器共享时,验证才能成功。
但是我没有看到与每个其他api共享令牌存储的理由,以便它可以与授权服务器验证传入的令牌。
由于授权服务器在理解正确的情况下才为此目的公开一个休息端点/ check_token。
资源服务器无法验证令牌,它返回HttpClientError'401 null'。
在授权服务器端,收到一条日志消息,提示:找不到访问令牌。