2017-02-22 21 views
0

私はJhipsterを使用してMicroservicesを作成しました。セキュリティメカニズムは「UAA」です。問題はCross-originの問題により、ログインしてuaaサーバーと通信することができなくなります。JHipsterのマイクロサービスにおけるクロスオリジン

私はChromeブラウザから得た以下のメッセージ:

のXMLHttpRequestがhttp://192.168.1.136:9999/loginをロードすることはできません。いいえ 要求された リソースに 'Access-Control-Allow-Origin'ヘッダーが存在します。したがって、原点「http://192.168.1.136:8080」は許可されません。 ゲートウェイは、ポート8080とUAAにある

はMicroservicesアーキテクチャにクロスオリジンの問題を解決する方法

ポート9999上のですか?

あなたは

答えて

0

が最初に..助けてくださいでした... UAAは、/ログインパスを定義していない...ログインはゲートウェイでのOAuth 2.0のパスワードの付与を経由して行われます。

他の点は、あなたがUAAに直接アクセスしているということです。この情報をzuulから取得するのではなく、実際のホスト+ポートを指すように、これはNetflixの方法ではありません。 ...

はそう代わりhttp://192.168.1.136:9999/api/の... http://192.168.1.136:8080/uaa/api/を試してみてくださいzuulとして、あなたはあなたのUAAサービス(その「UAA」)の名前を知っている、とzuulは、「サービスのホスト/ serviceNameInUpperCase /パス」のようなパスを構築します

私は信じて、これはまたあなたのCORSの問題

+0

を修正する私は、ソースコード中に「/ログイン」を検索し、私はそれを見つけることができませんでしたが、私は、ブラウザからそれを開いた場合、私は、ユーザー名とパスワードの入力を求めてページを得ました。 クライアントはデフォルトのJhipster's Angular 2を使用しています。だから、変更はまだありません! ブラウザはhttp://192/168.1.136/uaa/oauth/token経由でトークンを取得できますが、クロスオリジンの問題 –

+0

によって、他のリクエストに進むことはできません。ちなみに、「/ login」はSpring Securityに組み込まれています –

+0

WebSecurityを使用してアクティブ化した場合のみです。 ResourceServerSecurityを使用する場合、このパスは定義されていません(試してください)。CORSの問題は、ブラウザが別のホストからURLを解決しようとした場合にのみ発生します。 AFAIKこれを変更しなかった場合、デフォルトのJHipster生成コードではこれは起こりません。私たちの場合、JHipsterゲートウェイはzuulプロキシであることがわかっているので、角度アプリケーションはURL自体を作成します。また、認証コード付与の代わりにOauth 2.0パスワード許可を使用しているので、/ loginへのリダイレクトもありません –

関連する問題