1 ... spring_security.xml
1の<?xml version = "1.0"エンコード= "UTF-8"?> 2 <豆のxmlns = "http://www.springframework.org/schema/beans" 3つ のxmlns:XSI = "のhttp:// WWW。 w3.org/2001/XMLSchema-instance " 4つ のxmlns:セキュリティ= "http://www.springframework.org/schema/security" 5 XSI:のschemaLocation =" http://www.springframework.org/schema/beans 6 http:// www.springframework.org/schema/beans/spring-beans.xsd 7 のhttp:// www.springframework.org/schema/security 8 のhttp:// www.springframework.org/schema/security/spring- security.xsd "> 9 <! -静的リソースをブロックしません- > 10 <セキュリティます:httpパターン= "/ CSS / **"セキュリティ= "なし"> </セキュリティ:HTTP> 11 <セキュリティます:httpパターン= "/ IMG / **"セキュリティ= "なし"> </セキュリティ: HTTP> 12 <セキュリティます:httpパターン= "/プラグイン/ **"セキュリティ= "なし"> </セキュリティ:HTTP> 13 <! -不拦截登录不拦截エラー- > 14 <セキュリティます:httpパターン=」 /login.jsp "セキュリティ= "NONE"> </セキュリティ:HTTP> 15 <セキュリティ:HTTPパターン= "/ error.jsp"セキュリティ= "NONE"> </セキュリティ:HTTP> 16 <セキュリティ:HTTPパターン=" /favicon.ico」セキュリティ= "なし"> </セキュリティ:HTTP> 17 <! -ブロックルール- > 18 <! - 設定ルール傍受 19 自動独自のページを使用して設定を 20に 使用- のspel式かどうかを式 21がある - > 22れる <セキュリティ:HTTPオートコンフィグ= "falseに"使用-式= "trueに"> 23である < -コンフィギュレーション、ノックダウンアドレス- >! 24 <セキュリティ:intercept-パターン= URL "/ **"アクセス= "ROLE_USER"> </セキュリティ:インターセプト-URL> 25 <! -あなたが特定のページにジャンプする設定- > 26 <セキュリティ:フォーム- ログイン 27 ログインページ= "/login.jsp" 28 ログイン-処理-URL = "/ログイン" 29 デフォルト -target-URL = "/ index.jspの" 30 認証失敗-URL = "/ login.jspに" 31 > </セキュリティ:フォームログイン> 32 <! -关闭跨域请求- > 33 <セキュリティ:無効CSRF = "真の"> </セキュリティCSRF> 34 <! -退出登录- > 35 <セキュリティ:ログアウト無効セッション= "true"をログアウト-URL = "/ログアウト"ログアウト成功-URL = "/ login.jspを"> </セキュリティ:>ログアウト 36 </セキュリティ:HTTP> 37 < -自带账户密码- >! 38 <セキュリティ:認証マネージャ> 39 <セキュリティ:認証プロバイダのユーザー・サービス-REF = "sysUserService"> 40 < - <セキュリティ:!パスワードエンコーダREF = "passwordEncoder"> </セキュリティ:パスワードエンコーダ> - > 41 < ! - <セキュリティ:ユーザー・サービス> - > 42<! - &LT;&ndashに、临时账户密码不加密&のndash;&GT;! - > 43 < - <セキュリティ:ユーザ名= "管理者"パスワード= "{NOOP}管理"当局= "ROLE_USER">を< /セキュリティ:ユーザー> - > 44 <! - </セキュリティ:ユーザサービス> - > 45 </セキュリティ:認証プロバイダ> 46 </セキュリティ:認証マネージャ> 47 <ビーンID = "passwordEncoder" クラス = "org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"> </豆> 48 </豆>
2 ....のweb.xml
1 <!DOCTYPE WEB- アプリのPUBLIC 2 " - // Sun Microsystemsの、Inc.//DTD Webアプリケーション2.3 // EN" 3 "http://java.sun.com/dtd/web-app_2_3.dtd"> 4 5の<web-app> 6 <表示名>アーキタイプ作成されたWebアプリケーション</表示名> 7 <文脈PARAM> 8 の<param-name>のcontextConfigLocation </ PARAM名> 9 の<param-value>のクラスパス*: ApplicationContextの* .xmlファイル、クラスパス:spring_security.xml </ PARAM値> 10 </コンテキストPARAM> 11 <フィルター> 12 <フィルタ名> CharacterEncodingFilter </フィルタ名> 13 <フィルター- クラス > org.springframework.web.filter.CharacterEncodingFilter </フィルター- クラス > 14 <INIT-PARAM> 15 の<param-name>のエンコーディング</ PARAM名> 16 の<param-value>は、UTF-8 </ PARAM値> 17 </ INIT-PARAM> 18 </フィルタ> 19 <フィルター> 20 <フィルタ名> springSecurityFilterChain </フィルタ名> 21 <フィルター- クラス > org.springframework.web.filter.DelegatingFilterProxy </フィルタ- クラス > 22 </フィルタ> 23 <フィルタマッピング> 24 <フィルタ名> CharacterEncodingFilter </フィルタ名> 25 の<url-pattern> / * </のurl-pattern> 26 </のfilter-mapping> 27 <! -春のセキュリティ的过滤器配置- > 28 29 <フィルタマッピング> 30 <フィルタ名> springSecurityFilterChain </フィルタ名> 31 <URLパターン> / * </ URLパターン> 32 </フィルタマッピング> 33 <リスナー> 34 <リスナクラス> ORG .springframework.web.context.ContextLoaderListener </リスナクラス> 35 </リスナー> 36 <サーブレット> 37 <サーブレット名>のDispatcherServlet </サーブレット名> 38 <サーブレットクラス> org.springframework.web.servlet.DispatcherServlet </サーブレットクラス> 39 <INIT-PARAM> 40 <PARAM名> contextConfigLocation </ param-名> 41 の<param-value>のクラスパス*:spring_mvc.xml </ PARAM値> 42 </ initの-param>の 43 <! -按照Tomcatの顺序加载- > 44 の<load-on-startup> 1 </ load-on-startup> 45 </サーブレット> 46 <のservlet-mapping> 47 <サーブレット名>のDispatcherServlet </サーブレット名> 48 の<url-pattern> / </のurl-pattern> 49 </サーブレットマッピング> 50 <ウェルカム・ファイル・リスト> 51 <ウェルカムファイル> index.htmlを</歓迎ファイル> 52 <ウェルカムファイル>のindex.htm </歓迎ファイル> 53 <ウェルカムファイル> index.jspの</歓迎ファイル> 54 <ウェルカムファイル>にdefault.html </歓迎ファイル> 55 <ウェルカムファイル>のdefault.htm </歓迎ファイル> 56 <ウェルカムファイル> default.jsp </歓迎ファイル> 57 </歓迎ファイルリスト> 58 </ web-app>の
3 ... MD5のJavaコードの暗号化パスワード
1 パッケージcom.wsc.md5; 2 。3 インポートjava.math.BigIntegerの; 4 インポートjava.security.MessageDigestの、 5 インポートjava.security.NoSuchAlgorithmException; 6 7。 パブリック クラスMD5Utils { 8。 / ** 9。 *アルゴリズムが使用されているMD5暗号化 10 * / 11 公共 静的{文字列MD5(文字列平文) 12は バイト [] secretBytes = NULL ; 13である トライ{ 14 secretBytes = MessageDigest.getInstance( "MD5"().digest 15 plainText.getBytes()); 16 } キャッチ(持つNoSuchAlgorithmException E){ 17。 スロー 新しい新規のRuntimeException( "いいえMD5アルゴリズム!" ); 18れる } 。19 文字列md5code = 新しい新規のBigInteger(1、secretBytes).toString(。 16); // 進 20 // 発生数が32未満であれば、上記は0充填する必要が 21である ため(int型 ; Iは、32 < - md5code.length(I = 0); Iは++ ){ 22は md5code =「0 「+ md5code; 23である } 24 リターンmd5code; 25 } 26 27 公共 静的 ボイドメイン(文字列[]引数){ 28 のSystem.out.println(MD5( "123" )); 29 } 30 31 }
4 ...プレーンテキストのパスワードを取得します
1 // MD5 2 @Autowired 3 PasswordEncoder passwordEncoder。 4 @RequestMapping( "追加/" ) 5 パブリック文字列を追加(SYSUSERのSYSUSER){ 6 7 // 获取明文密码 8 // 文字列のパスワード= sysuser.getPASSWORD()。 9 // // 对明文密码加密 10 // 文字列md5password = passwordEncoder.encode(パスワード)。 11 // sysuser.setPASSWORD(md5password)。 12 sysuserService.add(SYSUSER)。 13 リターン"リダイレクト:/ユーザー/ pageChange" ; 14 }