做粉絲網(wǎng)站會(huì)侵權(quán)嗎如何快速推廣網(wǎng)上國(guó)網(wǎng)
前言:
抽象Spring Security3.0上一篇
在上一篇中,我們完成了對(duì)Security導(dǎo)入,快速入門(mén),和對(duì)自動(dòng)配置的簡(jiǎn)單驗(yàn)證
對(duì)登錄流程的分析和Security基本原理
補(bǔ)充:
先解決上一篇留下的問(wèn)題,端口和端點(diǎn)的區(qū)別
端點(diǎn)的英文是end-point
端口的英文是port
在官方文檔中,任何端點(diǎn)官方定義,點(diǎn)進(jìn)去后↓
?????????????????????????????????????????????????????????????????????????大標(biāo)題叫授權(quán) HttpServletRequest
端點(diǎn)的定義問(wèn)題就解決了,我們采用官方對(duì)端點(diǎn)的定義是HttpServletRequest
端點(diǎn)是個(gè)名,它的核心所描述的是HttpServletRequest,一種標(biāo)準(zhǔn)下請(qǐng)求路徑
端口所描述的是什么呢?
上一篇說(shuō)過(guò)用bug補(bǔ)充定義
這期解釋下怎么用bug補(bǔ)充,而不是單單看bug
首先這個(gè)bug需要可以復(fù)刻,不能復(fù)刻你連怎么發(fā)生的都不知道
其次就是日志內(nèi)容,idea里的日志和瀏覽器F12的網(wǎng)路配置要會(huì)看
還記得我們是怎么找到端口的嗎?
拜托,你肯定早忘了,所以下面的內(nèi)容是讓你回憶起如何找到端口,并通過(guò)端口進(jìn)入Security官方提供的登錄頁(yè)面
第一步,啟動(dòng)項(xiàng)目
第二步,查看日志,找到端口的英文單詞
這兩個(gè)日志對(duì)應(yīng)的內(nèi)容是一樣的
然后我們用這個(gè)端口去訪問(wèn)Security的頁(yè)面
127.0.0.1:8084(port)? /? localhost:8084(port)
第一步,隨便打開(kāi)一個(gè)瀏覽器
第二步,輸入127.0.0.1:8084(port)? /? localhost:8084(port) 其中一個(gè)
ps:確保你的項(xiàng)目是啟動(dòng)的
它會(huì)自動(dòng)跳轉(zhuǎn)到login端點(diǎn)
試試看, 把port刪掉,再運(yùn)行
回車(chē)
哦!
拒絕訪問(wèn)了,再加上它port,注意是冒號(hào):后面跟port
這個(gè)東西有它可以訪問(wèn)端點(diǎn),沒(méi)有它不能訪問(wèn)端點(diǎn),這個(gè)像什么呢?
鑰匙~
不知道你們有沒(méi)有玩過(guò)這種游戲,就是那種可以選節(jié)點(diǎn)然后觸發(fā)不同劇情的游戲
開(kāi)局,就是我們使用端口進(jìn)入游戲,后面的每個(gè)節(jié)點(diǎn)步驟就是端點(diǎn)
幾乎所有游戲都可能這么去理解,開(kāi)啟客戶(hù)端調(diào)用端口,選擇模式選用端點(diǎn)
想更進(jìn)一步了解的可以看看這篇文章訪問(wèn)百度的過(guò)程詳解_訪問(wèn)百度網(wǎng)站查詢(xún)資料時(shí),計(jì)算機(jī)網(wǎng)絡(luò)經(jīng)過(guò)了哪些步驟來(lái)獲取資料?-CSDN博客
總結(jié):端點(diǎn)與端口是鑰匙和門(mén)的關(guān)系
正片:
到了這里Security官方的入門(mén)已經(jīng)完成了,進(jìn)入下一頁(yè),才怪
@EnableWebSecurity
@Configuration
public class DefaultSecurityConfig {@Bean@ConditionalOnMissingBean(UserDetailsService.class)InMemoryUserDetailsManager inMemoryUserDetailsManager() { String generatedPassword = // ...;return new InMemoryUserDetailsManager(User.withUsername("user").password(generatedPassword).roles("ROLE_USER").build());}@Bean@ConditionalOnMissingBean(AuthenticationEventPublisher.class)DefaultAuthenticationEventPublisher defaultAuthenticationEventPublisher(ApplicationEventPublisher delegate) { return new DefaultAuthenticationEventPublisher(delegate);}
}
這串代碼還沒(méi)看呢。。。
Spring Boot Security Auto Configuration
Spring Boot安全自動(dòng)配置? - - - - -? ?這個(gè)是官方的小標(biāo)題
配置的內(nèi)容是什么?對(duì)應(yīng)上面的那一大坨Hello Spring Security :: Spring Security Reference (springdoc.cn)官方文檔
好了,現(xiàn)在才是真正意義上完成了第二步(了解Security的自動(dòng)配置)
第三步(認(rèn)識(shí)架構(gòu))
第一步,還是打開(kāi)官方文檔
架構(gòu) :: Spring Security Reference (springdoc.cn)
第二步,看大標(biāo)題
架構(gòu)
第三步,開(kāi)始看內(nèi)容
本節(jié)討論了 Spring Security 在基于 Servlet 的應(yīng)用程序中的高級(jí)架構(gòu)。我們?cè)趨⒖假Y料中的?認(rèn)證(Authentication)、授權(quán)(Authorization)?和?防止漏洞?部分建立了這種高層次的理解。
這段話的核心只有一個(gè),Spring Security 在基于Servlet(Java Web)的應(yīng)用程序中的高級(jí)架構(gòu)。只要看懂了這句話,整篇的文章易如反掌
先拆分:
原文:This section discusses Spring Security’s high-level architecture within Servlet based applications
Spring Security
Service應(yīng)用程序
高級(jí)架構(gòu)
將他們?cè)诮M合一次
Spring Security基于Service應(yīng)用程序的高級(jí)架構(gòu)
這個(gè)翻譯一點(diǎn)都不信達(dá)雅(吐槽)
This section discusses Spring Security’s high-level architecture within Servlet based applications
看看原文,我們來(lái)一下離譜的中文翻譯版本
本節(jié)將討論 Spring Security 的高層架構(gòu)?基于?Servlet 的應(yīng)用程序
這些就沒(méi)那么繞了,把上面的圖片更新一下
奧~原來(lái)這句話的核心只有一個(gè),那就是Z高級(jí)架構(gòu)(high-level architecture)
所謂的Spring Security,Servlet 的應(yīng)用程序 只不過(guò)是對(duì)高層架構(gòu)的形容,障眼法
high-level architecture? 高層架構(gòu),哇哦~
單看中文好簡(jiǎn)單!一點(diǎn)都不難~
拷貝啦,真的好難啊,又是高級(jí)架構(gòu)又是高層架構(gòu),這他丫誰(shuí)懂啊,家人們!
有時(shí)候真經(jīng)只有寥寥幾字但是卻包含了全部?jī)?nèi)容,實(shí)際上high-level architecture這個(gè)詞是一個(gè)計(jì)算機(jī)應(yīng)用術(shù)語(yǔ),是一個(gè)專(zhuān)有名詞——高層體系結(jié)構(gòu)才是它最貼近原文的翻譯
高層體系結(jié)構(gòu)(High Level Architecture,HLA)是從體系結(jié)構(gòu)上建立這樣一個(gè)框架,它能盡量涵蓋M&S領(lǐng)域中所涉及的各種不同類(lèi)型的仿真系統(tǒng),并利于它們之間的互操作和重用。同時(shí)能適應(yīng)不斷發(fā)展中的新技術(shù),來(lái)滿(mǎn)足復(fù)雜大系統(tǒng)的仿真需要。對(duì)采用HLA體系結(jié)構(gòu)的仿真系統(tǒng),仿真系統(tǒng)的運(yùn)行和仿真成員之間的交互和協(xié)調(diào)都是通過(guò)運(yùn)行支撐系統(tǒng)RTI (Run Time Infrastructure)來(lái)實(shí)現(xiàn)的。?RTI的實(shí)現(xiàn)及其運(yùn)行的性能好壞,是分布交互仿真系統(tǒng)實(shí)現(xiàn)的關(guān)鍵。
就這么一段,沒(méi)錯(cuò)就這么一段,這么一看貌似更復(fù)雜了,方向選錯(cuò)路白走。
很顯然這個(gè)描述需要有一定悟性,我悟性有點(diǎn)低,悟不出,所以換個(gè)方向,我們直接用他們的總結(jié),如果您有水平,可以試著從這段句話分析出總結(jié)
HLA體系結(jié)構(gòu)是一個(gè)開(kāi)放的、支持面向?qū)ο蟮捏w系結(jié)構(gòu)。它采用面向?qū)ο蟮姆椒▽W(xué)來(lái)分析系統(tǒng),建立不同層次和粒度的對(duì)象模型,從而促進(jìn)了仿真系統(tǒng)和仿真部件的重用。?HLA的關(guān)鍵組成部分是接口規(guī)范,它定義了在一個(gè)聯(lián)邦演練中,支持聯(lián)邦成員通過(guò)RTI實(shí)現(xiàn)成員之間相互交互、協(xié)調(diào)和協(xié)同作業(yè)的標(biāo)準(zhǔn)服務(wù)。它的最顯著的特點(diǎn)就是通過(guò)提供通用的、相對(duì)獨(dú)立支撐服務(wù)程序,將應(yīng)用層同其底層支撐環(huán)境功能分離開(kāi),即將具體的仿真功能實(shí)現(xiàn)、仿真運(yùn)行管理和底層傳輸三者分離開(kāi)來(lái),隱蔽了各自的實(shí)現(xiàn)細(xì)節(jié),可以使各部分相對(duì)獨(dú)立的開(kāi)發(fā),最大程度地利用各自領(lǐng)域的最新技術(shù)來(lái)實(shí)現(xiàn)標(biāo)準(zhǔn)的功能和服務(wù),適應(yīng)新技術(shù)的發(fā)展。同時(shí),可實(shí)現(xiàn)應(yīng)用系統(tǒng)的即插即用,易于新的仿真系統(tǒng)的集成和管理,并針對(duì)不同的用戶(hù)需求和不同的應(yīng)用目的,實(shí)現(xiàn)聯(lián)邦快速、靈活的組合和重配置,保證了聯(lián)邦范圍內(nèi)的互操作和重用。
RTI作為聯(lián)邦執(zhí)行的核心,其功能類(lèi)似于某種特殊目的的分布式操作系統(tǒng),跨計(jì)算機(jī)平臺(tái)、操作系統(tǒng)和網(wǎng)絡(luò)系統(tǒng),為聯(lián)邦成員提供運(yùn)行所需的服務(wù)。?RTI提供六種服務(wù),即聯(lián)邦管理、聲明管理、對(duì)象管理、所有權(quán)管理、時(shí)間管理和數(shù)據(jù)分布管理等服務(wù)。
哦↑烏↓
這段特點(diǎn)就清晰多了
HLA體系結(jié)構(gòu)是一個(gè)開(kāi)放的、支持面向?qū)ο蟮捏w系結(jié)構(gòu)。
我們的Servlet 的應(yīng)用程序就是一個(gè)體系結(jié)構(gòu),剩下的內(nèi)容都在描述這個(gè)體系結(jié)構(gòu)是怎么樣的
HLA的關(guān)鍵組成部分是接口規(guī)范,它定義了在一個(gè)聯(lián)邦演練中,支持聯(lián)邦成員通過(guò)RTI實(shí)現(xiàn)成員之間相互交互、協(xié)調(diào)和協(xié)同作業(yè)的標(biāo)準(zhǔn)服務(wù)。
這樣看太抽象了,換個(gè)方向
到了這里,站長(zhǎng)感覺(jué)這個(gè)簡(jiǎn)介也不算難,還真可以通過(guò)簡(jiǎn)介退出結(jié)論
這期先到這里