日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

 前面通過入門案例介紹,我們發(fā)現(xiàn)在SpringSecurity中如果我們沒有使用自定義的登錄界面,那么SpringSecurity會(huì)給我們提供一個(gè)系統(tǒng)登錄界面。但真實(shí)項(xiàng)目中我們一般都會(huì)使用自定義的登錄界面,本文我們就來介紹下如何實(shí)現(xiàn)該操作。
注意:本文是在入門案例代碼的基礎(chǔ)上演示的!

一、頁面準(zhǔn)備

我們準(zhǔn)備如下相關(guān)的jsp頁面

1.login.jsp頁面

<%--
  Created by IntelliJ IDEA.
  User: dengp
  Date: 2019/12/1
  Time: 20:40
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="JAVA" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1>登錄管理</h1>

    <form>
        賬號(hào):<input type="text" name="username"><br>
        密碼:<input type="password" name="password"><br>
        <input type="submit" value="登錄"><br>
    </form>
    <img src="img/a1.jpg">
</body>
</html>

2.home.jsp頁面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1>home界面</h1>
</body>
</html>

3.其他頁面

SpringSecurity實(shí)現(xiàn)自定義登錄界面

 

在這里插入圖片描述

二、SpringSecurity相關(guān)配置

1.配置認(rèn)證信息

配置登錄和注銷相關(guān)的信息

<security:http auto-config="true" use-expressions="true">
    <!--
        攔截資源
        pattern="/**" 攔截所有的資源
        access="hasanyrole('role1')" 表示只有role1這個(gè)角色可以訪問資源
     -->
    <security:intercept-url pattern="/**" access="hasanyrole('role_user')"></security:intercept-url>
    <!--
        配置認(rèn)證信息
     login-page="/login.jsp"  自定義的登錄頁面
     login-processing-url="/login" security中處理登錄的請(qǐng)求
     default-target-url="/home.jsp" 默認(rèn)的跳轉(zhuǎn)地址
     authentication-failure-url="/failure.jsp" 登錄失敗的跳轉(zhuǎn)地址
     -->
    <security:form-login login-page="/login.jsp"
                        login-processing-url="/login"
                         default-target-url="/home.jsp"
                         authentication-failure-url="/failure.jsp"
    />
    <!-- 配置退出的登錄信息 -->
    <security:logout logout-url="/logout"
                     logout-success-url="/login.jsp"
    />
</security:http>

2.認(rèn)證界面匿名訪問

前面配置的

<security:intercept-url pattern="/**" access="hasanyrole('role_user')"></security:intercept-url>

會(huì)使登錄界面不可訪問,所以我們需要方法

SpringSecurity實(shí)現(xiàn)自定義登錄界面

 

在這里插入圖片描述

3.放過靜態(tài)資源

同樣的系統(tǒng)的 js css 等靜態(tài)資源文件也會(huì)被對(duì)應(yīng)的過濾器攔截,所以也需要方法

SpringSecurity實(shí)現(xiàn)自定義登錄界面

 

在這里插入圖片描述

4.登錄測(cè)試

啟動(dòng)服務(wù)我們?cè)L問登錄試試

SpringSecurity實(shí)現(xiàn)自定義登錄界面

 

在這里插入圖片描述

可以訪問到,然后提交登錄看看
注意表單設(shè)置

SpringSecurity實(shí)現(xiàn)自定義登錄界面

 

在這里插入圖片描述


然后訪問出現(xiàn)了403錯(cuò)誤

SpringSecurity實(shí)現(xiàn)自定義登錄界面

 

在這里插入圖片描述

三、關(guān)閉csrf攔截

  上面我們?cè)谫~號(hào)和角色都正確的情況下,登錄后出現(xiàn)了 403錯(cuò)誤,原因是因?yàn)?csrf過濾器攔截了,那為什么系統(tǒng)提供的登錄界面沒問題呢?原因是如下

SpringSecurity實(shí)現(xiàn)自定義登錄界面

 

在這里插入圖片描述


在系統(tǒng)提供的登錄表單中隱藏的有csrf相關(guān)的信息。這時(shí)我們可以關(guān)閉csrf過濾器,來實(shí)現(xiàn)登錄工作

SpringSecurity實(shí)現(xiàn)自定義登錄界面

 

在這里插入圖片描述

重啟服務(wù)再測(cè)試就可以了

SpringSecurity實(shí)現(xiàn)自定義登錄界面

 

在這里插入圖片描述

四、csrf防護(hù)

  上面我們通過關(guān)閉csrf過濾器實(shí)現(xiàn)了認(rèn)證功能,但是系統(tǒng)將面臨csrf攻擊的風(fēng)險(xiǎn),所以我們需要放開服務(wù),同時(shí)也要能夠完成認(rèn)證。首先我們來看下CsrfFilter的源碼

1.CsrfFilter源碼查看

SpringSecurity實(shí)現(xiàn)自定義登錄界面

 

在這里插入圖片描述


this.requireCsrfProtectionMatcher.matches(request)方法

SpringSecurity實(shí)現(xiàn)自定義登錄界面

 

在這里插入圖片描述


通過 GET HEAD TRACE OPTIONS 提交的數(shù)據(jù)不會(huì) csrf 驗(yàn)證

2.放開過濾器

前面關(guān)閉的我們需要放開

SpringSecurity實(shí)現(xiàn)自定義登錄界面

 

在這里插入圖片描述

3.頁面動(dòng)態(tài)token

導(dǎo)入security標(biāo)簽

SpringSecurity實(shí)現(xiàn)自定義登錄界面

 

在這里插入圖片描述


在表單中使用,作用和下面的一致

SpringSecurity實(shí)現(xiàn)自定義登錄界面

 

在這里插入圖片描述


:ajax方式提交的時(shí)候使用

五、注銷功能

在home.jsp中添加注銷鏈接

SpringSecurity實(shí)現(xiàn)自定義登錄界面

 

在這里插入圖片描述

點(diǎn)擊后出現(xiàn)了404錯(cuò)誤原因是:自定義的注銷功能必須通過post方式提交才行,所以如下

SpringSecurity實(shí)現(xiàn)自定義登錄界面

 

在這里插入圖片描述

SpringSecurity實(shí)現(xiàn)自定義登錄界面

 

在這里插入圖片描述

出現(xiàn)這個(gè)原因是 csrf的原因,加標(biāo)簽即可

SpringSecurity實(shí)現(xiàn)自定義登錄界面

 

在這里插入圖片描述

搞定~

分享到:
標(biāo)簽:SpringSecurity
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績?cè)u(píng)定