バックグラウンド管理システムでは、通常、インターフェイスに対するさまざまなユーザーのアクセス機能を制限するために、アクセス許可制御が必要です。ユーザーに特定の権限がない場合、特定のインターフェイスにアクセスできません。
この記事では、waynboot-mall プロジェクトを例として、権限制御フレームワーク Spring Security を一般的なバックエンド管理システムに導入する方法を紹介します。概要は次のとおりです。
waynboot-mall プロジェクトのアドレス: https://github.com/wayn111/waynboot-mall
1. Spring Security とは
Spring Security は Spring フレームワークに基づくオープン ソース プロジェクトで、Java アプリケーションに強力で柔軟なセキュリティ ソリューションを提供するように設計されています。 Spring Security は次の機能を提供します:
- 認証: フォーム ログイン、HTTP 基本認証、OAuth2、OpenID などの複数の認証メカニズムをサポートします。
- 承認: ロールまたは権限ベースのアクセス制御と、式ベースのきめ細かい制御をサポートします。
- 保護: セッション固定、クリック ハイジャック、クロスサイト リクエスト フォージェリ、その他の攻撃の防止など、さまざまな保護手段を提供します。
- 統合: Spring Framework および他のサードパーティのライブラリやフレームワーク (Spring MVC、Thymeleaf、Hibernate など) とのシームレスな統合。
2. Spring Securityの導入方法
spring-boot-starter-security 依存関係を waynboot-mall プロジェクトに直接導入します。
リーリー
3. Spring Security の設定方法
Spring Security 3.0 での Spring Security の構成は、これまでとは少し異なります。たとえば、WebSecurityConfigurerAdapter を継承しなくなりました。 waynboot-mall プロジェクトの具体的な構成は次のとおりです。
リーリー
ここでは、SecurityConfig 構成クラスの詳細を説明します:
- filterChain(HttpSecurity httpSecurity) メソッドはアクセス制御の中核となるメソッドで、URL、cors 設定、csrf 設定、ユーザー情報読み込み設定、jwt フィルターインターセプト設定などの機能で権限認証が必要かどうかを設定できます。
- authenticationManager(AuthenticationConfigurationauthenticationConfiguration) メソッドは、認証インターフェイスを有効にするのに適しており、手動で宣言する必要があります。そうしないと、起動時にエラーが報告されます。
- bCryptPasswordEncoder() メソッドを使用すると、ユーザーはログイン時にパスワード暗号化ポリシーを定義できます。手動で宣言する必要があります。宣言しないと起動時にエラーが報告されます。
4. Spring Security の使用方法
Spring Security を使用するには、次のように、アクセス許可を制御する必要があるメソッドまたはクラスに、対応する @PreAuthorize アノテーションを追加するだけです。
リーリー
@PreAuthorize("@ss.hasPermi('system:role:list')") アノテーションをリスト メソッドに追加して、現在ログインしているユーザーがリスト メソッドにアクセスするための system:role:list 権限を持っていることを示します。そうでない場合は、権限エラーが返されます。
5.現在ログインしているユーザーの権限を取得します
SecurityConfig 構成クラスでは、データベース内のユーザーのアカウントとパスワードを、フロントエンドによって渡されたアカウントとパスワードと比較するために、ユーザー情報を読み込むための実装クラスとして UserDetailsServiceImpl を定義します。コードは以下のように表示されます、
リーリー
UserDetailsServiceImpl のコード ロジックを説明します。コードを見れば理解できると思います。
データベース内の現在のユーザー情報を読み取る-
ユーザーが存在するかどうかを確認する-
無効にするかどうかを決定する-
現在のユーザーのロール情報を取得する-
ロールに基づいて権限情報を取得する-
###結論は###
この記事では、権限制御フレームワーク Spring Security 3.0 バージョンをバックエンド管理システムに導入する方法とコードの実践方法について説明します。これは、誰もがアクセス許可制御フレームワーク Spring Security を明確に理解するのに役立つと信じています。後で、この記事の使用ガイドに従って、アクセス制御のために Spring Security を独自のプロジェクトに段階的に導入できます。
以上がSpring Security 権限制御フレームワークの使用ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。