1 )変更のpom.xmlを、依存関係を追加
<! - 認証 - >
<依存>
<groupIdを> org.springframework.security </ groupIdを>
<たartifactId>春・セキュリティ・ウェブ</たartifactId>
</依存関係>
<依存>
<groupIdを> org.springframework.security </ groupIdを>
<たartifactId>春・セキュリティ設定</たartifactId>
</依存関係>
( 2 )変更のweb.xml
<コンテキスト-PARAM>
<param-name>のcontextConfigLocation </ PARAM名>
<PARAM値>クラスパス:春/ばねのsecurity.xml </ PARAM値>
</コンテキスト-param>の
<聞き手>
<リスナクラス>
org.springframework.web.context.ContextLoaderListener
</リスナクラス>
</リスナー>
<フィルタ>
<フィルタ名> springSecurityFilterChain </フィルタ名> <フィルタクラス> org.springframework.web.filter.DelegatingFilterProxy </フィルタクラス>
</フィルタ>
<のfilter-mapping>
<フィルタ名> springSecurityFilterChain </フィルタ名>
<url-pattern> / * </のurl-pattern>
</フィルタマッピング>
( 3 )スプリング追加プロファイルディレクトリばねのsecurity.xml
<! - 以下のページが傍受されることはありません - >
<HTTPパターン= "/login.html" セキュリティ= "なし" > </ HTTP>
<HTTPパターン= "/ CSS / **" セキュリティ= "なし" > </ HTTP>
<HTTPパターン= "/ IMG / **" セキュリティ= "なし" > </ HTTP>
<HTTPパターン= "/ JS / **" セキュリティ= "なし" > </ HTTP>
<HTTPパターン= "/プラグイン/ **" セキュリティ= "なし" > </ HTTP>
<! - ページのルールをブロックします - >
<HTTPを使用-表現= "false"に >
<インターセプト-URLパターン= "/ *" アクセス= "ROLE_ ADMIN " />
<フォームのログインログイン・ページ= "/login.html" デフォルト・ターゲット-URL = "/admin/index.html" 認証失敗-URL = "/login.html" 常に利用-デフォルト・ターゲット= 「真" />
<無効= CSRF "真" />
<ヘッダ>
<フレーム・オプション・ポリシー= "SAMEORIGIN" />
</ヘッダ>
</ HTTP>
<! - 認証マネージャ - >
<認証マネージャ>
<認証プロバイダ>
<ユーザーサービス>
<ユーザー名= "管理者" パスワード= "123456" 当局= "ROLE_ ADMIN " />
<ユーザー名= "孫悟空" パスワード= "dasheng" 当局= "ROLE_ ADMIN " />
</ユーザーサービス>
</認証プロバイダ>
</認証マネージャ>
2.2.2 ログインページ
変更 XXXX-ウェブのlogin.htmlと
<フォームID = "loginform" ACTION = "/ログイン" METHOD = "POST" クラス= "スイフォーム" >
<DIV CLASS = "入力プリペンド" > <スパンクラス= "アドオンログイン名" > </ span>を
<入力されたID = "prependedInput" NAME = "ユーザ名" タイプ= "テキスト" プレースホルダ= "邮箱/用户名/手机号" クラス= "SPAN2入力xfat" >
</ div>
<DIV CLASS = "入力プリペンド" > <スパンクラス= "アドオンloginpwd" > </ span>を
<入力ID = "prependedInput" NAME = "パスワード" タイプ= "パスワード" プレースホルダ= "请输入密码" クラス= "SPAN2入力xfat" >
</ div>
<DIV CLASS = "設定" >
<DIV ID = "スライダー" >
<DIV ID = "slider_bg" > </ div>
<スパンID = "ラベル" >>> </ span>の<スパンID = "labelTip" >ドラッグスライダが</スパン>を検証します
</ div>
</ div>
<のdivクラス= "logined" >
<a class= "sui-btn btn-block btn-xlarge btn-danger" onclick="document:loginform.submit()" target= "_blank">登录する</a>
</ div>
</フォーム>
2.3.1 バックエンド・コード
で youlexuanマネージャ-ウェブの新LoginController.java
パッケージ com.youlexuan.sellergoods.controller。 輸入 java.util.HashMapを; 輸入 java.util.Map; 輸入 org.springframework.security.core.context.SecurityContextHolder。 輸入 org.springframework.security.core.userdetails.UserDetails。 輸入 org.springframework.web.bind.annotation.RequestMapping。 輸入 org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping( "/ログイン") パブリック クラス LoginController { @RequestMapping( "名前") 公共の マップ 名(){ 文字列名= SecurityContextHolder。getContext() .getAuthentication()のgetName()。 マップ マップ= 新しい HashMapの(); マップ(.put 「ログイン名」、名前を)。 リターン マップ。 } } |
2.3.2 フロントエンドコード
(1)新 loginService.js
//サービス層へのアクセス app.service( 'loginService'、関数($ HTTP){ //人の名前に印を読みます この .loginName = 関数(){ 返す $ http.get( '../ログイン/ name.do'); } }); |
(2)新建indexController.js
app.controller('indexController' ,function($scope,$controller ,loginService){ //读取当前登录人 $scope.showLoginName=function(){ loginService.loginName().success( function(response){ $scope.loginName=response.loginName; } ); } }); |
index.html页面上引入JS
<script type="text/javascript" src="../plugins/angularjs/angular.min.js"></script> <script type="text/javascript" src="../js/base.js"></script> <script type="text/javascript" src="../js/service/loginService.js"></script> <script type="text/javascript" src="../js/controller/indexController.js"></script> |
指令
<body class="hold-transition skin-green sidebar-mini" ng-app="youlexuan" ng-controller="indexController" ng-init="showLoginName ()"> |