データベース (MongoDB) からユーザー情報を取得し、この REST API を使用するクライアントにそのデータを返す RESTful API を Spring で開発しました。ただし、データが取得される前に、REST API はユーザーが管理者であるかどうかを確認します。管理者のみが GET 操作を実行してユーザー情報を取得できます
したがって、私の securityconfig.java クラスには次のものがあります。
http.authorizeRequests()
.antMatchers("/users/get/**", "/users/get/**").hasRole("ADMIN");
http.httpBasic();
これで、すべてのユーザーにそれぞれの役割が与えられ、呼び出したときにすべてが期待どおりに機能しています。curl adminusername:adminpassword@localhost:8080/users/get/AllUsers
adminusername
のユーザー名を持つユーザーは管理者であり、権限を持っているため、すべてのユーザーを取得できます。しかし、管理者以外のユーザー名に置き換えるadminusername
と、アクセス拒否エラーが発生します。
私の質問は、adminusername:adminpassword
@localhost:8080.... の前の部分は HTTP 要求のヘッダーですか?
私が尋ねる理由は、ログインできるクライアントを作成し、資格情報 (ユーザー名とパスワード) を検証し、ユーザー名とパスワードをセッション IDとして使用する必要があるためです。これにより、クライアントがいつでも HTTP 要求を行うことができます。ログイン後の呼び出しでは、ユーザー名とパスワードがヘッダーに追加され、REST API によって処理されます。
の hasRole()
http.authorizeRequests()
.antMatchers("/users/get/**", "/users/get/**").hasRole("ADMIN");
username:password
セキュリティ設定では@localhost:8080の前に依存しています.... これ@RequestHeader
はスプリングレスト API と同じですか?