春のセキュリティ・フレームワークのデモ小

はじめに:

  我々javaweb一部、およびフィルターまたはインターセプターを使用してSSM部分の前に、着陸を制御しない、今は春Secutriy着陸コントロールを使用します

A、春のセキュリティの小さなデモ

  1、新しいプロジェクト、輸入依存度のMavenを作成します

<プロパティ> 
    <spring.version> 4.2.4.RELEASE </spring.version> 
  </プロパティ> 
  <依存性> 
    <依存性> 
      <のgroupId> org.springframework </のgroupId> 
      <たartifactId>ばねコア</たartifactId> 
      <バージョン> $ {spring.version} </バージョン> 
    </依存> 
    <依存性> 
      <のgroupId> org.springframework </のgroupId> 
      <たartifactId>ばねウェブ</たartifactId> 
      <バージョン> $ {spring.version} </バージョン> 
    </依存関係> 
    <依存> 
      <groupIdを> org.springframework </ groupIdを> 
      <たartifactId>ばねwebmvc </たartifactId> 
      <バージョン> $ {spring.version} </バージョン> 
    </依存> 
    <依存性>
      <のgroupId> org.springframework </のgroupId> 
      <たartifactId>ばねコンテキストサポート</たartifactId> 
      <バージョン> $ {spring.version} </バージョン> 
    </依存> 
    <依存性> 
      <のgroupId> org.springframework </ groupId> 
      <たartifactId>ばね試験</たartifactId> 
      <バージョン> $ {spring.version} </バージョン> 
    </依存> 
    <依存性> 
      <のgroupId> org.springframework </のgroupId> 
      <たartifactId>ばねJDBC </たartifactId> 
      <バージョン> $ {spring.version} </バージョン> 
    </依存> 
    <依存性> 
      <groupIdを> org.springframework.security </ groupIdを>
      <たartifactId>春・セキュリティ・ウェブ</たartifactId> 
      <バージョン> 4.1.0.RELEASE </バージョン> 
    </依存関係> 
    <依存> 
      <groupIdを> org.springframework.security </ groupIdを> 
      <たartifactId>春・セキュリティ設定</たartifactId> 
      <バージョン> 4.1.0.RELEASE </バージョン> 
    </依存> 
    <依存性> 
      <groupIdを>のjavax.servlet </のgroupId> 
      <たartifactId>サーブレットAPI </たartifactId> 
      <バージョン> 2.5 </バージョン> 
      <スコープ>提供</スコープ> 
    </依存> 
  </依存関係> 
  <ビルド> 
    <プラグイン> 
      <! - javaの编译插件- > 
      <プラグイン> 
        <groupId> org.apache.maven.plugins </ groupIdを> 
        <たartifactId>のmaven-コンパイラプラグイン</たartifactId>
        <バージョン> 3.2 </バージョン>バージョン> 3.2 </ version>の
        <設定> 
          <ソース> 1.7 </ソース>
          <ターゲット> 1.7 </ターゲット> 
          <符号化> UTF-8 </エンコーディング> 
        </構成> 
      </プラグイン> 
      <プラグイン> 
        <のgroupId> org.apache.tomcat.maven </のgroupId> 
        <たartifactId> tomcat7-maven-プラグイン</たartifactId> 
        <設定> 
          <! -指定端口- > 
          <ポート> 9090 </ポート> 
          <! -请求路径- > 
          <パス> / </パス> 
        </ configuration>の
      </プラグイン> 
    </プラグイン> 
  </ビルド>

  2、web.xml構成ファイル

<xmlのバージョン= "1.0"エンコード= "UTF-8"?> 
の<web-appのxmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance" 
         のxmlns = "のhttp:// javaのsun.comの/ XML / NS / JavaEEの" 
         XSI:のschemaLocation =" http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5 「.XSD 
         バージョン= "2.5"> 
<! -加载春-セキュリティを配置文件- > 
  <コンテキスト-param>の
    の<param-name>のcontextConfigLocation </ PARAM名> 
    の<param-value>のクラスパス:春-セキュリティ。 XML </ PARAM値> 
  </コンテキスト-param>の
  <リスナー> 
    <リスナクラス> 
      org.springframework.web.context.ContextLoaderListener 
    </リスナクラス> 
  </リスナー> 
  <フィルタ>
    <フィルタ名> springSecurityFilterChain </フィルタ名> 
    <フィルタクラス> org.springframework.web.filter.DelegatingFilterProxy </フィルタクラス> 
  </フィルタ> 
  <フィルタマッピング> 
    <フィルタ名> springSecurityFilterChain </フィルタ-name> 
    の<url-pattern> / * </のurl-pattern> 
  </のfilter-mapping> 
</ web-app>の

  図3に示すように、バネのsecurity.xmlプロファイル

インターセプト-urlが傍受ページを表し   

/ *下位レベルのディレクトリが含まれていないだけで、このディレクトリを含め、ディレクトリ内のリソースを表します

/ **ディレクトリとディレクトリレベルのリソースのすべてのサブディレクトリことを示しています

フォーム・ログイン着陸はオープン形式です

使用-式は春の式言語(SPEL)を使用するかどうかで、デフォルトはtrueでオンになっている場合、コンフィギュレーションの傍受は形式で記述する必要があります

  ログイン処理-urlは=「/ login2」異なるランディングページを指定します

ユーザ名パラメータ=「」パスワードパラメータ=「」に書き換え、ユーザーのログイン名と属性名

<xmlのバージョン= "1.0"エンコード= "UTF-8"?> 
<豆:豆のxmlns = "http://www.springframework.org/schema/security" 
             のxmlns:豆=「HTTP://www.springframework .ORG /スキーマ/ビーンズ" 
        のxmlns:XSI =" http://www.w3.org/2001/XMLSchema-instance " のxsi:schemaLocationの=" http://www.springframework.org/schema/beans HTTP:// www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd「> < ! -ページブロックルールがSPELの適用のために、インターセプトページの使用式を表し、デフォルトはtrueに、 - > <HTTPを使用-表現= "偽"> の<url-patternインターセプト= "/ **"アクセス= "ROLE_USER」/> <! -オープンフォーム・ログイン、使用-式がtrueの場合、ログイン処理-URL =に設定されている場合、 "/ login2" 異なるランディングページを指定するために使用される- >-オープンフォーム・ログイン、使用-式がtrueに設定されている場合は、ログイン加工-URL = 「/ login2」異なるランディングページを指定するために使用される- > <フォームのログイン/> </ HTTP> <! -認証マネージャ- > <認証マネージャ> <認証プロバイダ> <ユーザーサービス> <! -あなたはロールROLE_USERの役割の数を追加することができ、ユーザーは上記なければならない- > <ユーザー=名"ADMIN"、パスワード= "123456"当局は= "ROLE_USERを持つユーザ" /> </ -サービス利用者> </認証プロバイダ> </認証マネージャ> </豆:豆>

 

 

 第二に、私たち自身のログイン画面を作成します

  デフォルトは、私達のログイン画面に直接ジャンプしてログインしていない、ログインの失敗は、ページにジャンプすることができませんでした

  1、创建login.html,login_error.html

<!DOCTYPE HTML> 
<HTML> 
<HEAD> 
    <METAのcharset = "UTF-8"> 
    <タイトル>ログイン</ TITLE> 
</ HEAD> 
<BODY> 

- -私の着陸システムへようこそ
<フォームアクション= "/ログイン"メソッド= "ポスト "> 
    ユーザ名:<入力名= "ユーザ名" > <BR> 
    パスワード:<INPUT名= "パスワード"> <BR> 
    <ボタン>ログイン</ボタン> 
</フォーム> 
< / BODY> 
</ HTML>
<!DOCTYPE HTML> 
<HTML> 
<HEAD> 
    <METAのcharset = "UTF-8"> 
    <タイトル>ホーム</ TITLE> 
</ HEAD> 
<BODY> 
ユーザー名またはパスワードが間違っ~~~ 
</ BODY> 
</ HTML>

  図2に示すように、バネのsecurity.xmlプロファイル変更

セキュリティ=「none」に   設定し、このリソースが傍受されていません。 

ページ-ログイン指定ログインページ。
障害のurl-認証認証失敗のページへのジャンプを指定します。
ターゲットURLデフォルト成功の認証と承認のデフォルトをユーザに提示した後、ページを指定します。

無効= "true" にCSRF 

 

<xmlのバージョン= "1.0"エンコード= "UTF-8"?> 
<豆:豆のxmlns = "http://www.springframework.org/schema/security" 
             のxmlns:豆 = "のhttp://www.springframework .ORG /スキーマ/豆"のxmlns:XSI = "http://www.w3.org/2001/XMLSchema-instance" 
             のxsi:schemaLocationの =" http://www.springframework.org/schema/beansのhttp:// www.springframework.org/schema/beans/spring-beans.xsd 
                        ます。http:// www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd 「>
 
    < ! -以下界面不进行拦截- > 
    <HTTPパターン= " /login.html "セキュリティ="なし"> </ HTTP> 
    <HTTPパターン= "/ login_error.html"セキュリティ= "なし"> </ HTTP>/ HTTP> 
   <! -のconfigureブロックルール- > 
    <HTTP-利用の表現= "偽"> 
       <! -インターセプトすべての要求は、ログインページにアクセスしてください。役割設定- > 
        <URLパターンインターセプト= "/ *"アクセス= "ROLE_USERを持つユーザーが" /> 
        < -体のログインログイン・ページ = "/ login.htmlと" デフォルト・ターゲット-URL = "/ index.htmlを" authentication- URL-失敗 = "/ login_error.html" /> 
        "真の" <CSRF =無効/> 
    </ HTTP> 
    <! -認証マネージャ- > 
    <認証マネージャ> 
        <認証プロバイダ> 
            < -サービス-ユーザ> 
                <! - ROLE_USERは、ユーザーが役割上記なければならない、役割の数を追加することができます- > 
    </認証マネージャ> 
</豆:豆>

あなたはログオンページのセキュリティ=「なし」を設定しない場合、次のエラーが発生します。 

 注意:

  私は、操作自身が「/」を報告します上記のエラーを忘れてランディングページの下部にある「login.htmlと」を書いて、私はあなたが注意を払う願っています

 この時間の後にページへのアクセスは、私たち自身の創造のログイン画面にジャンプし、そして唯一の正しいユーザー名とパスワードを入力ページにジャンプしますでしょうinex.html

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/guanyuehao0107/p/11856220.html
おすすめ