0

春のセキュリティについて質問があります。それは次のことに関するものです。

<authentication-manager>
    <authentication-provider>
      <user-service>

ユーザーの名前が、他のユーザーの他の操作と同じではないいくつかの操作を行うことができる必要があります。つまり、

User Admin can make: create, read, delete, update.
User A can make: create, read, update.
User B can make: read, delete.

各ユーザーは、異なる操作を持つ異なるプロファイルです。

spring-security で作成できますか? データベースでは次のようになります。 ここに画像の説明を入力

両方のユーザーが同じページにアクセスしますが、操作は異なります (例: www.myApp.com/pageOperation)。

ありがとう。

4

1 に答える 1

0

Spring Security では、何らかのアクションを呼び出すためのパーミッションは、「authorities」コレクションの現在のAuthenticationオブジェクト内に GrantedAuthority オブジェクトとして格納されるため、ユーザー名を確認して、ユーザーごとに異なる権限コレクションを提供する必要があります。それらを<user-service>セクションにハードコードするか 、ユーザー名に基づいてユーザー権限を解決するUserDetailServiceの独自の実装を提供できます。ユーザー名を受け入れ、ユーザー権限コレクションを含むUserDetailsエンティティを返すUserDetailsServiceメソッドloadUserByUsernameがあります。ターゲットメソッドにアノテーションを適用するか、適切なURLをインターセプトすることにより、アクションを呼び出している間にユーザーの権限を確認できます。お役に立てれば。@PreAuthorize

于 2013-11-12T11:13:07.933 に答える