1

AngularJS と OAuth を使用して作成するための Spring チュートリアルを使用してシングル ページ アプリケーションを作成しました

これは、SPA アプリケーションの application.yml ファイルです。

security:
  user:
    password: none
  oauth2:
    client:
      accessTokenUri: localhost:7777/uaa/oauth/token
      userAuthorizationUri: localhost:7777/uaa/oauth/authorize
      clientId: acme
      clientSecret: acmesecret
    resource:
      user-info-uri: localhost:7777/uaa/user


zuul:
  routes:
    resource:
      path: /resource/**
      url: localhost:9000/resource
    user:
      path: /user/**
      url: localhost:7777/uaa/user

eureka:
  client:
    serviceUrl:
      defaultZone: ${vcap.services.eureka-service.credentials.uri:127.0.0.1:8761}/eureka/

---
spring:
  profiles: cloud
eureka:
  instance:
    hostname: ${APPLICATION_DOMAIN}
    nonSecurePort: 80

URL を指定する必要がないように、zuul ルートとユーザー情報 uri を変更する方法を知りたいのですが、これはすべてサービス ID を使用して実行できます。ここで eureka を使用するためのチュートリアルを見ました。

https://spring.io/blog/2015/01/20/microservice-registration-and-discovery-with-spring-cloud-and-netflix-s-eureka

しかし、基本的な eureka サーバーはすでにすべてのサービスを登録しているように見えるため、コードにすべての Java を追加せずに目標を達成する方法がよくわかりません。

4

2 に答える 2

3

eureka サービス ID の使用に問題があり、userInfoUri は UnknownHost Exception を常にスローしていました。

security.oauth2.resource.service-id={Service ID as at eureka server registered}
security.oauth2.resource.userInfoUri= http://${security.oauth2.resource.service-id}/user/me
security.oauth2.resource.loadBalanced=true
security.oauth2.resource.prefer-token-info=false

サービス ID を使用する場合はポート番号は必要ありませんが、ip またはホストを使用する場合は必要です

于 2018-02-12T11:51:57.867 に答える
2

あなたの質問が正しいことを理解していれば、次のパターンで構成ファイルを使用できます。

zuul:
  routes:
    <service_id>:
      path: /path/**

例 (oauth-service が として登録されている場合auth):

zuul:
  routes:
    auth:
      path: /user/**

Zuul は Eureka を活用して、サービスのエンドポイントを見つけます。それに加えて、クライアント側の負荷分散を提供します。

于 2016-01-26T13:16:46.653 に答える