导读

本文主要描述,Spring Security OAuth2 Sso 应该如何配置,以及为什么这么配置。

开启sso之后就是启用authorization code 模式,OAuth2ProtectedResourceDetailsConfiguration会创一个AuthorizationCodeResourceDetails对象,蚩尤security.oauth2.client里的配置信息。

同时也是一个OAuth2Client ,EnableOAuth2Sso上注解了EnableOAuth2Client已经,不用再自己加了;

所以配置时,OAuth2 Client的配置 + sso的配置即可。

sso的app和authorization server不能是同一个域名

整个Authorization Code的授权认证的过程中,需要sso客户端在用户访问到没有权限的地址时,自动跳转到授权界面(user-authorizatoin-uri),获取到code之后,需要客户端自己交换AccessToken,所以还需要配置access-token-uri;

EnableOAuth2Sso上引入了ResourceServerTokenServicesConfiguration,所以 OAuth2 and Friends Resource Server 这篇文章的内容都管用。

security:
oauth2:
client:
clientId: oauth_showcase_authorization_code
clientSecret: appclientsecret
access-token-uri: http://localhost:8080/uaa/oauth/token #请求令牌的地址
user-authorization-uri: http://localhost:8080/uaa/oauth/authorize #请求认证的地址
use-current-uri: true
resource:
jwk:
key-set-uri: http://localhost:8080/uaa/token_keys #解析jwt令牌所需要密钥的地址

综上所述,sso app的配置包含两部分,ResourceServerTokenServices的配置和AuthorizationCodeResourceDetails对象的配置。