2014-12-15 2 views
2

В следующем примере https://github.com/spring-cloud-samples/sso URL-адрес сервера авторизации/аутентификации предопределен в application.yml.DIscoverying Oauth Server через Eureka

Вопрос в том, может ли я иметь конфигурационный сервер и eureka в своей архитектуре, может ли служба SSO обнаружить authserver через Eureka, а не предопределять его в файле конфигурации?

Я попытался изменить конфигурационный файл, используя имя службы вместо localhost: 8080. Это не сработало.

oauth2: 
    client: 
     tokenUri: http://authserver/uaa/oauth/token 
     authorizationUri: http://authserver/uaa/oauth/authorize 
     clientId: acme 
     clientSecret: acmesecret 
    resource: 
     jwt: 
      keyUri: http://authserver/uaa/oauth/token_key 
      id: openid 
      serviceId: ${PREFIX:}resource 

В том же процессе мышления, вместо предоставления keyUri в JWT, можно заселить открытый ключ непосредственно через сервер конфигурации? Каким будет синтаксис?

Редактировать: После нескольких тестов выяснилось, что tokenUri и authorizationUri очень хорошо открываются. Я могу использовать имя службы вместо localhost: 8080. Вопрос только в том, что делать с keyUri.

ответ

4

Проблема решена. Согласно вышеизложенному, tokenUri и authorizationUri являются доступными для обнаружения. Вместо использования keyUri я использую keyValue. Таким образом, серверу SSO не нужно подключаться к серверу Oauth для ввода ключа. Затем я заполняю keyValue с помощью сервера конфигурации таким образом, как будет заполнено любое другое значение. Это делает мой сервер авторизации полностью доступным для обнаружения.

+0

Я был бы рад обновить образец и добавить некоторую документацию, если это действительно работает. Сначала я хотел бы получить квалификацию: я ожидал бы, что использование имени службы вместо имени хоста будет работать только в том случае, если вы используете «RestTemplate» из поддержки ленты Spring Cloud. Но функция SSO основана на использовании 'OAuth2RestTemplate', который построен Spring OAuth, поэтому я не понимаю, как это можно было бы узнать о балансировщике нагрузки. –

+0

Я только что испытал снова, и, похоже, все работает нормально. Теперь мой POM значительно отличается от моего в github. Будет ли изменение зависимостей достаточно, чтобы заставить SSO использовать RestTemplate, а не OauthRestTemplate? Если это так, это может быть причиной. – Klaus

+0

Я не представляю, как это поможет. Можете ли вы поделиться своим проектом? –

Смежные вопросы