春のセキュリティフレームワークは、着陸制御のためのフレームワークである、ユーザー名とパスワードバックエンドの設定ファイルを取得し、着陸の判断を比較
手順を使用します
1、輸入に依存
<! -身份验证- > <依存> <groupIdを> org.springframework.security </ groupIdを> <たartifactId>春・セキュリティ・ウェブ</たartifactId> <バージョン> 4.1.0.RELEASE </バージョン> </依存関係> <依存> <groupIdを> org.springframework.security </ groupIdを> <たartifactId>春・セキュリティ設定</たartifactId> <バージョン> 4.1.0.RELEASE </バージョン> </依存関係>
2、web.xmlファイルは、ばねのsecurity.xmlファイルをロード
<コンテキストPARAM> の<param-name>のcontextConfigLocation </ PARAM名> の<param-value>のクラスパス:春/ ばねのsecurity.xml </ PARAM値> </コンテキスト-param>の <リスナー> <listener- クラス > org.springframework.web.context.ContextLoaderListener </ listener- クラス > </リスナー> <フィルタ> <フィルタ名> springSecurityFilterChain </フィルタ名> <フィルタ- クラス > org.springframework.web.filter.DelegatingFilterProxy < /フィルタ- クラス > </フィルタ> <filter-mapping> <フィルタ名> springSecurityFilterChain </フィルタ名> の<url-pattern> / * </のurl-pattern> </のfilter-mapping>
3、フロントページ
図4は、エンティティ・クラス・コードを作成するための背景を実現UserDetailsServiceの方法を実施する、請求項インタフェースを
// 認証されたユーザがログインクラス のパブリックの クラス UserDetailsServiceImpl 実装UserDetailsService { //取得・サービス層は、バックエンドデータベースとユーザー名情報である プライベートSellerService sellerService; // SET注入する方法 公共 のボイドsetSellerService(SellerService sellerServiceを){ この .sellerService = sellerService。 } // 取得したユーザー名は、データベース内のオブジェクト、 @Override 公共 UserDetails loadUserByUsername(文字列名)がスローUsernameNotFoundException { するSystem.out.printlnを( "IMP方法経過" ); // ユーザ名は、フォームの前を取得するためのユーザー名です // 着陸権を持つユーザー、 リスト<GrantedAuthority> =グラント新しい新しいのArrayList <> (); // 使用することができ、ユーザーの役割を追加 grant.add(新新 SimpleGrantedAuthority(「ROLE_SELLER」を)); // ユーザ名が定義されている制御フレームワーク、実際には、seller_idエンティティクラス 出品者の出品者= sellerService.findOne(ユーザー名); // Ruoguoこのユーザーは存在しません IF!(売主= ヌル && "1" .equals(売り手.getStatus())){ // ログインするために、事業の承認は、ユーザーは、ユーザー名、パスワード、役割、入力返された場合にのみ、 返す 新しい新しいユーザー(ユーザー名、seller.getPasswordを()、グラント)。 } 他{ 戻り ヌル。 } }
5、春-security.x <?のXmlバージョン= "1.0"エンコード= "UTF-8"?>
ルールは内部、私がブログで詳しく説明する必要があり、我々は背中を見ることができます
< 豆:豆
のxmlns = "http://www.springframework.org/schema/security"
のxmlns:豆= "http://www.springframework.org/schema/beans"
のxmlns:XSI = "のhttp:// WWW .w3.org / 2001 / XMLスキーマ・インスタンス" のxmlns:ダボ= "http://code.alibabatech.com/schema/dubbo"
のxsi:schemaLocationの=" http://www.springframework.org/schema/beansのhttp: //www.springframework.org/schema/beans/spring-beans.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd のhttp:/ /www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd "> <! -以下页面不被拦截- > <HTTPパターン= "/ *。htmlの" セキュリティ= "なし"> </ HTTP> <HTTPパターン= "/ CSS / **" セキュリティ= "なし"> </ HTTP> <HTTPパターン= "/ IMG / **"セキュリティ= "なし"> </ HTTP> <HTTPパターン= "/ JS / **」セキュリティ= "なし"> </ HTTP> <HTTPパターン= "/プラグイン/ **"セキュリティ= "なし"> </ HTTP> <! - <HTTPパターン= "/販売者/ add.do"セキュリティ= "なし"> </ HTTP> - > <! -页面拦截规则- > <HTTPを使用-表現= "偽"> <インターセプト-URLパターン= "/ **"アクセス= "ROLE_SELLER" / > <フォームのログインログイン・ページ= "/ shoplogin.html"デフォルト・ターゲット-URL = "/管理/ index.htmlを"認証失敗-URL = "/ shoplogin。htmlの"常時使用デフォルト・ターゲット= "真"/> <CSRF無効= "真"/> <ヘッダ> <フレーム・オプション・ポリシー=" SAMEORIGIN「/> //角色信息 </ヘッダ> <ログアウト/> </ HTTP> <! -认证管理器- > <認証マネージャ> <認証プロバイダのユーザー・サービス-REF = "userDetailService"> </認証プロバイダ> </認証マネージャ> <! -应用ダボ- > <ダボ:アプリケーション名= "youlexuanショップ" /> <ダボ:レジストリアドレス= "飼育係://192.168.200.128:2181" /> <ダボ:参照ID = "sellerService"インターフェイス= "com.ghh.core。 service.SellerService」> </ダボ:参照>
<! - カスタム設定クラス - >
<豆:豆ID = "userDetailService"クラス= "com.ghh.shop.service.UserDetailsServiceImpl">
<豆:プロパティ名= "sellerService" REF = "sellerService" /> // refの引用ダボ中的sellerService
</豆:豆>
</豆:豆>
カスタムクラスにカスタム構成ポイントUserDetailsServiceImplのクラス、背景が決意のヌルのために、ユーザー名、パスワード、ロール情報を返します