私は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上のですか?
あなたは
を修正する私は、ソースコード中に「/ログイン」を検索し、私はそれを見つけることができませんでしたが、私は、ブラウザからそれを開いた場合、私は、ユーザー名とパスワードの入力を求めてページを得ました。 クライアントはデフォルトのJhipster's Angular 2を使用しています。だから、変更はまだありません! ブラウザはhttp://192/168.1.136/uaa/oauth/token経由でトークンを取得できますが、クロスオリジンの問題 –
によって、他のリクエストに進むことはできません。ちなみに、「/ login」はSpring Securityに組み込まれています –
WebSecurityを使用してアクティブ化した場合のみです。 ResourceServerSecurityを使用する場合、このパスは定義されていません(試してください)。CORSの問題は、ブラウザが別のホストからURLを解決しようとした場合にのみ発生します。 AFAIKこれを変更しなかった場合、デフォルトのJHipster生成コードではこれは起こりません。私たちの場合、JHipsterゲートウェイはzuulプロキシであることがわかっているので、角度アプリケーションはURL自体を作成します。また、認証コード付与の代わりにOauth 2.0パスワード許可を使用しているので、/ loginへのリダイレクトもありません –