0

Zuul Edge Server の背後にある多数のサービスがあります。Zuul Edge Server は認証も実行します。セッションは、Spring Session を使用してすべてのサービスで共有されます。リクエストを認証して、同じフロー内のサービスにルーティングできるようにしたいと考えています。私は、ゲートウェイ サーバーがリクエストを認証してルーティングできるDave Syer のチュートリアルを見ました。

そのプロジェクトでは、次のコマンドが機能します。

  • curl -u admin:admin http://localhost:8080/user
  • curl -c cookie.txt -u admin:admin http://localhost:8080/user && curl -b cookie.txt http://localhost:8080/admin/user

これもうまくいくと思っていましたが、うまくいきません:

  • curl -u admin:admin http://localhost:8080/admin/user

ゲートウェイ サーバーが認証し、redis セッションを作成し、redis セッションから認証を選択した管理サービスにリクエストをルーティングすることを期待していました。要求は管理サービスにルーティングされていますが、基本認証も試みて失敗します。

これは、管理サービスのログに表示されるものです。

o.s.s.w.a.www.BasicAuthenticationFilter  : Basic Authentication Authorization header found for user 'admin'
o.s.s.authentication.ProviderManager     : Authentication attempt using org.springframework.security.authentication.dao.DaoAuthenticationProvider
o.s.s.a.dao.DaoAuthenticationProvider    : User 'admin' not found
o.s.s.w.a.www.BasicAuthenticationFilter  : Authentication request for failed: org.springframework.security.authentication.BadCredentialsException: Bad credentials

HTTP 401 Unauthorized 応答を受け取ります。

また、管理サービスで HTTP 基本認証を無効にしようとしましたが、HTTP 403 Forbidden 応答が返されます。

これを達成する方法はありますか?

アップデート

セッションを保存するためにSpring Sessionが実装されているため、これは機能しないと思います。github での質問への回答を待っています。

4

0 に答える 0