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

正文內(nèi)容

基于net的單點(diǎn)登錄sso解決方案畢業(yè)設(shè)計(jì)論文(參考版)

2025-05-15 23:35本頁面
  

【正文】 SSOLoginPage=:8080/SSOAuth/,我們配置了它們的值: private static String cookiefilepath = 。 private String SSOLoginPage = 。 private String SSOServiceURL = 。public class DesktopSSOLoginModule implements LoginModule {JAAS中主要的是登錄模塊(LoginModule)。在這個模塊的作用下,只有test用戶(密碼是12345)才能登錄。 DesktopSSO {現(xiàn)在在流行的J2EE和其他 Java的產(chǎn)品中,用戶的身份認(rèn)證都是通過JAAS來完成的。使用JAAS作為Java應(yīng)用的安全認(rèn)證模塊有很多好處,最主要的是不需要修改源代碼就可以更換認(rèn)證方式。桌面SSO的樣例使用了JAAS(要了解JAAS的詳細(xì)的信息請參考)。這時候再打開Mozilla瀏覽器,訪問以前提到的那兩個WEB應(yīng)用,會發(fā)現(xiàn)只要桌面應(yīng)用如果登錄過,Web應(yīng)用就不用再登錄了,而且能顯示剛才登錄的用戶的信息。這對一些行業(yè)有著不小的吸引力。再訪問的時候,又需要重新登錄了。如果運(yùn)行第一個命叫“GameSystem”的程序,提示需要輸入用戶名和密碼:b) java 運(yùn)行程序需要放置在當(dāng)前運(yùn)行的路徑下,否則需要加上java的路徑全名。a) 如果是在unix下,各個jar文件需要用“:”來隔開,而不是“。,本樣例提供了兩個,讀者可以任意選擇其中一個(也可以都選),再重新運(yùn)行程序,查看登錄認(rèn)證的變化b) SSOLoginPage要指向WebSSO部署的身份認(rèn)證的登錄頁面URLbin目錄下有一些腳本文件和配置文件,:,里面有兩個目錄bin和lib。c) 。a) WEBSSO的身份認(rèn)證應(yīng)用應(yīng)該正在運(yùn)行,因?yàn)槲覀冊谧烂鍿SO當(dāng)中需要用到統(tǒng)一的認(rèn)證服務(wù)從網(wǎng)站可以下載一個簡單的桌面SSO的樣例()和全部源碼(),雖然簡單,但是它具有桌面SSO大多數(shù)的功能,稍微加以擴(kuò)充就可以成為自己的解決方案。在WEBSSO中,登錄的憑據(jù)是靠瀏覽器的cookie機(jī)制來完成的;在桌面應(yīng)用中,可以將登錄的憑證保存到任何地方,只要所有SSO的桌面應(yīng)用都共享這個憑證。從WEBSSO的概念延伸開,我們可以把SSO的技術(shù)拓展到整個桌面的應(yīng)用,不僅僅局限在瀏覽器。而事實(shí)上,這些靜態(tài)元素沒有什么安全上的需求,應(yīng)該在filter中進(jìn)行判斷,不去效驗(yàn)這些請求,性能會好很多。例如在本樣例中,如果將URL映射從“.jsp”改成“/*”,也就是說filter對所有的請求都起作用,整個應(yīng)用會變得非常慢。這一系列任務(wù)是比較消耗資源的,特別是驗(yàn)證cookie有效性是一個遠(yuǎn)程的的調(diào)用,來訪問SSOAuth的認(rèn)證服務(wù),有一定的延時。另外,F(xiàn)ilter的性能問題也是需要重視的方面。Sun的Access Manager就具有跨域的SSO的功能。這是因?yàn)闉g覽器在訪問Web服務(wù)器的時候,僅僅會帶上和當(dāng)前web服務(wù)器具有相同domain名稱的那些cookie。在將Filter應(yīng)用到Web應(yīng)用的時候,需要對容器上的每一個應(yīng)用都要做相應(yīng)的修改,重新部署。我們編寫的Filter只能用于J2EE的應(yīng)用,而對于大量非Java的Web應(yīng)用,卻無法提供SSO服務(wù)。還有很多其他的認(rèn)證模式都是商務(wù)應(yīng)用不可缺少的,因此SSO的解決方案應(yīng)該包括各種認(rèn)證的模式,包括數(shù)字證書,Radius, SafeWord ,MemberShip,SecurID等多種方式。當(dāng)前所提供的登錄認(rèn)證模式只有一種:用戶名和密碼,而且為了簡單,將用戶名和密碼放在內(nèi)存當(dāng)中。5 當(dāng)前方案的功能和性能局限性另外在OpneSSO ()的架構(gòu)指南中也給出了部分安全措施的解決方案。當(dāng)其中一個應(yīng)用的安全性不好,其他所有的應(yīng)用都會受到安全威脅另外對cookie的效驗(yàn)也過于簡單,并不去檢查發(fā)送cookie的來源究竟是不是cookie最初的擁有者,也就是說無法區(qū)分正常的用戶和仿造cookie的用戶。一些網(wǎng)絡(luò)探測工具(如sniff, snoop,tcpdump等)可以很容易捕獲到cookie的數(shù)值。cookie的效驗(yàn)和保護(hù)這樣的cookie很容易被偽造和猜測。cookie的長度和復(fù)雜度因?yàn)椴捎昧薙SO,在網(wǎng)絡(luò)上傳遞密碼的次數(shù)減少,風(fēng)險降低是顯然的,但是當(dāng)前的方案卻有其他的安全風(fēng)險。當(dāng)前這個WEBSSO的方案是一個比較簡單的雛形,主要是用來演示SSO的概念和說明SSO技術(shù)的實(shí)現(xiàn)方式。 } } ()。 GetMethod get = new GetMethod(SSOServiceURL+authAction+cookievalue)。cookiename=。 } } return result。 (get)。 try { HttpClient client = new HttpClient()。 String authAction = ?action=authcookieamp。 private String SSOService(String cookievalue) throws IOException {下面還有幾個主要的函數(shù)需要說明:urlpattern*.jsp/urlpatternfiltermapping在配置文件中,有下面的一個節(jié)點(diǎn)表示了此filter的URL映射關(guān)系:只攔截所有的jsp請求。doFilter()方法的邏輯也是非常簡單的,在接收到請求的時候,先去查找是否存在期望的cookie值,如果找到了,就會調(diào)用SSOService(cookieValue)去效驗(yàn)這個cookie的有效性。 } } if (problem instanceof IOException) throw (IOException)problem。 } problem = t。 } catch(Throwable t) { Throwable problem = null。 (SSOLoginPage+?goto=+url)。 if (debug) log(logout action!)。 } else if ((logout) 1) {//logout服務(wù) if (debug) log(found cookies!)。 cookieValue = diskCookies[i].getValue()。 if(diskCookies[i].getName().equals(cookieName)){ i++) { for (int i = 0。 if (diskCookies != null) { String cookieValue =。 //檢查請求的head是否有需要的cookie String qstring = ()。 String result=failed。 HttpServletRequest request = (HttpServletRequest) req。下面看看filter的主體方法doFilter():另外一點(diǎn)就是由于身份認(rèn)證的服務(wù)調(diào)用是要通過協(xié)議來調(diào)用的(在本樣例中是這樣設(shè)計(jì)的,讀者完全可以設(shè)計(jì)自己的身份服務(wù),使用別的調(diào)用協(xié)議,如RMI或SOAP等等),所有筆者引用了apache的mons工具包(詳細(xì)信息情訪問apache 的網(wǎng)站),其中的“client”可以大大簡化調(diào)用的編程。以上的初始化的源代碼有兩點(diǎn)需要說明:一是有兩個需要配置的參數(shù)SSOServiceURL和SSOLoginPage。..... } SSOServiceURL = (SSOServiceURL)。 log(SSOFilter:Initializing filter)。 if (debug) { if (filterConfig != null) { private String SSOServiceURL= :8080/SSOAuth/SSOAuth。 private FilterConfig filterConfig = null。public class SSOFilter implements Filter {import 。import .*。import .*。import .*。import .*。import .*。import .*。import .*。import .*。package SSO。本樣例就是使用一個filter來完成以上的功能。Filter是比較好的方法。在每個應(yīng)用中都要部署一個相同的servlet??梢酝ㄟ^一個controller,將所有的功能都寫到一個servlet中,然后在URL映射的時候,映射到所有需要保護(hù)的URL集合中(例如*.jsp,/security/*等)。不過這個笨方法沒有人會用:)。以上這些功能,可以用很多方法來實(shí)現(xiàn):如果cookie效驗(yàn)成功,就允許用戶訪問當(dāng)前請求的資源。應(yīng)用系統(tǒng)拿到這個cookie,還需要調(diào)用身份認(rèn)證的服務(wù),來判斷cookie時候真的有效,以及當(dāng)前的cookie對應(yīng)的用戶是誰。有了這個cookie,還不能證明你就一定有權(quán)限訪問。當(dāng)你再訪問這個應(yīng)用的需要保護(hù)的URL的時候,系統(tǒng)還是要進(jìn)行安全檢查的,但是這次系統(tǒng)能夠發(fā)現(xiàn)相應(yīng)的cookie。登錄成功后,系統(tǒng)會自動給你的瀏覽器設(shè)置cookie,證明你已經(jīng)登錄過了。Web應(yīng)用中每一個需要安全保護(hù)的URL在訪問以前,都需要進(jìn)行安全檢查,如果發(fā)現(xiàn)沒有登錄(沒有發(fā)現(xiàn)認(rèn)證之后所帶的cookie)。這點(diǎn)很顯然,要想使多個應(yīng)用具有單點(diǎn)登錄的功能,還需要每個應(yīng)用本身的配合:將自己的身份認(rèn)證的服務(wù)交給一個統(tǒng)一的身份認(rèn)證服務(wù)-SSOAuth。其他的方法更加簡單,這里就不多解釋了。我這樣做是下面要介紹的桌面SSO中所需要的功能。如果不使用這個方法或者參數(shù)為負(fù)數(shù)的話,當(dāng)瀏覽器關(guān)閉的時候,這個cookie就失效了。另外一個要說明的是,在設(shè)置cookie的時候,我使用了一個setMaxAge(6000)的方法。在handlerFromLogin()這個方法中,我們通過接收“goto”這個參數(shù)來保存用戶最初訪問的URL,成功后便重新定向到這個頁面中。身份服務(wù)是用來保護(hù)其他應(yīng)用服務(wù)的,用戶一般在訪問一個受SSOAuth保護(hù)的Web應(yīng)用的某個URL時,當(dāng)前這個應(yīng)用會發(fā)現(xiàn)當(dāng)前的用戶還沒有登錄,讓用戶登錄。登錄成功后,瀏覽器會到哪個頁面呢?那我們回顧一下我們是如何使用身份認(rèn)證服務(wù)的。它的邏輯很簡單:將用戶輸入的用戶名和密碼與預(yù)先設(shè)定好的用戶集合(存放在accounts中)相比較,如果用戶名或密碼不匹配的話,則返回登錄失敗的頁面(),如果登錄成功的話,需要為用戶當(dāng)前的session創(chuàng)建一個新的ID,并將這個ID和用戶名的映射關(guān)系存放到SSOIDs中,最后還要將這個ID設(shè)置為瀏覽器能夠保存的cookie值。 } ()。 PrintWriter out = ()。 if (gotoURL != null) { (wangyu)。 (newID)。 (domainname)。 (newID, username)。 String gotoURL = (goto)。 else { String pass = (String)(username)。 String username = (username)。private void handlerFromLogin(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {。效驗(yàn)cookie的有效性是SSOAuth的主要功能之一。如果用戶已經(jīng)登錄過本系統(tǒng),再訪問別的應(yīng)用的時候,是不需要再次登錄的。用戶在提供了用戶名和密碼以后,就會用handlerFromLogin()這個方法來驗(yàn)證。在主要的請求處理方法processRequest()中,可以很清楚的看到SSOAuth的所有功能它的功能顯而易見:當(dāng)用戶成功登錄以后,再次訪問別的系統(tǒng),為了鑒別這個用戶請求所帶的cookie的有效性,需要到SSOIDs中檢查這樣的映射關(guān)系是否存在。在實(shí)際應(yīng)用中,accounts應(yīng)該是去數(shù)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1