内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

spring-security自行理解-創(chuàng)新互聯(lián)

1、導入spring-security的jar包 或者是在maven中導入依賴
作者選擇的是在maven中導入依賴(這邊的前提是在spring項目中集成spring-security框架用于認證)
用maven導入依賴:在pom.xml中配置(作者的spring是5.0+的版本)
<dependencies>

為漳州等地區(qū)用戶提供了全套網(wǎng)頁設計制作服務,及漳州網(wǎng)站建設行業(yè)解決方案。主營業(yè)務為網(wǎng)站建設、成都網(wǎng)站設計、漳州網(wǎng)站設計,以傳統(tǒng)方式定制建設網(wǎng)站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>${spring.security.version}</version>
</dependency>

</dependencies>

2、在web.xml中配置
<!-- 配置加載類路徑的配置文件 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml,classpath:spring-security.xml</param-value>
</context-param>

<!--springSecurity配置-->
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<!--springSecurity的配置-->

<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3、創(chuàng)建并配置spring-security.xml文件
開始配置

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:security="http://www.springframework.org/schema/security"
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">
a)、<!--配置不攔截的資源
auto-config="true" 不用自己編寫登陸的頁面,框架提供默認的登陸頁面
use-expressions="false" 是否使用SPEL表達式
-->
<security:http pattern="/login.jsp" security="none"/>
<security:http pattern="failer.jsp" security="none"/>
<security:http pattern="/css/" security="none"/>
<security:http pattern="/images/
" security="none"/>
<security:http pattern="/img/" security="none"/>
<security:http pattern="/plugins" security="none"/>
b)、<!--配置具體的原則-->
<security:http auto-config="true" use-expressions="false">
<!--配置具體的攔截規(guī)則 patten="請求的路徑規(guī)則" access="訪問系統(tǒng)的人" 必須要有ROLE_USER角色-->
<security:intercept-url pattern="/
" access="ROLE_USER_ADMIN"/>

<!--定義跳轉(zhuǎn)的具體的頁面-->
    <security:form-login
        login-page="/login.jsp"
        login-processing-url="/login.do"
        default-target-url="/index.jsp"
        authentication-failure-url="/failer.jsp"
        authentication-success-forward-url="/pages/main.jsp"/>

    <!--關(guān)閉跨域請求-->
    <security:csrf disabled="true"/>

    <!--退出-->
    <security:logout invalidate-session="true" logout-url="/logout.do" logout-success-url="/login.jsp"/>
</security:http>
c)、<!--配置數(shù)據(jù)庫中的用戶名和密碼-->
<security:authentication-manager>
    <security:authentication-provider user-service-ref="userService">
        <!--配置加密方式-->
        <security:password-encoder ref="passwordEnCoder"/>
    </security:authentication-provider>
</security:authentication-manager>

<!--配置加密的類-->
<bean id="passwordEnCoder" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"/>

</beans>

結(jié)束

4、創(chuàng)建自己的UserDao接口和一個繼承了UserDetailsService這個接口的UserService接口
并創(chuàng)建一個UserServiceImpl類實現(xiàn)UserService接口
a)、重寫這個方法:public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
方法中處理自己的用戶封裝成UserDetails
User user = new User(userInfo.getUsername(),userInfo.getPassword(),userInfo.getStatus()==0?true:false,true,true,true,getAuthority(userInfo.getRoles()));
return user;
}
和這個方法:public List<SimpleGrantedAuthority> getAuthority(List<Role> roles){
作用就是返回一個List集合,集合中裝入的是角色描述
return list;
}
5、spring-security源碼解析
spring-security自行理解
web.xml配置文件的上圖配置的名稱是默認的不可更改
而這個filter對應的具體類是spring-security自行理解
這個類的作用是用于干嘛的呢?
這個類的父類是繼承了filter
spring-security自行理解
所以這個類的具體作用應該是在doFilter中
spring-security自行理解
在此中我們可以看到傳入了一個
spring-security自行理解
FilterChain對象
但是這個對象又干了什么呢?
spring-security自行理解
此時賦值為了本類中的此變量this.delegate; 往上看我們看到了此變量是一個Filter
spring-security自行理解

spring-security自行理解
以上我們看到當為空之后就調(diào)用了本類中的initDelegate進行賦值
spring-security自行理解
這邊通過加載配置文件獲取Bean對象
6、FilterChainProxy實現(xiàn)加載所有Filter的實現(xiàn)類
spring-security自行理解
spring-security自行理解
獲取到所需要加載的所有Filter
spring-security自行理解
spring-security自行理解
這個SecurityFilters枚舉定義所有需要加載的Filter
spring-security自行理解

通過jar包
spring-security-config-5.0.1.RELEASE.jar
可以翻出spring.handlers
spring-security自行理解
spring-security自行理解
相對應
spring-security自行理解
這邊更具體的說明了需要加載的所有Filter
spring-security自行理解
spring-security自行理解

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調(diào)度,確保服務器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務器買多久送多久。

本文標題:spring-security自行理解-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://www.rwnh.cn/article14/ppsge.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、網(wǎng)站策劃App開發(fā)、網(wǎng)站建設自適應網(wǎng)站、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設
鄯善县| 桃江县| 永宁县| 静宁县| 高碑店市| 通山县| 天峨县| 景洪市| 耒阳市| 大英县| 三都| 永德县| 龙陵县| 龙口市| 突泉县| 漾濞| 沙湾县| 桓台县| 麻阳| 铜梁县| 融水| 三亚市| 遵化市| 姜堰市| 周至县| 平原县| 安顺市| 盖州市| 惠来县| 海阳市| 沙坪坝区| 闸北区| 平度市| 海丰县| 清流县| 铜川市| 青铜峡市| 林州市| 安泽县| 额敏县| 祁东县|