freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

acegiv104中文參考手冊(cè)-wenkub

2022-11-04 12:52:03 本頁(yè)面
 

【正文】 textHolder和 Authentication之間有一個(gè)媒介對(duì)象。 你可以在你的應(yīng)用程序中的任何地方使用下述的代碼塊: java 代碼 1. Object obj = ().getAuthentication().getPrincipal()。大部分的應(yīng)用程序不需要修改默認(rèn)值,不過(guò)如果你需要,那么請(qǐng)查看 SecurityContextHolder的JavaDocs 獲取更多信息。這可以通過(guò) 來(lái)實(shí)現(xiàn)。 有些應(yīng)用程序由于使用線(xiàn)程的方式而并不是完全適用 ThreadLocal。在這里存儲(chǔ)了當(dāng)前應(yīng)用的安全上下文( security context),包括正在使用應(yīng)用程序的 principal 的詳細(xì)信息。 . 共享組件 讓我們來(lái)看看 Acegi Security中最重要的一些共享組件。因?yàn)?Acegi Security致力于以一種自包含的方式運(yùn)行,因此不需要在 JRE中放置任何特殊的配置文件。主要的含義是主版本號(hào)( MAJOR)是不兼容的, API大規(guī)模升級(jí)。在支持論壇上有數(shù)以千計(jì)的帖子。 隨后, Acegi Security加入了認(rèn)證服務(wù)。 在早期,該項(xiàng)目自身并布具備任何認(rèn)證模塊。 有鑒于此,這個(gè)簡(jiǎn)單的安全實(shí)現(xiàn)雖然構(gòu)建了但是并沒(méi)有發(fā)布。 Acegi Security提供了所有這些重要領(lǐng)域的完備功能,我們將在本手冊(cè)的后面介紹。為了幫助你實(shí)現(xiàn)這些目標(biāo), Acegi Security完全支持自動(dòng) “通道安全 ”(channel security),以及集成 Jcaptcha來(lái)檢測(cè)是否是真正人類(lèi)用戶(hù)。有時(shí)候你需要根據(jù) principal 和應(yīng)用交互的方式來(lái)應(yīng)用不同的安全措施。這樣無(wú)論他們的終端客戶(hù)需要什么,他們都可以快速集成到他們 的系統(tǒng)中,不用花很多工夫或者讓終端客戶(hù)改變環(huán)境。這些認(rèn)證模塊絕大多數(shù)是第三方提供,或者相關(guān)的標(biāo)準(zhǔn)組織開(kāi)發(fā)的,例如 Inter Engineering Task Force。 “授權(quán) ”指判定一個(gè) principal 能否在你的系統(tǒng)中執(zhí)行某個(gè)操作。使用 Acegi Security解決了這些問(wèn)題,并且為你提供了很多其他有用的,完全可定制的安全特性。熟悉 Spring,尤其是依賴(lài)注射原理,會(huì)極大的幫助你快速掌握 Acegi Security。在手冊(cè)的這一部分,在檢視這些規(guī)劃和執(zhí)行 Acegi Security集成所必須的核心要 素之前,我們先介紹 Acegi Security。手冊(cè)的其余部分按照傳統(tǒng)的手冊(cè)方式編排,需要一定的基礎(chǔ)才能閱讀。電子商務(wù)應(yīng)用和售賣(mài)軍用自動(dòng)工具的公司的需求不同。 當(dāng)然, 你要正確對(duì)待上述提到的每個(gè)安全層,以及包含于每個(gè)層的管理因素。 接下來(lái)你要防止針對(duì)系統(tǒng)的拒絕服務(wù)和暴力攻擊。在底層,你要處理傳輸入安全和系統(tǒng)認(rèn)證,減少 “中間人攻擊 ”( maninthemiddle attacks)。正如你在本手冊(cè)中看到的那樣,我們嘗試為您提供有用的,高可配置的安全系統(tǒng)。 安全是一個(gè)永無(wú)止境的目標(biāo),獲取一個(gè)全面的,系統(tǒng)級(jí)的實(shí)現(xiàn)方式是至關(guān)重要的。接下來(lái)你要使用防火墻,結(jié)合 VPN或者 IP安全來(lái)確保只有認(rèn)證過(guò)的系統(tǒng)能夠嘗試連接。入侵檢測(cè)系統(tǒng)在檢測(cè)和應(yīng)對(duì)攻擊方面尤其有用,這些系統(tǒng)可以實(shí)時(shí)屏蔽惡意 TCP/IP地址。這樣的管理因素具體包括:安全公告監(jiān)測(cè),補(bǔ)丁,人工診斷,審計(jì),變更管理,工程管理系統(tǒng),數(shù)據(jù)備份,災(zāi)難恢復(fù),性能評(píng)測(cè),負(fù)載監(jiān)測(cè),集中日志,應(yīng)急反應(yīng)程序等等。這些客戶(hù)化的需求使得應(yīng)用安全顯得有趣,富有挑戰(zhàn)性而且物有所值。 我們希望您會(huì)覺(jué)得手冊(cè)有用,并且歡迎您提供反饋意見(jiàn)和建議。 第一章 . 簡(jiǎn)介 . Acegi Security是什么 ? Acegi Security為基于 J2EE的企業(yè)軟件應(yīng)用提供全面的安全服務(wù)。 人們使用 Acegi Security有很多種原因,不過(guò)通常吸引他們到這個(gè)項(xiàng)目的原因是他們?cè)?J2EE的 Servlet Specification 或者 EJB Specification中找不到迫切需要的典型企業(yè)應(yīng)用場(chǎng)景。 如你所知,安全包含兩個(gè)主要操作。在到達(dá)授權(quán)判斷之前, principal 的的身份認(rèn)證已經(jīng)由認(rèn)證過(guò)程執(zhí)行過(guò)了。作為補(bǔ)充, Acegi Security自己也提供了一些認(rèn)證功能。如果 Acegi Security System for Spring的 7個(gè)認(rèn)證模塊還沒(méi)有滿(mǎn)足你的需求的話(huà), Acegi Security是一個(gè)開(kāi)放的系統(tǒng),很容易寫(xiě)你自己的認(rèn)證機(jī)制。例如,你可能為了防止密碼被竊取 ,或者防止終端用戶(hù)受到 “中間人 ”攻擊,需要保證到達(dá)的是請(qǐng)求通過(guò) HTTPS的。 Acegi Security不僅提供了認(rèn)證功能,而且提供了完備的授權(quán)功能。 . 歷史 Acegi Security始于 2020年晚期,當(dāng)時(shí)在 Spring Developers 郵件列表中有人提問(wèn)是否有人考慮提供一個(gè)基于 Spring的安全實(shí)現(xiàn)。幾周以后, Spring社區(qū)的其他成員詢(xún)問(wèn)了安全框架,代碼就被提供給了他們。認(rèn)證過(guò)程依賴(lài)容器管理安全( Container Managed Security)而 Acegi Security注重授權(quán)。大約一年后, Acegi Security成為了一個(gè) Spring Framework官方子項(xiàng)目。 14位開(kāi)發(fā)人員專(zhuān)職開(kāi)發(fā),一個(gè)活躍的社區(qū)也定期共享補(bǔ)丁并支持他們的同儕。副版本號(hào)( MINOR)在源文件和可執(zhí)行版和老版本保持兼容,補(bǔ)丁版本號(hào)( PATCH)則意味著向前和向后的完全兼容 ”。特別無(wú)需配置 Java Authentication and Authorization Service (JAAS)策略文件或者將 Acegi Security放置到通用的 classpath路徑中。所謂共享組件是指在框架中處于核心地位,系統(tǒng)脫離了它們之后就不能運(yùn)行。SecurityContextHolder默認(rèn)使用 ThreadLocal 來(lái)存儲(chǔ)這些詳細(xì)信息,這意味著即便安全上下文( security context)沒(méi)有被作為一個(gè)參數(shù)顯式傳入,它仍然是可用的。例如, Swing客戶(hù)端可能需要一個(gè) Java Virtual Machine 中的所有線(xiàn)程都使用同樣的安全上下文( security context)。你可以通過(guò)兩種方法來(lái)修改默認(rèn)的。 我們?cè)?SecurityContextHolder中存儲(chǔ)當(dāng)前和應(yīng)用程序交互的 principal 的詳細(xì)信息。 2. if (obj instanceof UserDetails) { 3. String username = ((UserDetails)obj).getUsername()。() 方法實(shí)際上返回一個(gè)SecurityContext。 從上述的代碼片段可以看出的另一個(gè)問(wèn)題是你可以從一個(gè) Authentication對(duì)象中獲取一個(gè) principal。可以把 UserDetails 看作是你的用戶(hù)數(shù)據(jù)庫(kù)和 Acegi Security在 SecurityContextHolder所需要的東西之間的一個(gè)適配器( adapter)。 Acegi Security提供的大多數(shù)認(rèn)證提供器將部分認(rèn)證過(guò)程委派給UserDetailsService。要記得這樣做的好處,不論你的 UserDetailsService 返回什么,它總是可以從 SecurityContextHolder中獲取,象上面的代碼顯示的那樣。這些權(quán)限通常是 “角色 ”,例如ROLE_ADMINISTRATOR 或者 ROLE_HR_SUPERVISOR。 通常 GrantedAuthority對(duì)象都是應(yīng)用范圍的權(quán)限。 最后,但不是不重要,你有時(shí)候需要在 HTTP 請(qǐng)求之間存儲(chǔ) SecurityContext?;诎踩颍阌肋h(yuǎn)都不要直接和 HttpSession交互。 ? HttpSessionContextIntegrationFilter, 在 web請(qǐng)求之間把SecurityContext 存儲(chǔ)在 HttpSession中。 ? UserDetailsService,用傳入的 String類(lèi)型的 username(或者認(rèn)證 ID,或類(lèi)似)來(lái)創(chuàng)建一個(gè) UserDetails。讓我們先從 Acegi Security完全自行管理管理web安全的角度來(lái)探究一下認(rèn)證,這也是最復(fù)雜和最通用的情形。這個(gè)回應(yīng)可能是一個(gè) HTTP回應(yīng)代碼,或者重定向到一個(gè)特定的網(wǎng)頁(yè)??赡苁且粋€(gè)包含了你填寫(xiě)的表單內(nèi)容的HTTP POST,或者一個(gè)包含你認(rèn)證詳細(xì)信息的 HTTP header。 7.你引發(fā)認(rèn)證的那個(gè)請(qǐng)求會(huì)被重試。 在 Acegi Security中,對(duì)應(yīng)上述的步驟,有對(duì)應(yīng)的類(lèi)。我們將會(huì)在下一部分討論AbstractSecurityInterceptor,現(xiàn)在我們只需要知道它產(chǎn)生 Java異常,并且對(duì)于 HTTP或者如何認(rèn)證一個(gè) principal 一無(wú)所知 。每個(gè)主流的認(rèn)證系統(tǒng)都有它自己的AuthenticationEntryPoint實(shí)現(xiàn),負(fù)責(zé)執(zhí)行第 3步中描述的動(dòng)作。當(dāng)認(rèn)證信息從客戶(hù)代理收集過(guò)來(lái)以后,一個(gè) “認(rèn)證請(qǐng)求( Authentication request) ”對(duì)象被創(chuàng)建,并發(fā)送到 AuthenticationProvider。還記得我們的好朋友 UserDetails 和 UserDetailsService 吧?如果沒(méi)有,回到前一部分 重新回憶一下。 當(dāng)認(rèn)證機(jī)制( authentication mechanism)取回組裝完全的 Authentication對(duì)象后,它將會(huì)相信請(qǐng)求是有效的,將 Authentication放到SecurityContextHolder中,并且將原始請(qǐng)求取回(上述第 7步)。 你可以(很多用戶(hù)確實(shí))實(shí)現(xiàn)自己的過(guò)濾器( filter)或者 MVC控制器( controller)來(lái)提供和不是基于 Acegi Security的認(rèn)證系統(tǒng)交互。你所需要做的是寫(xiě)一個(gè)過(guò)濾器(或等價(jià)物)從某處讀取第三方用戶(hù)信息,構(gòu)建一個(gè) Acegi Security式的Authentication對(duì)象,把它放到 SecurityContextHolder中。 Acegi Security對(duì)方法調(diào)用和web請(qǐng)求都提供 around advice。這是因?yàn)樵诋?dāng)前的 J2EE應(yīng)用中,服務(wù)層包含了大多數(shù)的業(yè)務(wù)邏輯(聲明,作者不贊成這種設(shè)計(jì),反而支持正確封裝的領(lǐng)域模型以及 DTO, assembly, facade 以及 transparent persistence patterns,而不是當(dāng)前主流的貧血模型,我們將在這里討論)。你將 0個(gè), 1個(gè),2個(gè)或者 3個(gè)這些方法一起使用。重要的一點(diǎn)是,如果一個(gè) principal通過(guò)認(rèn)證,當(dāng) AbstractSecurityInterceptor執(zhí)行的時(shí)候,SecurityContextHolder中要包含一個(gè)有效的 Authentication。他們通常針對(duì)AbstractSecurityInterceptor使用 XML進(jìn)行配置。在某些不常見(jiàn)的情形下這將非常有用,例如服務(wù)層的方法需要用另一種標(biāo)識(shí)(身份)來(lái)調(diào)用遠(yuǎn)程系統(tǒng)。我們可能要這樣做,因?yàn)槭跈?quán)判斷不能在安全對(duì)象調(diào)用途中執(zhí)行。(譯注:原手冊(cè)里的圖畫(huà)的太丑陋了,我用 jude重新畫(huà)了一遍) ![if gte vml 1]v:shapetype id=_x0000_t75 coordsize=21600,21600 o:spt=75 o:preferrelative=t path=m45l41191195xe filled=f stroked=f v:stroke joinstyle=miter / v:formulas v:f eqn=if lineDrawn pixelLineWidth 0 / v:f eqn=sum 0 1 0 / v:f eqn=sum 0 0 1 / v:f eqn=prod 2 1 2 / v:f eqn=prod 3 21600 pixelWidth / v:f eqn=prod 3 21600 pixelHeight / v:f eqn=sum 0 0 1 / v:f eqn=prod 6 1 2 / v:f eqn=prod 7 21600 pixelWidth / v:f eqn=sum 8 21600 0 / v:f eqn=prod 7 21600 pixelHeight / v:f eqn=sum 10 21600 0 / /v:formulas v:path o:extrusionok=f gradientshapeok=t o:connecttype=rect / o:lock v:ext=edit aspectratio=t / /v:shapetypev:shape id=_x0000_i1025 type=_x0000_t75 style=39。例如,可能構(gòu)建一個(gè)新的安全對(duì)象安全調(diào)用一個(gè)消息系統(tǒng)。我們探究了共享組件,認(rèn)證過(guò)程,以及對(duì) “安全對(duì)象 ”的通用授權(quán)概念。如果你的應(yīng)用是為英文用戶(hù)設(shè)計(jì)的,那么你什么都不用做,因?yàn)?Acegi Security的所有消息默認(rèn)都是英文的。 在 (譯注: xx代表版本號(hào))的 中包含了一個(gè) 文件。如果你不注冊(cè)一個(gè)消息源, Acegi Security仍然可以正常工作,它會(huì)用回硬編碼的英文消息。 為了完善關(guān)于本地化的討論需要知道 Spring的 ThreadLocal 。
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1