日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

淺談spring security入門

瀏覽:89日期:2023-08-28 13:09:58

一 介紹

本節(jié)給知識(shí)追尋者給大家?guī)淼氖莝pringSecurity入門篇,主要是簡(jiǎn)述下springSecrurity的啟動(dòng)原理和簡(jiǎn)單的入門搭建;

二 核心模塊介紹

spring-security-core ; 包含核心身份驗(yàn)證和access-contol類和接口,遠(yuǎn)程支持和基本配置AP; spring-security-web: web , url登陸驗(yàn)證和訪問控制; spring-security-config: 支持xml 或者java注解配置;

當(dāng)然其模塊遠(yuǎn)不止這些,比如CAS,ALC,Aspects,OpenI等等,對(duì)于入門我們了解核心即可;

三 入門搭建

3.1 依賴

springboot 2.3.0

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>

3.2 控制層

控制層定義一個(gè)接口,用于瀏覽器請(qǐng)求,請(qǐng)求成功后會(huì)返回 hello zszxz ;

@GetMapping('hello') public String hello() { return 'hello zszxz'; }

3.3 訪問登陸頁

啟動(dòng)項(xiàng)目

訪問 localhost:8080/hello 會(huì)自動(dòng)跳轉(zhuǎn)至localhost:8080/login

淺談spring security入門

可以看到 接口就被保護(hù)起來了,訪問接口需要進(jìn)行賬號(hào)密碼登陸;那么賬號(hào)密碼在哪里?看tiao控制臺(tái)打印的日志

如下所示,一串uuid就是登陸密碼;賬號(hào)是 user;賬號(hào),密碼輸入后就會(huì)跳轉(zhuǎn)至 localhost:8080/hello ;

.UserDetailsServiceAutoConfiguration :

Using generated security password: 8f5b8238-9b35-482f-b2a5-bf440af5271b

3.4 登陸原理解析

由日志打印可以看出 是在 UserDetailsServiceAutoConfiguration 類中發(fā)現(xiàn)的密碼;我們點(diǎn)擊該類發(fā)現(xiàn)有個(gè)

inMemoryUserDetailsManager 方法 里面有 properties.getUser(); 即獲取用戶,說明用戶信息來自 SecurityProperties ;

@Lazy public InMemoryUserDetailsManager inMemoryUserDetailsManager(SecurityProperties properties, ObjectProvider<PasswordEncoder> passwordEncoder) { User user = properties.getUser(); List<String> roles = user.getRoles(); return new InMemoryUserDetailsManager(new UserDetails[]{org.springframework.security.core.userdetails.User.withUsername(user.getName()).password(this.getOrDeducePassword(user, (PasswordEncoder)passwordEncoder.getIfAvailable())).roles(StringUtils.toStringArray(roles)).build()}); }

點(diǎn)擊 SecurityProperties 類其有個(gè)內(nèi)部靜態(tài)類User, 如下所示,賬號(hào)就是user, 密碼就是UUID; roles是個(gè)ArrayList;配置文件的前綴 “spring.security”

@ConfigurationProperties( prefix = 'spring.security')public class SecurityProperties {// 此處省略.........public static class User { private String name = 'user'; private String password = UUID.randomUUID().toString(); private List<String> roles = new ArrayList(); private boolean passwordGenerated = true;// 此處省略.........

現(xiàn)在我們通過配置文件的方式改變賬號(hào)密碼,在application.yml配置賬號(hào)密碼如下

spring: security: user: password: zszxz name: zszxz

重啟服務(wù),訪問http://localhost:8080/login 此時(shí) 的填入的表單賬號(hào)密碼就是zszxz; 而且發(fā)現(xiàn) 控制臺(tái)不再打印出uuid ;

3.5 springSecurity基本原理

仔細(xì)檢測(cè)日志信息, 可以發(fā)現(xiàn)springSecurity模塊的日志打印信息如下,其實(shí)現(xiàn)原理就是通過一串的Servlet過濾器進(jìn)行基本實(shí)現(xiàn),最后一個(gè)是FilterSecurityInterceptor 攔截器;

[org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@248deced, org.springframework.security.web.context.SecurityContextPersistenceFilter@677b8e13, org.springframework.security.web.header.HeaderWriterFilter@30331109, org.springframework.security.web.csrf.CsrfFilter@1bbae752, org.springframework.security.web.authentication.logout.LogoutFilter@64030b91, org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter@78faea5f,............... .intercept.FilterSecurityInterceptor@2b4c3c29

來自官網(wǎng)的圖片如下;FilterChain 中包含了 Filter 和 Servlet , 其能夠很快速的處理所有的URL請(qǐng)求; 當(dāng)然每個(gè)具體的Filter 功能都不同,以后可能提到,有興趣的讀者也可以參照官網(wǎng)學(xué)習(xí);

淺談spring security入門

比較重要的Filter

UsernamePasswordAuthenticationFilter DigestAuthenticationFilter BasicAuthenticationFilter ExceptionTranslationFilter FilterSecurityInterceptor

四 加密方式

官網(wǎng)有列出 基于 withDefaultPasswordEncoder 方式 創(chuàng)建 用戶,這樣并不是很推薦,原因是其賬號(hào)密碼會(huì)暴露在內(nèi)存和編譯的源碼中,并不是很安全,如果要用于生產(chǎn)環(huán)境還需要對(duì)密碼進(jìn)行一次hash或者加密;

UserBuilder users = User.withDefaultPasswordEncoder();User user = users .username('user') .password('password') .roles('USER') .build();User admin = users .username('admin') .password('password') .roles('USER','ADMIN') .build();

官方提供了好多種其它方式進(jìn)行加密:

DelegatingPasswordEncoder BCryptPasswordEncoder Argon2PasswordEncoder Pbkdf2PasswordEncoder SCryptPasswordEncoder

它們的使用方式都差不多,示例如下,在使用時(shí)替換對(duì)應(yīng)的加密對(duì)象即可;

SCryptPasswordEncoder encoder = new SCryptPasswordEncoder();String result = encoder.encode('myPassword');assertTrue(encoder.matches('myPassword', result));

五 參考文檔

https://docs.spring.io/spring-security/site/docs/5.3.3.BUILD-SNAPSHOT/reference/html5/

到此這篇關(guān)于淺談spring security入門 的文章就介紹到這了,更多相關(guān)spring security入門 內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
免费一区二区视频| 欧美成人基地 | 99久久精品网| 欧美日中文字幕| 日韩欧美一区二区三区在线观看 | 日韩一区欧美二区| 亚洲精品极品| 欧美国产专区| 亚洲成人不卡| 亚洲欧美久久久| 日韩二区三区四区| 欧美精品99| 99国产精品免费视频观看| 中文欧美日韩| 国产欧美日韩在线观看视频| 国产一二在线播放| 精品日韩毛片| 欧美日韩一视频区二区| 日本午夜大片a在线观看| 黑丝一区二区三区| 日韩va欧美va亚洲va久久| 国产精品www994| 女人av一区| 欧美日韩夜夜| 激情久久久久久久| 日韩不卡手机在线v区| 伊人久久视频| 午夜精品影视国产一区在线麻豆| 久久久国产精品入口麻豆| 欧美/亚洲一区| 青草久久视频| 精品国产免费人成网站| 一区二区亚洲视频| 日韩在线高清| 91成人精品观看| 亚洲午夜在线| 久久免费视频66| 日韩中文字幕不卡| 日本不卡免费高清视频在线| 亚洲免费成人av在线| 鲁鲁在线中文| 日韩激情啪啪| 婷婷综合社区| 成人日韩av| 天堂俺去俺来也www久久婷婷| 欧洲av不卡| 丝袜美腿亚洲色图| 国产v综合v| 国产精东传媒成人av电影| 国产三级一区| 婷婷综合激情| 国产欧美日韩精品一区二区三区| 日韩精品免费一区二区在线观看| 日韩av网站在线观看| 久久麻豆精品| 美女av一区| 亚洲精品在线二区| 伊人久久亚洲热| 都市激情国产精品| 国产精品最新自拍| 亚洲永久精品唐人导航网址| 日韩av二区| 久久黄色影视| 亚洲精品欧美| 免费欧美日韩| 激情久久久久久| 亚洲人成在线网站| 精品视频在线观看网站| 日韩精品中文字幕吗一区二区| 在线精品视频在线观看高清| 亚洲午夜天堂| 国产精品99在线观看| 国产麻豆一区二区三区| 综合激情视频| 视频在线观看91| 欧美日韩国产一区精品一区| 成人在线丰满少妇av| 久久不卡日韩美女| 久久国产精品免费一区二区三区| 亚洲影院天堂中文av色| 国产精品日韩| 羞羞答答国产精品www一本| 午夜久久免费观看| 国产在线日韩| 国产综合精品| 国产主播一区| 在线视频免费在线观看一区二区| 不卡一区2区| 影音国产精品| 国产精品毛片| 红桃视频国产一区| 香蕉国产精品| 日韩一区二区免费看| 欧美成人日韩| 国产农村妇女精品一二区| 欧美日韩国产免费观看| 欧美成人国产| 午夜在线视频一区二区区别| 91久久久久| 日韩影院免费视频| 日韩激情一区二区| 国产激情一区| 日韩精品dvd| 亚洲一级特黄| 蜜臀av在线播放一区二区三区| 亚洲综合色婷婷在线观看| 中文字幕一区二区精品区| 亚洲三级视频| 国产精品日韩精品在线播放| 嫩呦国产一区二区三区av| 精品国产亚洲一区二区三区| 日韩国产欧美一区二区| 不卡av一区二区| 免费观看日韩电影| 国产日韩欧美| 激情国产在线| 99国产一区| 亚洲2区在线| 久久伊人国产| 激情婷婷欧美| 日韩av电影一区| 精品久久国产一区| 欧美成人基地| 亚洲三区欧美一区国产二区| 国产精品4hu.www| 欧美日韩色图| 日本va欧美va瓶| 一区二区三区四区日本视频| 亚洲色诱最新| 国产精品第十页| 九色精品91| 国产亚洲一卡2卡3卡4卡新区| 老司机精品视频网| 91九色精品| 国产乱人伦丫前精品视频| 日韩一区二区在线免费| 午夜电影亚洲| 国产欧美日韩免费观看| 国产超碰精品| 日韩精品成人| 日韩一区二区三区免费播放| 亚洲丝袜美腿一区| 国产粉嫩在线观看| 天海翼精品一区二区三区| 四虎成人av| 蜜桃视频第一区免费观看| 麻豆精品一区二区综合av| 亚洲一级网站| 久久av国产紧身裤| 国产日韩专区| 国产精品高颜值在线观看| 亚洲中字黄色| 国产a亚洲精品| 亚洲最新av| 久久网站免费观看| 国产精品亚洲欧美一级在线| 亚洲二区视频| 国产免费播放一区二区| 国产毛片一区| 免费福利视频一区二区三区| 日韩精品亚洲一区二区三区免费| 人人精品亚洲| 国产精品玖玖玖在线资源| 欧美一级精品| 久久精品欧洲| 日韩精品欧美精品| 亚洲调教视频在线观看| 美女视频黄久久| 午夜a一级毛片亚洲欧洲| 天堂√8在线中文| 国产激情精品一区二区三区| 伊人久久一区| 黄色成人在线网址| 三级在线看中文字幕完整版| 7777精品| 亚洲人成网77777色在线播放| 欧美sss在线视频| 国产一区二区三区成人欧美日韩在线观看 | 日韩大片免费观看| 婷婷成人av| 国产美女一区| 精品中文一区| 成人看片网站| 丁香六月综合| 国产精品国产一区| 国产精品三p一区二区| 亚洲精品无吗| 视频精品一区二区| 久久女人天堂| 日韩精品欧美| 亚洲精品国产精品粉嫩| 久久一区二区三区喷水| 国产不卡精品| 国产一区二区三区亚洲综合| 一区免费在线| 免费欧美日韩| 蜜芽一区二区三区| 亚洲一区二区动漫| 亚洲欧美不卡| 蜜桃久久精品一区二区|