我是使用Spring boot,Spring OAuth2构建SSO服务器。在独立模式下,令牌存储在内存中,运行完美。但现在,我想在多台服务器上运行SSO服务器。我用JDBC更改了存储策略,然后在端口9999和9998上运行了两个实例。我不知道如何配置application.yml文件的客户端和资源服务器。我在客户端服务器上尝试了以下配置:
security:
basic:
enabled: false
oauth2:
client:
client-id: mud
client-secret: mud
access-token-uri: http://localhost:9999/oauth/token,http://localhost:9998/oauth/token
user-authorization-uri: http://localhost:9999/oauth/authorize,http://localhost:9998/oauth/authorize
scope: read, write
resource:
token-info-uri: http://localhost:9999/oauth/check_token,http://localhost:9998/oauth/check_token
无效......当我访问资源时,SSO服务器会重定向到“http://localhost:9999/oauth/token,http://localhost:9998/oauth/token”。
如何在春季配置多个SSO认证服务器?
答案 0 :(得分:0)
我想使用zuul来解决此问题,我在客户端服务器上尝试了以下配置:
server:
port: 8080
security:
basic:
enabled: false
oauth2:
client:
client-id: mud
client-secret: mud
access-token-uri: http://localhost:8080/proxy/oauth/token
user-authorization-uri: http://localhost:8080/proxy/oauth/authorize
scope: read, write
resource:
token-info-uri: http://localhost:8080/proxy/oauth/check_token
ignored: /proxy/oauth/token, /proxy/oauth/authorize, /proxy/oauth/check_token
zuul:
routes:
auth-server:
path: /proxy/**
serviceId: mud-microservice-security
mud-microservice-security:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RoundRobinRule
当我像127.0.0.1:8080/env一样访问此客户端时,它可以重定向到SSO服务器的登录页面。但是当登录成功时,它不会重定向到127.0.0.1:8080/env并再次访问127.0.0.1:8080/env,它将重定向到登录页面。
答案 1 :(得分:0)
我认为您应该为您的oauth实例配置会话共享