1. ホーム
  2. java

[解決済み] ロールとパーミッションによるSpringセキュリティ

2023-07-08 07:50:46

質問

ロールベースのセキュリティとパーミッションをセットアップしようとしています。私はSpring-Securityと一緒にこれをやろうとしています。

ACLは私の要件には過剰なようなので、設定したくありません。

私は、以下のように単純なパーミッションとロールを持ちたいだけです。 記事 . 残念ながら、この記事には与えられたソリューションを実装する方法が記載されていません。

誰かがすでにこれを試していて、正しい方向に私を導くことができますか?もしかしたら、実装を説明した別のブログ エントリがあるかもしれません。

どうもありがとうございました。

どのように解決するのですか?

それを実装するためには、以下のようなことが必要なようです。

  1. モデル (ユーザー、ロール、パーミッション) と、指定されたユーザーのパーミッションを取得する方法を作成します。
  2. 独自の org.springframework.security.authentication.ProviderManager を定義し、それを構成 (プロバイダを設定) して、独自の org.springframework.security.authentication.AuthenticationProvider . この最後のものは、その認証メソッドで Authentication を返さなければなりません。 org.springframework.security.core.GrantedAuthority で設定されるべきです。あなたのケースでは、与えられたユーザーのすべての権限。

その記事のトリックは、ユーザーにロールを割り当てることですが、それらのロールのパーミッションの設定を Authentication.authorities オブジェクトに設定することです。

そのためには、APIを読んで、すべてを実装するのではなく、基本的なProviderManagerとAuthenticationProviderを拡張できるかどうかを確認することをお勧めします。私はそれを org.springframework.security.ldap.authentication.LdapAuthenticationProvider にカスタム LdapAuthoritiesPopulator を設定し、ユーザーの正しいロールを取得することができました。

今回は、あなたが探しているものを得ることができたと思います。 幸運を祈ります。