校園網(wǎng)統(tǒng)一身份認(rèn)證系統(tǒng)_第1頁
校園網(wǎng)統(tǒng)一身份認(rèn)證系統(tǒng)_第2頁
校園網(wǎng)統(tǒng)一身份認(rèn)證系統(tǒng)_第3頁
校園網(wǎng)統(tǒng)一身份認(rèn)證系統(tǒng)_第4頁
校園網(wǎng)統(tǒng)一身份認(rèn)證系統(tǒng)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

摘要身份認(rèn)證是網(wǎng)絡(luò)安全技術(shù)的一個重要方面,在各高校的各種應(yīng)用系統(tǒng)中身份認(rèn)證技術(shù)都得到了很好的應(yīng)用。但是,隨著高校中各種應(yīng)用系統(tǒng)使用越來越多,隨之而來的問題是:在校園應(yīng)用系統(tǒng)中有太多的密碼需要記憶;住在院外的老師因沒有合法的身份而無法瀏覽和使用院內(nèi)的一些重要應(yīng)用系統(tǒng);教職工和學(xué)生的與身份相關(guān)的詳細(xì)信息在各個應(yīng)用系統(tǒng)中不一致;添加新的應(yīng)用系統(tǒng)時沒有一致的認(rèn)證和授權(quán)框架可以使用等等。建立數(shù)字校園系統(tǒng)是解決上述問題也是近年來各高校校園網(wǎng)應(yīng)用建設(shè)的一個新的方向,它涉及數(shù)據(jù)集成、單點(diǎn)登錄、授權(quán)管理等多方面的內(nèi)容,而統(tǒng)一身份認(rèn)證方案是首先需要解決的問題,其中包括單點(diǎn)登錄和授權(quán)管理。本文介紹了在進(jìn)行數(shù)字校園信息系統(tǒng)的建設(shè)過程中,采用LDAP作用戶信息存儲,實(shí)現(xiàn)了基于LDAP服務(wù)的統(tǒng)一認(rèn)證服務(wù)。系統(tǒng)的各個層次相對獨(dú)立,保證了系統(tǒng)的松散耦合,同時,系統(tǒng)易于集成,新的應(yīng)用系統(tǒng)可以不帶自己的用戶系統(tǒng),依靠統(tǒng)一認(rèn)證系統(tǒng)實(shí)現(xiàn)對用戶的認(rèn)證和授權(quán),降低了開發(fā)難度。系統(tǒng)采用JAVA編程,說明了各主要模塊的實(shí)現(xiàn)方法和步驟。隨著統(tǒng)一身份認(rèn)證系統(tǒng)的逐步完善,將在信息安全體系中發(fā)揮重要的作用。關(guān)鍵詞:數(shù)字校園;身份認(rèn)證方案;LDAP;單點(diǎn)登錄;授權(quán)管理AbstractIdentityauthenticationisaveryimportantfactoronnetworksecuritytechnology,whichbeusedondifferentapplicationsystemsbyalotofuniversities.However,withthemoreusingofapplicationsystems,themoreproblembeappeared.Wehavetorememberlotsofpasswords.Someteaeherslivingoutofcampusdonotbrowseandloginsomeusefulwebpagebecausetheyhavenotalegitimateidentity.Thebasicinformationaboutteaehersandstudentshavesagreatdealofvarianceindifferentapplicationsystems.TherehavenotUnifiedAuthenticationandAuthorizedArchitecturewhenyouappendanewapplication.Digitalcampussystemissetuptoresolvetheproblemsaboveanditisalsoanewdirectionthatleadstheapplicationofthecampusnetworkconstructioiinrecentyears.Itinvolvesdataintegration,singlesign-on,authorizationmanagement,etc.Whatisfirsttoberesolvedistheprogramofuniformidentityauthentication,includingsinglesign-onandauthorizationmanagement.ThisarticleintroducedtheDigitalCampusconstruction,wechooseLDAPtosavetheusersinformationabouttheDigitalCampusSystem,atthemeantimerealizetheUnifyIdentityAuthenticationServicebaseonLDAP.Thesystemrelativelyindependent,whichguaranteestheloosecouplingofthesystem.Inadditional,thesystemcanbeintegratedeasily.So,newapplicationsystemneednotrelyonit'sownauthenticationsystembutunifiedauthenticationtocompletetheauthenticationandauthorizationofusers,andreducesthedegreeofdificulofsystemdeveloping.Javalanguagewasusedforprogrammingatthispaper.Thispaperindicatestheeachkeyfanctionimplementationmethod.Withtheunifiedidentityauthenticationsystembeingperfected.Itwillplayanimportantroleamongtheinformationsafesystemofcampusnetwork.KEYWORDS:DigitalCampus;IdentityAuthenticationScheme; LDAP;SingleSign-onPrivilegeManagementTOC\o"1-5"\h\z摘 要 IABSTRACT. II第1章引言 11.1論文的背景 11.1.1數(shù)字化校園出現(xiàn)的必然性 1\o"CurrentDocument"1.1.2傳統(tǒng)身份認(rèn)證的局限性 21.1.3統(tǒng)一身份認(rèn)證的重要性 3\o"CurrentDocument"1.2基于目錄服務(wù)的統(tǒng)一身份認(rèn)證 31.2.1目錄服務(wù)在校園網(wǎng)建設(shè)中的作用 31.2.2統(tǒng)一身份認(rèn)證的現(xiàn)狀 41.3研究目標(biāo)與意義 4第2章系統(tǒng)開發(fā)環(huán)境及工具介紹. 62.1LDAP簡介 6LDAP協(xié)議概述 6LDAP的安全模型 6\o"CurrentDocument"2.2STRUTS簡介 7\o"CurrentDocument"Tomcat簡介 8\o"CurrentDocument"Eclipse和myEclipse簡介 8\o"CurrentDocument"2.5SQLSERVER2000簡介 9\o"CurrentDocument"第3章總體設(shè)計 11\o"CurrentDocument"3.1總體設(shè)計 11\o"CurrentDocument"3.2功能設(shè)計 113.2.1用戶注冊 123.2.2賬號關(guān)聯(lián) 123.2.3用戶認(rèn)證 123.2.4用戶管理 12\o"CurrentDocument"3.3數(shù)據(jù)庫設(shè)計 13第4章詳細(xì)設(shè)計 174.1主界面設(shè)計 174.2系統(tǒng)首頁設(shè)計 錯誤!未定義書簽。4.3用戶注冊 21\o"CurrentDocument"4.4關(guān)聯(lián)注冊 24\o"CurrentDocument"4.5用戶管理 25\o"CurrentDocument"4.6數(shù)據(jù)庫連接 29\o"CurrentDocument"4.7LDAP服務(wù)器連接 30第5章結(jié)論 32\o"CurrentDocument"參考文獻(xiàn) 33致謝 35第1章引言1.1論文的背景1.1.1數(shù)字化校園出現(xiàn)的必然性隨著計算機(jī)的普及,人們己邁入信息化的社會,互連網(wǎng)技術(shù)的大力推廣和快速發(fā)展,更使得社會信息化的程度不斷提高。目前,網(wǎng)絡(luò)已經(jīng)成為人們交換信息的主要手段。社會的信息化,必定會帶動校園的信息化。在校園網(wǎng)中,用戶的數(shù)量在迅速的增長,網(wǎng)絡(luò)的使用由簡單的上網(wǎng),發(fā)展到現(xiàn)在的各種應(yīng)用和服務(wù),如:網(wǎng)上教學(xué)、視頻會議等。在校園網(wǎng)中,除了有大量的信息資源,同時還存在著各種應(yīng)用系統(tǒng)。隨著校園網(wǎng)絡(luò)信息的逐漸增加和網(wǎng)絡(luò)規(guī)模的日益擴(kuò)大,每種應(yīng)用系統(tǒng)都需要進(jìn)行身份的識別和認(rèn)證,并且對不同身份所擁有的操作權(quán)限進(jìn)行授權(quán)。通常的做法是在每一個應(yīng)用系統(tǒng)中建立獨(dú)立的身份認(rèn)證模塊,使用獨(dú)立的認(rèn)證機(jī)制在各自的身份認(rèn)證文件或數(shù)據(jù)庫中認(rèn)證。這種管理模式和方法雖然可行,但是,這種傳統(tǒng)的訪問控制,都是單個應(yīng)用系統(tǒng),各自獨(dú)立,各個用戶之間數(shù)據(jù)不能共享地訪問控制。這樣,使網(wǎng)絡(luò)信息的查詢及網(wǎng)絡(luò)管理都變得很不方便,還會造成數(shù)據(jù)的不一致性。除此之外,這種認(rèn)證方式存在很多的弊端:消耗開發(fā)成本和延緩應(yīng)用開發(fā)進(jìn)度;無法統(tǒng)一認(rèn)證和授權(quán)策略;無法統(tǒng)一分析用戶的應(yīng)用行為;數(shù)據(jù)冗余度大,管理維護(hù)工作麻煩等等。另外,傳統(tǒng)的開發(fā)模式都是基于關(guān)系型數(shù)據(jù)庫的用戶認(rèn)證信息管理模型,讀取速度慢,可移植性差。由此可見,我們迫切需要一個統(tǒng)一的、完善的、安全的、易于管理的、有良好的可移植性和擴(kuò)展性的校園網(wǎng)用戶身份管理系統(tǒng)[1]?!皵?shù)字化校園”的概念就在這樣的背景下出臺了?!皵?shù)字化校園”是以校園網(wǎng)為硬件基礎(chǔ),利用先進(jìn)的信息化手段和工具,實(shí)現(xiàn)校園的資源數(shù)字化,形成一個數(shù)字空間,使得現(xiàn)實(shí)校園在時間和空間上延伸開來。校園網(wǎng)絡(luò)及其應(yīng)用系統(tǒng)構(gòu)成整個園的神經(jīng)系統(tǒng),完成現(xiàn)實(shí)校園的信息傳遞和服務(wù)。在數(shù)字化校園里,可以方便的實(shí)現(xiàn)學(xué)校的教學(xué)、科研、管理、服務(wù)等活動的全部過程,從而達(dá)到提高教學(xué)質(zhì)量、科研水平、管理水平的目的1]??梢哉f,“數(shù)字化校園'是目前現(xiàn)代化學(xué)校建設(shè)的主要目標(biāo),是傳統(tǒng)信息化管理系統(tǒng)的進(jìn)一步深化和延伸。這一理念的提出,意味著以信息化為標(biāo)志的現(xiàn)代教學(xué)管理模式在教育行業(yè)已經(jīng)確立,也意味著更先進(jìn)的學(xué)校管理理念向信息化系統(tǒng)的建設(shè)工作提出更高的要求2"1.1.2傳統(tǒng)身份認(rèn)證的局限,性傳統(tǒng)的獨(dú)立身份認(rèn)證方式存在著很多弊端,給用戶的使用帶來諸多不便。(1) 從信息的角度來說:信息缺乏有效共享:由于缺乏全局統(tǒng)一的系統(tǒng)規(guī)劃,應(yīng)用系統(tǒng)建設(shè)容易各自獨(dú)立,信息難以交換,更難以在更高的層次上進(jìn)行信息的處理。用戶信息無法統(tǒng)一更新:當(dāng)一個用戶的屬性發(fā)生改變時,他的身份信息只在有限系統(tǒng)中被更改,其他系統(tǒng)無法自動更新,最終造成用戶信息無法統(tǒng)一。信息重復(fù)情況嚴(yán)重:在整個系統(tǒng)中,同一個用戶的信息反復(fù)存放,數(shù)據(jù)冗余量過大,最終會造成所有系統(tǒng)信息存儲成本上升,性能下降,影響系統(tǒng)正常運(yùn)行。(2) 從管理的角度來說:系統(tǒng)信息的管理難度增加:由于信息無法統(tǒng)一進(jìn)行更新,以及大量的信息嚴(yán)重重復(fù),使得系統(tǒng)信息的管理的難度大大增加。用戶身份嚴(yán)重不一致:同一個用戶在不同的應(yīng)用系統(tǒng)中可能存在完全不同的屬性,造成同一個用戶同時有多個不同身份P4](3) 從用戶使用的角度來看:用戶操作復(fù)雜:用戶在使用不同應(yīng)用系統(tǒng)時,必須反復(fù)登錄,操作極其麻煩。用戶缺乏統(tǒng)一的界面:對于不同的應(yīng)用系統(tǒng),用戶需要在不同的位置逐個進(jìn)入訪問,缺乏統(tǒng)一的訪問資源和應(yīng)用的接口。(4) 從開發(fā)和維護(hù)的成本角度來說:增加系統(tǒng)的開發(fā)和管理成本:眾多應(yīng)用系統(tǒng),相互獨(dú)立,信息重復(fù)性大,共享程度低,更新困難,管理不便,都造成了成本的大幅度提高。增加用戶信息的維護(hù)難度:當(dāng)用戶狀況變更時,需要同時修改不同應(yīng)用系統(tǒng)中的大量條目,增加了維護(hù)管理的難度。[成(5) 從安全的角度來說:嚴(yán)重破壞了系統(tǒng)的安全性:同一個用戶為進(jìn)入眾多應(yīng)用系統(tǒng),必須記憶和采用大量不同的密碼和身份信息,為了防止遺忘密碼,必定會大量使用重復(fù)的密碼和身份信息,而這些信息又分散在各個應(yīng)用系統(tǒng)的數(shù)據(jù)庫中,一旦泄密,系統(tǒng)安全蕩然無存。[3]由此可見,傳統(tǒng)的身份認(rèn)證存在著很多弊端。為了解決以上問題,現(xiàn)在各個學(xué)校紛紛提供各種解決方案,向數(shù)字化校園的目標(biāo)不斷探索。單點(diǎn)登錄,統(tǒng)一身份認(rèn)證就是實(shí)現(xiàn)了數(shù)字化校園重要的基礎(chǔ)框架。1.1.3統(tǒng)一身份認(rèn)證的重要性在校園網(wǎng)中,存在著各種應(yīng)用系統(tǒng),每一個應(yīng)用系統(tǒng),我們都可以把它看成是現(xiàn)實(shí)的校園在數(shù)字空間上的一個映射。多個應(yīng)用系統(tǒng)組成了整個校園在數(shù)字空間上的多個映射,我們可以把它稱之為數(shù)字校園。在現(xiàn)實(shí)校園中,每一個成員都有一個固定的身份,用戶的身份決定了用戶在校園空間所享有的權(quán)限。囹數(shù)字校園是現(xiàn)實(shí)校園在數(shù)字空間的反映,因此對于數(shù)字校園中的每一個成員,在數(shù)字空間也相應(yīng)地需要有一個固定的身份,即電子身份。對于數(shù)字校園來說,就是要建立一套統(tǒng)一的身份管理系統(tǒng),學(xué)校的每一個成員都有一個與其身份相應(yīng)的電子身份,用戶可以使用自己的電子身份訪問數(shù)字校園中有權(quán)訪問的任何系統(tǒng)。電子身份的確認(rèn)需要身份認(rèn)證技術(shù)。?。萆矸菡J(rèn)證一般與授權(quán)控制是相互聯(lián)系的。授權(quán)控制是指一旦用戶的身份通過認(rèn)證以后,具體負(fù)責(zé)確定該用戶可以訪問哪些資源,有什么樣的操作權(quán)限等。因此,在數(shù)字校園中,應(yīng)該有一個統(tǒng)一的身份認(rèn)證系統(tǒng)供各應(yīng)用系統(tǒng)使用,并且有單一的注冊中心統(tǒng)一為各部門服務(wù)。建立統(tǒng)一身份認(rèn)證系統(tǒng)后,用戶每次要訪問網(wǎng)絡(luò)資源之前,必須先到認(rèn)證系統(tǒng)認(rèn)證身份,經(jīng)確認(rèn)后才能使用相應(yīng)的網(wǎng)絡(luò)資源。這樣,可以方便地實(shí)現(xiàn)對用戶的統(tǒng)一管理。1.2基于目錄服務(wù)的統(tǒng)一身份認(rèn)證1.2.1目錄服務(wù)在校園網(wǎng)建設(shè)中的作用目錄服務(wù)是指網(wǎng)絡(luò)系統(tǒng)將網(wǎng)絡(luò)中的各種資源信息集中管理起來,為用戶提供一個統(tǒng)一的服務(wù)系統(tǒng)。目錄服務(wù)在某種程度上講就是代表網(wǎng)絡(luò)用戶及資源在基于對象的數(shù)據(jù)庫上的網(wǎng)絡(luò)應(yīng)用服務(wù),每個對象中都存儲著與特定用戶和網(wǎng)絡(luò)資源有關(guān)的信息。對象可以在目錄的樹狀結(jié)構(gòu)中分層存儲,便于用戶建立一個與校園組織結(jié)構(gòu)一致的網(wǎng)絡(luò)結(jié)構(gòu)。網(wǎng)絡(luò)上的每個用戶及資源均與其它用戶和資源有關(guān)聯(lián),目錄能夠通過鑒定和授權(quán)來管理和控制人和計算機(jī)、計算機(jī)和計算機(jī)之間的關(guān)系我們可以說,目錄是用于保存資源信息的,其中資源信息包括用戶和各類軟硬件設(shè)施、用戶的帳號和口令信息等。相對于關(guān)系型數(shù)據(jù)庫,應(yīng)用目錄服務(wù)管理用戶信息的優(yōu)點(diǎn)在于:目錄數(shù)據(jù)庫以樹狀的層次結(jié)構(gòu)描述數(shù)據(jù)信息,其數(shù)據(jù)模型與現(xiàn)實(shí)生活中的組織基本一致,在資源信息管理方面有很大的優(yōu)勢,能夠較好的解決信息的分布管理和集中使用的問題。概括而言,目錄數(shù)據(jù)庫有如下特點(diǎn):分布性:目錄信息能夠自然地分布在各地的服務(wù)器中,并由各地組織管理,既保證了目錄信息總體結(jié)構(gòu)一致,又滿足了分級管理的需要;易擴(kuò)展性:規(guī)??纱罂尚?,大到全球,小到只有一臺目錄服務(wù)器的單位,目錄系統(tǒng)都能勝任,并且很容易擴(kuò)展;[17]查詢快速靈活:目錄國際標(biāo)準(zhǔn)定義的檢索操作提供了非常靈活的查詢條件,并且還可根據(jù)需要擴(kuò)充,可滿足復(fù)雜的模糊查詢需求,其面向查詢優(yōu)化的算法使得其檢索速度比關(guān)系數(shù)據(jù)庫快一個數(shù)量級;[18]平臺無關(guān):作為國際標(biāo)準(zhǔn),目錄系統(tǒng)所使用的通信協(xié)議框架是OSI網(wǎng)絡(luò)七層結(jié)構(gòu)模型,完全與平臺無關(guān),保證了目錄系統(tǒng)的開放性和各種類型計算機(jī)在目錄服務(wù)中的互操作性,從而保證了用戶投資的長期有效性;安全性:目錄系統(tǒng)規(guī)定了一個精密的存取控制方案,充分保證條目信息的安全,同時又便于管理者對用戶的存取權(quán)限進(jìn)行控制。因此目錄服務(wù)可以用來為其他應(yīng)用提供完善的身份認(rèn)證及權(quán)限控制服務(wù)。1.2.2統(tǒng)一身份認(rèn)證的現(xiàn)狀基于目錄服務(wù)的上述特點(diǎn),我們可以采用目錄服務(wù)技術(shù)來實(shí)現(xiàn)統(tǒng)一身份認(rèn)證。現(xiàn)有的一些統(tǒng)一身份認(rèn)證的系統(tǒng),就是利用目錄服務(wù)技術(shù)實(shí)現(xiàn)部分系統(tǒng)的統(tǒng)一認(rèn)證的。[11我們使用目錄服務(wù)器來集中存儲用戶的個人身份信息和權(quán)限信息,在應(yīng)用服務(wù)器遵從統(tǒng)一的目錄服務(wù)標(biāo)準(zhǔn)的情況下,和目錄服務(wù)器通信,進(jìn)行統(tǒng)一認(rèn)證⑵1.3研究目標(biāo)與意義隨著通信技術(shù)、網(wǎng)絡(luò)技術(shù)的不斷發(fā)展網(wǎng)絡(luò)已經(jīng)成為我們學(xué)習(xí)和生活中重要的基礎(chǔ)設(shè)施。而校園網(wǎng)作為學(xué)校教育信息化建設(shè)的基礎(chǔ)在教學(xué)、科研、管理等方面發(fā)揮著越來越重要的作用。同時校園網(wǎng)是一類復(fù)雜而很有代表性的網(wǎng),具有用戶數(shù)量大,網(wǎng)絡(luò)應(yīng)用與服務(wù)繁多等特點(diǎn)。在校園網(wǎng)中通常是由各個應(yīng)用程序和服務(wù)使用各自特定的數(shù)據(jù)庫來存儲用戶信息,并使用各自特定的協(xié)議實(shí)現(xiàn)用戶信息的訪問。因此產(chǎn)生了各類用戶信息重復(fù)和不一致等問題給管理員和用戶帶來了麻煩同時也存在網(wǎng)絡(luò)安全隱患。因此迫切需要實(shí)現(xiàn)校園網(wǎng)用戶的統(tǒng)一身份管理和認(rèn)證。校園網(wǎng)統(tǒng)一身份認(rèn)證系統(tǒng)能夠?qū)崿F(xiàn)校園網(wǎng)上各種應(yīng)用系統(tǒng)和服務(wù)的統(tǒng)一用戶管理和身份認(rèn)證,可讓用戶只使用一套用戶賬戶>就可以登錄校園內(nèi)所有的采用統(tǒng)一身份認(rèn)證的應(yīng)用系統(tǒng)和服務(wù)。從而實(shí)現(xiàn)集中的用戶管理、統(tǒng)一的身份認(rèn)證和統(tǒng)一的訪問控制。從一定意義上講,校園網(wǎng)的建設(shè)是衡量一個高校綜合實(shí)力的重要標(biāo)志。開發(fā)本系統(tǒng)的目的就是充分利用現(xiàn)代信息技術(shù),提高信息利用效率,提高學(xué)校教學(xué)、辦公管理的水平,實(shí)現(xiàn)學(xué)校信息化管理,為此在數(shù)字化校園的建設(shè)中使用統(tǒng)一接口、統(tǒng)一信息服務(wù)平臺、統(tǒng)一身份認(rèn)證系統(tǒng)的結(jié)合的顯得尤為重要。建立統(tǒng)一身份認(rèn)證系統(tǒng),對用戶的身份集中集中管理,保證用戶電子身份的惟一性、真實(shí)性與權(quán)威性,大大提高了校園應(yīng)用系統(tǒng)的安全性。第2章系統(tǒng)開發(fā)環(huán)境及工具介紹2.1LDAP簡介LDAP協(xié)議概述LDAP(LightweightDirectoryAccessProtocol)即輕量級目錄訪問協(xié)議,直接運(yùn)行于TCP/IP或者其他可靠傳輸協(xié)議之上,是目錄服務(wù)的前端訪問協(xié)議LDAP基本工作方式為LDAP客戶端向LDAP服務(wù)器發(fā)送請求,服務(wù)器發(fā)回應(yīng)答信息,LDAP協(xié)議定義的便是客戶機(jī)與服務(wù)器之間請求、應(yīng)答的格式和約定,即LDAP客戶機(jī)訪問服務(wù)器的前端訪問協(xié)議。⑸目錄服務(wù)就是按照樹狀信息組織模式,實(shí)現(xiàn)信息管理和服務(wù)接口的一種方法,是一種特殊的邏輯數(shù)據(jù)庫,具有強(qiáng)大的檢索功能和完善的安全機(jī)制,并有良好的跨平臺性。LDAP以目錄信息樹結(jié)構(gòu)的形式存儲信息,目錄信息樹中的一個節(jié)點(diǎn)即為一個條目(Entry),每個條目包含屬性(Attribute和口屬性值。[6]屬性由對象類(objectclass確定,每個對象類包含多個必須或可選屬性。條目信息通過LDAP數(shù)據(jù)交換格式文件(LDIF)以文本的形式進(jìn)行描述。LDAP的安全模型LDAP中的安全模型是為了保護(hù)存儲在LDAP中信息的安全性,主要通過身份認(rèn)證、安全通道和訪問控制來實(shí)現(xiàn)[刀。身份認(rèn)證有匿名、基本認(rèn)證和SASL(SimpleAuthenticationandSecureLayer)認(rèn)證。匿名認(rèn)證即不對用戶進(jìn)行認(rèn)證,該方法僅對完全公開的方式適用;基本認(rèn)證是通過用戶名和密碼進(jìn)行身份識別,又分為簡單密碼和摘要密碼認(rèn)證;SASL認(rèn)證即LDAP提供的在SSL和TLS安全通道基礎(chǔ)上進(jìn)行的身份認(rèn)證,包括數(shù)字證書的認(rèn)證。LDAP中提供了基于SSL/TLS的通訊安全保障,SSL/TLS是基于PKI信息安全的技術(shù),是目前工nternet上廣泛采用的安全服務(wù)。罔在LDAP中是基于訪問控制策略語句來實(shí)現(xiàn)訪問控制的,這不同于現(xiàn)有的關(guān)系型數(shù)據(jù)庫系統(tǒng)和應(yīng)用系統(tǒng),它是通過基于訪問控制列表ACL,AccessControlLists)來實(shí)現(xiàn),在通過目錄認(rèn)證后,對目錄的訪問操作權(quán)限援CL的定義來分配。[9],[10],[11無論是基于組織模式或角色模式,都擺脫不了這種限制。對于LDAP,用戶數(shù)據(jù)管理和訪問標(biāo)識是一體的,應(yīng)用不需要關(guān)心訪問控制的實(shí)現(xiàn)。無論是訪問控制的數(shù)據(jù)對象,還是訪問控制的主體對象,均是與這些對象在樹中的位置和對象本身的數(shù)據(jù)特征相關(guān)。在LDAP中,可以把整個目錄、目錄的子樹、制定條目、特定條目屬性集或符合某過濾條件的條目作為控制對象進(jìn)行授權(quán)可以把特定用戶、屬于特定組或所有目錄用戶作為授權(quán)主體進(jìn)行授權(quán)最后,還可以定義對特定位胃例如IP地址或DNS名稱)的訪問權(quán)。2.2STRUTS簡介Struts只是一個MVC框架(Framework),用于快速開發(fā)JavaWeb應(yīng)用。Struts實(shí)現(xiàn)的重點(diǎn)在C(Controller)包括ActionServlet/RequestProcessor和我們定制的Action也為V(View提供了一系列定制標(biāo)簽CustomTag)o但Struts幾乎沒有涉及M(Model)所以Struts可以采用JAVA實(shí)現(xiàn)的任何形式的商業(yè)邏輯。優(yōu)點(diǎn):Struts跟TomcatTurbine等諸多Apache項(xiàng)目一樣,是開源軟件,這是它的一大優(yōu)點(diǎn)。使開發(fā)者能更深入的了解其內(nèi)部實(shí)現(xiàn)機(jī)制。Taglib和頁面導(dǎo)航。Taglib是Struts的標(biāo)記庫,靈活動用,能大大提高開發(fā)效率。另外,就目前國內(nèi)的JSP開發(fā)者而言,除了使用JSP自帶的常用標(biāo)記外,很少開發(fā)自己的標(biāo)記,或許Struts是一個很好的起點(diǎn)。關(guān)于頁面導(dǎo)航,我認(rèn)為那將是今后的一個發(fā)展方向,事實(shí)上,這樣做,使系統(tǒng)的脈絡(luò)更加清晰12]。通過一個配置文件,即可把握整個系統(tǒng)各部分之間的聯(lián)系,這對于后期的維護(hù)有著莫大的好處同尤其是當(dāng)另一批開發(fā)者接手這個項(xiàng)目時,這種優(yōu)勢體現(xiàn)得更加明顯。缺點(diǎn):Taglib是Struts的一大優(yōu)勢,但對于初學(xué)者而言,卻需要一個持續(xù)學(xué)習(xí)的過程,甚至還會打亂你網(wǎng)頁編寫的習(xí)慣,但是,當(dāng)你習(xí)慣了它時,你會覺得它真的很棒。Struts將MVC的Controller一分為三,在獲得結(jié)構(gòu)更加清晰的同時,也增加了系統(tǒng)的復(fù)雜度。Struts從產(chǎn)生到現(xiàn)在還不到半年,但已逐步越來越多運(yùn)用于商業(yè)軟件。雖然它現(xiàn)在還有不少缺點(diǎn),但它是一種非常優(yōu)秀的2EEMVC實(shí)現(xiàn)方式。Struts最早是作為ApacheJakarta項(xiàng)目的組成部分問世運(yùn)作。項(xiàng)目的創(chuàng)立者希望通過對該項(xiàng)目的研究,改進(jìn)和提高JavaServerPages>Servle、標(biāo)簽庫以及面向?qū)ο蟮募夹g(shù)水準(zhǔn)。Struts跟TomcatTurbine等諸多Apache項(xiàng)目一樣,是開源軟件,這是它的一大優(yōu)點(diǎn),使開發(fā)者能更深入的了解其內(nèi)部實(shí)現(xiàn)機(jī)制。Struts框架具有組件的模塊化,靈活性和重用性的優(yōu)點(diǎn),同時簡化了基于MVC的web應(yīng)用程序的開發(fā)?;谝陨戏治?,本系統(tǒng)采用Struts框架。Tomcat簡介自從JSP發(fā)布之后,推出了各式各樣的TSP引擎。ApacheGroup在完成GNUJSP1.0的開發(fā)以后,開始考慮在SUN的JSWDK基礎(chǔ)上開發(fā)一個可以直接提供Web服務(wù)的JSP服務(wù)器,當(dāng)然同時也支持Servlet,這樣Tomcat就誕生了。Tomcat是jakarta項(xiàng)目中的一個重要的子項(xiàng)目,其被JavaWorld雜志的編輯選為2001年度最具創(chuàng)新的java產(chǎn)品,同時它又是sun公司官方推薦的servlet和jsp容器,因此其越來越多的受到軟件公司和開發(fā)人員的喜愛。servlet和jsp的最新規(guī)范都可以在tomcat的新版本中得到實(shí)現(xiàn)。其次,Tomcat是完全免費(fèi)的軟件,任何人都可以從互聯(lián)網(wǎng)上自由地下載。Tomcat與Apache的組合相當(dāng)完美。Tomcat服務(wù)器的使用也非常簡單,將打包好的工程Lvar)拷貝到目錄webapps下,然后啟動Tomcat服務(wù)器即可。Eclpse和MyEclpse簡介Eclipse是一個開放源代碼的、基于Java的可擴(kuò)展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse附帶了一個標(biāo)準(zhǔn)的插件集,包括Java開發(fā)工具(JavaDevelopmentToos,JDT)。雖然大多數(shù)用戶很樂于將Eclipse當(dāng)作JavaIDE來使用,但Eclipse的目標(biāo)不僅限于此。Eclipse還包括插件開發(fā)環(huán)境(Plug-inDevelopmentEnvironment.PDE),這個組件主要針對希望擴(kuò)展Eclipse的軟件開發(fā)人員,因?yàn)樗试S他們構(gòu)建與Eclipse環(huán)境無縫集成的工具。由于Eclipse中的每樣?xùn)|西都是插件,對于給Eclipse提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。這種平等和一致性并不僅限于Java開發(fā)工具。盡管Eclipse是使用Java語言開發(fā)的,但它的用途并不限于Java語言;例如,支持諸如C/C++、COBOL和Eiffel等編程語言的插件已經(jīng)可用,或預(yù)計會推出。Eclipse框架還可用來作為與軟件開發(fā)無關(guān)的其他應(yīng)用程序類型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)?;贓clipse的應(yīng)用程序的突出例子是IBM的WebSphereStudioWorkbench它構(gòu)成了IBMJava開發(fā)工具系列的基礎(chǔ)。例如,WebSphereStudioApplicationDeveloper添加了對JSP、servletEJB、XML、Web服務(wù)和數(shù)據(jù)庫訪問的支持。MyEclipse企業(yè)級工作平臺(MyEclipseEnterpriseWorkbench,簡稱MyEclipse)是對EclipseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫和J2EE的開發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類:J2EE模型,WEB開發(fā)工具,EJB開發(fā)工具,應(yīng)用程序服務(wù)器的連接器,J2EE項(xiàng)目部署服務(wù),數(shù)據(jù)庫服務(wù),MyEclipse整合幫助。對于以上每一種功能上的類別,在Eclipse中都有相應(yīng)的功能部件,并通過一系列的插件來實(shí)現(xiàn)它們。MyEclipse結(jié)構(gòu)上的這種模塊化,可以讓我們在不影響其他模塊的情況下,對任一模塊進(jìn)行單獨(dú)的擴(kuò)展和升級。簡單而言,MyEclipse是Eclipse的插件,也是一款功能強(qiáng)大的J2EE集成開發(fā)環(huán)境,支持代碼編寫、配置、測試以及除錯。SQLSERVER200簡介SQLServer2000是微軟公司最新推出的高性能關(guān)系數(shù)據(jù)庫管理系統(tǒng),使微軟公司在大型數(shù)據(jù)庫領(lǐng)域的最新版本和旗艦產(chǎn)品,也是微軟公司爭奪電子商務(wù)領(lǐng)域最重要的核心部件市場--網(wǎng)絡(luò)數(shù)據(jù)庫平臺的一大利器。SQLServer2000建立在SQLServer6.5和SQLServer7.0堅固而雄厚的技術(shù)基礎(chǔ)之上,是公認(rèn)的運(yùn)行在WindowsNT平臺上的最佳數(shù)據(jù)庫°SQLServer2000已經(jīng)在性能和可擴(kuò)展性方面確立了世界領(lǐng)先的地位,是一套完全的數(shù)據(jù)庫和數(shù)據(jù)庫分析解決方案。SQLServer2000的特點(diǎn)如下:與INTERNET的緊密結(jié)合,集成了對XML的支持,可擴(kuò)展、易于使用和安全。可擴(kuò)展性和可用性,支持聯(lián)盟數(shù)據(jù)庫服務(wù)器口3]企業(yè)級數(shù)據(jù)庫,具備有完善而強(qiáng)大的數(shù)據(jù)處理功能。簡單友好的操作方式,具有非常友好的用戶界面,易于安裝、使用和發(fā)布。數(shù)據(jù)倉庫支持,滿足當(dāng)代企業(yè)對大規(guī)模數(shù)據(jù)進(jìn)行有效分析和利用。第3章總體設(shè)計3.1總體設(shè)計統(tǒng)一身份認(rèn)證系統(tǒng)的工作流程是:用戶登錄一在LDAP服務(wù)器上進(jìn)行身份認(rèn)證一認(rèn)證成功一使用可以使用的系統(tǒng)服務(wù)。主要功能模塊圖如圖1所示。圖3-1功能模塊圖3.2功能設(shè)計根據(jù)校園網(wǎng)身份統(tǒng)一認(rèn)證的分析與設(shè)計的需求分析,該系統(tǒng)主要需要具備三項(xiàng)功能:3.2.1用戶注冊(1) 用戶登陸系統(tǒng)。(2) 用戶向統(tǒng)一身份認(rèn)證服務(wù)發(fā)出新用戶注冊請求。(3) 服務(wù)查詢用戶注冊庫,如果該用戶可以注般有同名ID等違背約束情況發(fā)生),那么將該用戶的信息保存到用戶注冊庫中。(4) 當(dāng)保存完畢后,統(tǒng)一身份認(rèn)證服務(wù)響應(yīng)用戶,注冊完成。3.2.2賬號關(guān)聯(lián)(1) 用戶向統(tǒng)一身份認(rèn)證服務(wù)發(fā)出帳號關(guān)聯(lián)注冊請求,用戶提供了應(yīng)用系統(tǒng)的標(biāo)識A,同時提供了可以在該應(yīng)用系統(tǒng)中使用的用戶信息可能包含用戶名和密碼等)。(2) 服務(wù)首先向該應(yīng)用系統(tǒng)A征詢,用戶信息是否合法。如果合法則響應(yīng)服務(wù)。(3) 如果收到合法響應(yīng),那么服務(wù)就將這個帳號關(guān)聯(lián)注冊信息保存到用戶注冊庫中,以后該用戶登錄統(tǒng)一身份認(rèn)證服務(wù)之后,就能夠使用相應(yīng)的應(yīng)用系統(tǒng)(4) 注冊庫完成保存操作后,統(tǒng)一身份認(rèn)證服務(wù)響應(yīng)用戶,注冊完成。3.2.3用戶認(rèn)證(1) 用戶使用在統(tǒng)一認(rèn)證服務(wù)注冊的用戶名和密時數(shù)字簽名等)登陸統(tǒng)一認(rèn)服務(wù);(2) 統(tǒng)一認(rèn)證服務(wù)核查用戶身份,創(chuàng)建了一個全局Oginsession,同時將與會話關(guān)聯(lián)的訪問認(rèn)證令牌返回給用戶;(3) 用戶使用這個訪問認(rèn)證令牌訪問某個支持統(tǒng)一身份認(rèn)證服務(wù)的應(yīng)用系;(4) 該應(yīng)用系統(tǒng)將訪問認(rèn)證令牌傳入統(tǒng)一身份認(rèn)證服務(wù),認(rèn)證訪問認(rèn)證令牌有效性;(5) 統(tǒng)一身份認(rèn)證服務(wù)確認(rèn)認(rèn)證令牌的有效性;(6) 應(yīng)用系統(tǒng)接收訪問,并返回訪問結(jié)果,用戶可以憑借該令牌訪問任何應(yīng)系統(tǒng)。3.2.4用戶管理(1)為用戶分配該用戶可以使用服務(wù)。刪除用戶及其可以使用的服務(wù)。管理員和非管理員權(quán)限分配3.3數(shù)據(jù)庫設(shè)計為了使各種類型的數(shù)據(jù)庫系統(tǒng)能夠充分發(fā)揮它們的優(yōu)越性,必須對數(shù)據(jù)庫管理系統(tǒng)的使用提出一些明確的要求。對數(shù)據(jù)庫設(shè)計的具體要求如下:盡量減少數(shù)據(jù)的重復(fù),使數(shù)據(jù)的冗余度達(dá)到最小。提高數(shù)據(jù)的利用率,實(shí)現(xiàn)多用戶共享數(shù)據(jù)資源。保持?jǐn)?shù)據(jù)的完整性。注意同一數(shù)據(jù)描述方法的一致性,使數(shù)據(jù)操作不致發(fā)生混亂。對于某些需要保密的數(shù)據(jù),必須增設(shè)保密措施。數(shù)據(jù)的查詢效率高,根據(jù)需要數(shù)據(jù)應(yīng)能被及時維護(hù)。系統(tǒng)中主要的表有三張表,分別是:用戶信息表、系統(tǒng)服務(wù))信息表和用戶系統(tǒng)(服務(wù))表。用戶信息表主要存放的是可以使用統(tǒng)一身份認(rèn)證服務(wù)器的用戶信息;系統(tǒng)(服務(wù))信息表主要存放的是該系統(tǒng)中所有需要登錄才能使用的子系統(tǒng)或服務(wù);用戶系統(tǒng)(服務(wù))表主要存放的是每一個用戶登錄統(tǒng)一身份認(rèn)證服務(wù)器后可以使用的子系統(tǒng)或服務(wù)。數(shù)據(jù)表的結(jié)構(gòu)設(shè)計如下:user_info表主要用來存放LDAP服務(wù)器上注冊的所有用戶信息及關(guān)聯(lián)注冊的用戶信息,其中字段序號為主鍵,自動增長的,每添加一條信息就會自動增加該字段主要用來做數(shù)據(jù)信息更新和刪除用。字段用戶帳號、用戶姓名、用戶密碼、性別、年齡、所在班級及描述為注冊用戶的基本信息;字段注冊時間為該用戶注冊時的時間;字段更新時間為更新用戶信息時的時間;字段管理員標(biāo)志主要是用來區(qū)分該用戶是管理員還是普通用戶,管理員標(biāo)志為1,普通用戶標(biāo)志為0,默認(rèn)為0。其中用戶帳號不能重復(fù)表3-2userinfo表的結(jié)構(gòu)編號 字段名稱 數(shù)據(jù)類型 長度 允許空說明1 id int4N 序號、主鍵

2userIDchar20N用戶賬號3userNamechar20N用戶姓名4passWordchar20N用戶密碼5sexchar2N性別6ageint4N年齡7classchar20Y所在班級8descrchar100Y信息描述9createTimedatetime8Y注冊時間10updateTimedatetime8Y更新時間11adminFlagtinyint1N管理員標(biāo)志system_info表主要用來存放統(tǒng)一認(rèn)證服務(wù)器上所有的子系統(tǒng)(服務(wù)),其中字段序號為主鍵,自動增長的,每添加一條信息就會自動增加該字段主要用來做數(shù)據(jù)信息更新和刪除用。字段系統(tǒng)編號、系統(tǒng)名稱和系統(tǒng)描述為子系統(tǒng)(服務(wù))的基本信息,其中系統(tǒng)編號不能重復(fù)。表3-3system_info表的結(jié)構(gòu)編號字段名稱數(shù)據(jù)類型長度允許空說明1idint4N序號、主鍵2systemIDchar20N系統(tǒng)編號3systemNamechar50N系統(tǒng)名稱4systemDescchar100N系統(tǒng)描述user_system表主要用來存放統(tǒng)一認(rèn)證服務(wù)器上所有用戶可以使用的子系統(tǒng)(服務(wù))信息,其中字段序號為主鍵,自動增長的,每添加一條信息就會自動增加1,該字段主要用來做數(shù)據(jù)信息更新和刪除用。字段用戶帳號關(guān)聯(lián)用戶信息表中的用戶帳號,字段系統(tǒng)編號關(guān)聯(lián)系統(tǒng)服務(wù))信息表中的系統(tǒng)編號。表3-4user_system表的結(jié)構(gòu)

編號字段名稱數(shù)據(jù)類型長度允許空說明1idint4N序號、主鍵2userIDchar20N用戶賬號3systemIDchar20N系統(tǒng)編號user_info表主要是用來存放該子系統(tǒng)上的用戶信息,其中字段序號為主鍵,自動增長的,每添加一條信息就會自動增加該字段主要用來做數(shù)據(jù)信息更新和刪除用。字段用戶帳號、用戶姓名、用戶密碼為用戶的基本信息,同時為用戶關(guān)聯(lián)注冊時的關(guān)聯(lián)注冊信息;字段注冊時間為該用戶注冊時的時間;表3-5user_info表的結(jié)構(gòu)編號字段名稱數(shù)據(jù)類型長度允許空說明1idint4N序號、主鍵2userIDchar20N用戶賬號3userNamechar20N用戶姓名4passWordchar20N用戶密碼5createTimedatetime8Y注冊時間user_info表主要是用來存放該子系統(tǒng)上的用戶信息,其中字段序號為主鍵,自動增長的,每添加一條信息就會自動增加該字段主要用來做數(shù)據(jù)信息更新和刪除用。字段用戶帳號、用戶姓名、用戶密碼為用戶的基本信息,同時為用戶關(guān)聯(lián)注冊時的關(guān)聯(lián)注冊信息;字段注冊時間為該用戶注冊時的時間;表3-6user_info表的結(jié)構(gòu)編號字段名稱數(shù)據(jù)類型長度允許空說明1idint4N序號、主鍵2userIDchar20N用戶賬號3userNamechar20N用戶姓名passWord char 20 N 用戶密碼createTime datetime 8 Y 注冊時間第4章詳細(xì)設(shè)計本系統(tǒng)共分為四個主要的功能模塊。用戶注冊模塊:統(tǒng)一認(rèn)證服務(wù)器上沒有該用戶的用戶可以進(jìn)行信息注冊,同時,服務(wù)器會檢測用戶賬號是否唯一,唯一則進(jìn)行注冊,否則不注冊。賬號關(guān)聯(lián)模塊:用戶登陸到自己可以使用系統(tǒng)服務(wù))中后,可以向統(tǒng)一認(rèn)證服務(wù)器發(fā)送賬號關(guān)聯(lián)注冊請求,統(tǒng)一認(rèn)證服務(wù)器對用戶提供的賬號信息進(jìn)行檢查,檢查成功則進(jìn)行關(guān)聯(lián)注冊,檢查失敗則不注冊。用戶認(rèn)證模塊:用戶通過已有的統(tǒng)一認(rèn)證服務(wù)器賬號和密碼進(jìn)行用戶認(rèn)證,認(rèn)證成功,則可以使用系統(tǒng)提供的服務(wù)。用戶管理模塊:管理員可以對用戶信息管理員權(quán)限分配、用戶賬號刪除、用戶可使用系統(tǒng):服務(wù))進(jìn)行分配等功能。4.1主界面設(shè)計主界面設(shè)計主要是以簡單友好、快捷方便為主要設(shè)計理念,因此系統(tǒng)的主界面設(shè)計主要是用戶登陸界面及模擬系統(tǒng)服務(wù))的登錄鏈接。[9在該登陸界面輸入正確的用戶名和密碼即可登陸到統(tǒng)一認(rèn)證系統(tǒng)。主界面如圖-1所示。用戶登錄時,如果用戶帳號和用戶密碼都不輸入,然后點(diǎn)擊登陸按鈕進(jìn)行用戶信息驗(yàn)證,則顯示錯誤信息用戶帳號和用戶密碼不能為空。if(loginForm.getUserID().trim().length()<=0&&loginForm.getPassWord().trim().length()<=0){loginForm.setErrorInfo(用戶賬號和用戶密碼不能為空!”);用戶登錄時,如果用戶帳號不輸入,然后點(diǎn)擊登陸按鈕進(jìn)行用戶信息驗(yàn)證,則顯示錯誤信息[用戶賬號不能為空|。if(loginForm.getUserID().trim().length()<=0){loginForm.setErrorInfo(用戶賬號不能為空!");用戶登錄時,如果用戶密碼不輸入,然后點(diǎn)擊登陸按鈕進(jìn)行用戶信息驗(yàn)證,則顯示錯誤信息[用戶密碼不能為空|。if(loginForm.getPassWord().trim().length()<=0){loginForm.setErrorInfo(用戶密碼不能為空!");用戶登錄時,如果輸入錯誤的用戶帳號和用戶密碼,然后點(diǎn)擊登陸按鈕進(jìn)行用戶信息驗(yàn)證,則顯示錯誤信息[用戶帳號和用戶密碼不正確],同時把輸入的用戶帳號和用戶密碼清空。If(alist==null||alist.isEmpty()){loginForm.setErrorInfo(〃用戶賬號和用戶密碼不正確!〃);loginForm.setUserID(〃〃);loginForm.setPassWord(〃〃);用戶登錄時,如果輸入正確的用戶帳號和用戶密碼,然后點(diǎn)擊登陸按鈕進(jìn)行用戶信息驗(yàn)證,用戶信息驗(yàn)證成功,系統(tǒng)將取得的用戶基本信息保存3SESSION中去,然后取得系統(tǒng)當(dāng)前時間,顯示系統(tǒng)首頁,同時將保存的用戶帳號和系統(tǒng)當(dāng)前時間顯示在系統(tǒng)首頁上。圖4-3用戶帳號和用戶密碼驗(yàn)證成功,顯示系統(tǒng)首頁用戶登陸成功后,系統(tǒng)會將用戶信息保存至Session中去,同時,系統(tǒng)會讀取該用戶的操作權(quán)限,根據(jù)用戶的操作權(quán)限,用戶只能使用與自己權(quán)限相同的系統(tǒng)功能模塊,如果用戶權(quán)限不等于系統(tǒng)功能所需要的權(quán)限,則對此用戶屏蔽相應(yīng)功能,這樣做提升了系統(tǒng)的安全性以及對高級和低級用戶使用系統(tǒng)時的區(qū)分。而且設(shè)置了登陸的的最大有效時間:publicclassCommonVlues{//Login的最大有效時間(分鐘)publicstaticfinalintMAXTIME=30;主要程序?qū)崿F(xiàn):系統(tǒng)通過判斷用戶輸入的用戶帳號和密碼是否符合要求,如果符合要求,那么系統(tǒng)會以輸入的用戶用戶帳號和用戶密碼為檢索條件,在數(shù)據(jù)庫中查找滿足條件的用戶信息,如果查找成功,那么系統(tǒng)將會在LDAP服務(wù)器上查找該用戶信息,如果該用戶的登陸信息存在,那么修改用戶登錄時間為當(dāng)前系統(tǒng)時間;如果該用戶信息不存在,那么系統(tǒng)會在LDAP服務(wù)器上注冊該用戶的登陸信息和登陸時間。同時顯示系統(tǒng)首頁。下面是在數(shù)據(jù)庫中檢查用戶帳號和用戶密碼為例的處理流程:publicArrayList<UserBean>getLoginInfo(UserBeanbean)throwsException{DBConnectiondbConn=newDBConnection();Connectionconn=dbConn.getConnection();Statementsta=conn.createStatement();StringstrSQL="select*fromuser_infowhereuserID='"+bean.getUserID().trim()+"'ANDpassWrd='"+bean.getPassWord().trim()+""'?+;ResultSetrs=sta.executeQuery(strSQL);ArrayList<UserBean>alist=newArrayList<UserBean>();//用戶賬號和用戶密碼檢查成功while(rs.next()){UserBeanloginBean=newUserBean();loginBean.setUserID(rs.getString("userID"));loginBean.setUserID(rs.getString("userName"));loginBean.setUserID(rs.getString("passWord"));loginBean.setAdminFlag(Integer.parseInt(rs.getString("adminFlag")));alist.add(loginBean);bean.setUserName(rs.getString("userName"));//檢查LDAP服務(wù)器上該用戶信息是否存在booleanuserCheck=LDAP.checkUser(bean.getUserID().trim(),bean.getPassWord().trim());〃如果該用戶信息已存在if(userCheck){//修改用戶登陸時間LDAP.modifyUser(bean.getUserID().trim());}else{//添加用戶信息LDAP.addUser(bean);}}//關(guān)閉數(shù)據(jù)庫連接dbConn.closeConnection(conn);returnalist;}4.2權(quán)限管理權(quán)限管理的主要原則是區(qū)分用戶級別,因此在用戶成功登陸后就可以直接看到用戶可以使用的操作,如果是管理員登陸,那么管理員可以進(jìn)行用戶管理及權(quán)可使用服務(wù)分配等操作。如果是普通用戶登陸,那么普通用戶只能使用該用戶可以使用的系統(tǒng)(服務(wù))。系統(tǒng)根據(jù)用戶的操作權(quán)限(管理員和普通用戶)來決定該用戶可以使用的功能模塊.<logic:equalname="loginForm"property="adminFlag"value='T'>S個是用來判斷管理員的。<logic:equalname="loginForm"property="adminFlag"value="0">S個是用來判斷普通用戶的。4.3用戶注冊如果沒有注冊的用戶想使用統(tǒng)一認(rèn)證服務(wù)器,那么除了做關(guān)聯(lián)注冊,還有就是進(jìn)行用戶信息注冊,輸入必須填的信息后點(diǎn)擊登陸]按鈕進(jìn)行信息提交,統(tǒng)一認(rèn)證服務(wù)器會根據(jù)用戶提交的注冊信息進(jìn)行檢查,如果該用戶賬號已經(jīng)存在,那么本次注冊失敗,同時系統(tǒng)會顯示注冊失敗信息該用戶賬號已存在,請重新輸入?。?,如果該用戶賬號不存在,那么統(tǒng)一認(rèn)證服務(wù)器會將該用戶信息進(jìn)行注冊,同時顯示注冊成功信息[恭喜您,注冊成功。系統(tǒng)首先判斷用戶提交的輸入信息是否合法,也就是數(shù)據(jù)類型是否正確,如果輸入的用戶信息合法,那么系統(tǒng)會將用戶的輸入信息添加到數(shù)據(jù)庫中(用戶信息表user_info)。如果數(shù)據(jù)庫操作成功,那么系統(tǒng)會將該用戶信息添加到LDAP服務(wù)器上,添加的數(shù)據(jù)信息有:用戶賬號、用戶密碼、用戶姓名以及注冊時間。如果數(shù)據(jù)庫操作失敗,那么直接跳轉(zhuǎn)到錯誤畫面;如果輸入的用戶信息不合法,那么直接返回到用戶注冊畫面。下面是系統(tǒng)檢查用戶提交的輸入信息是否合法操作:if(registerForm.getFlag()!=null){//用戶賬號檢查if(registerForm.getUserID().trim().equals("")){registerForm.setErrorInfo(用戶賬號不能為空');return(map.findForward("fal"));}//用戶姓名檢查if(registerForm.getUserName().trim().equals("")){registerForm.setErrorInfo(用戶姓名不能為空');return(map.findForward("fal"));}//用戶密碼檢查if(registerForm.getPassWord().trim().equals("")){registerForm.setErrorInfo(用戶密碼不能為空,);return(map.findForward("fal"));}//確認(rèn)密碼檢查if(registerForm.getRePassWord().trim().equals("")){registerForm.setErrorInfo確認(rèn)密碼不能為空');return(map.findForward("fal"));}//用戶密碼和確認(rèn)密碼是否一致檢查if(!registerForm.getPassWord().trim().equals(registerForm.getRePassWord())){registerForm.setErrorInfo確認(rèn)密碼不正確');return(map.findForward("fal"));}//班級檢查if(registerForm.getStrClass().trim().equals("")){registerForm.setErrorInfo班級不能為空");return(map.findForward("fal"));}//信息描述檢查if(registerForm.getStrDesc().trim().length()>100){registerForm.setErrorInfo信息描述不能超過100個字符');return(map.findForward("fal"));}圖4-4用戶注冊圖注冊用戶信息提交后,系統(tǒng)會去檢查提交的數(shù)據(jù)信息,如果數(shù)據(jù)信息檢查通過,那么該用戶信息會被注冊到數(shù)據(jù)庫中,同時也會被注冊至LDAP服務(wù)器上,下圖為注冊在LDAP服務(wù)器上的用戶信息,主要有:用戶帳號、用戶密碼、用戶名和用戶注冊時間(登錄時間)。圖4-5LDAP服務(wù)器上的用戶信息4.4關(guān)聯(lián)注冊模擬系統(tǒng)(服務(wù))的注冊用戶通過登陸該模擬系統(tǒng):服務(wù)),登陸成功后,如果用戶想使用統(tǒng)一認(rèn)證服務(wù),那么可以進(jìn)行關(guān)聯(lián)注冊,點(diǎn)擊關(guān)聯(lián)注冊]按鈕就可以向統(tǒng)一認(rèn)證服務(wù)器發(fā)送關(guān)聯(lián)注冊請求,同時發(fā)送用戶賬號、用戶姓名、用戶密碼,統(tǒng)-認(rèn)證服務(wù)器接收到該用戶發(fā)送的關(guān)聯(lián)注冊請求后,會發(fā)送用戶信息去模擬系統(tǒng)服務(wù))確認(rèn)該用戶信息,如果確認(rèn)成功,那么就將該用戶信息注冊到統(tǒng)一認(rèn)證服務(wù)器上,如果確認(rèn)失敗,那么就不去做注冊。

| 001系統(tǒng)若| 001系統(tǒng)若E-VxndowicIntvznulExplozIS畫囪1@http.//8080/LDAP/syst?m001Locin.doHP*]|x||Liv.Search ||Q|?|立件(Z)端悟(X)查看&)收8?夾(A) XAa) 助QI)34^|頃looi系tgtr頁C?&J *.心?頁面(£)▼◎工具(Q)一a歡迎使用001系統(tǒng)test002您好I歡迎您使用001系統(tǒng)美聯(lián)注珊退出.系統(tǒng)圖4-6關(guān)聯(lián)注冊圖4.5用戶管理這個模塊負(fù)責(zé)完成用戶管理功能,包括用戶的查詢、添加、刪除、鎖定、指定用戶所屬角色以及角色的查詢、添加、刪除。管理員用戶登陸成功后,可以對統(tǒng)一認(rèn)證服務(wù)器上的所有用戶進(jìn)行信息管理和可使用服務(wù)分配。

如果管理員要刪除該用戶是可以點(diǎn)擊刪除]按鈕就可以從統(tǒng)一身份服務(wù)器上刪除該用戶及相應(yīng)的可使用服務(wù),同時顯示信息[用戶刪除成功];用戶刪除失敗,則顯示信息[用戶刪除失?。?。,,,,息;如果用戶信息不存在,那么現(xiàn)實(shí)信息用戶信息不存布。如果修改用戶信息,那么點(diǎn)擊該用戶信息后的超鏈接詳細(xì)信息],然后設(shè)置要修改的用戶信息及該用戶可以使用的子系統(tǒng)或服務(wù)。如果修改該用戶為系統(tǒng)管理員,那么選擇管理員前面的復(fù)選框,然后點(diǎn)擊更新]按鈕,系統(tǒng)會將用戶信息表中該用戶信息中的管理員標(biāo)志修改為如果修改該用戶為普通用戶,那么不選擇管理員前面的復(fù)選框,然后點(diǎn)擊更新]按鈕,系統(tǒng)會將用戶信息表中該用戶信息中的管理員標(biāo)志修改為。如果分配用戶可使用的子系統(tǒng)或服務(wù),如果分配用戶可以使用該子系統(tǒng)或服務(wù)時,那么選中該子系統(tǒng)或服務(wù)前面的復(fù)選框;如果分配用戶不可以使用該子系統(tǒng)或服務(wù)時,那么不選中該子系統(tǒng)或服務(wù)前面的復(fù)選框;然后點(diǎn)![更新]按鈕,那么系統(tǒng)會將原來用戶系統(tǒng):服務(wù))表和該用戶關(guān)聯(lián)的數(shù)據(jù)信息全部刪除,然后再添加改用戶可以使用的子系統(tǒng)或服務(wù)。如果添加成功,那么顯示信息言息修改成功];如果添加失敗,那么直接跳轉(zhuǎn)到錯誤畫面,顯示錯誤信'您已出錯啦?。?。如果刪除用戶,那么點(diǎn)擊用戶信息畫面的冊。除]按鈕刪除該用戶,同時先刪除用戶系統(tǒng)(服務(wù))表中和該用戶關(guān)聯(lián)的用戶信息,然后再從LDAP服務(wù)器上刪除該用戶的注冊信息,再從用戶信息表中刪除該用戶信息,如果用戶信息刪除成功,那么現(xiàn)實(shí)信息[用戶刪除成功],如果用戶信息刪除失敗,那么直接跳轉(zhuǎn)到錯誤畫面,顯示錯誤信息[您已出錯啦?。?。系統(tǒng)為了模擬統(tǒng)一身份認(rèn)證系統(tǒng)的實(shí)用性,特別模擬了兩個子系統(tǒng)或服務(wù)(system_001和system_002*用戶在沒有登陸統(tǒng)一身份認(rèn)證服務(wù)器的情況下去使用模擬的子系統(tǒng)或服務(wù)時,需要先登錄,然后才能使用該子系統(tǒng)或服務(wù)。如果用戶在登陸了統(tǒng)一認(rèn)證服務(wù)器的情況下去使用模擬的子系統(tǒng)或服務(wù)時,系統(tǒng)先用session中的用戶信息去LDAP服務(wù)器上做用戶信息驗(yàn)證,如果驗(yàn)證成功,再檢查該用戶的登錄時間是否在允許的時間范圍內(nèi),如果在允許的范圍內(nèi),那么用戶可以直接使用該子系統(tǒng)或服務(wù);如果不在允許的范圍內(nèi),那么直接跳轉(zhuǎn)的統(tǒng)一身份認(rèn)證系統(tǒng)的登錄畫面,需再次登陸或才可使用。主要的程序?qū)崿F(xiàn)如下:publicActionForwardexecute(ActionMappingmap,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){//獲取系統(tǒng)登陸用formHttpSessionsession=request.getSession();LoginFormloginForm=(LoginForm)session.getAttribute("loginForm");//取得系統(tǒng)IDStringsystemID=request.getParameter("systemID");try{booleanuserCheck=false;booleantimeCheck=false;if(loginForm.getUserID()!=null){//LDAP服務(wù)器上檢查該用戶是否已經(jīng)登陸userCheck=LDAP.checkUser(loginForm.getUserID().trim(),loginForm.getPassWord().trim());//LDAP服務(wù)器上該用戶已經(jīng)登陸if(userCheck){//該用戶的上次登錄是否過期if(LDAP.getLoginTime(loginForm.getUserID().trim())<=CommonValues.MAXTIME){timeCheck=true;}}}//該用戶已登錄,且上次登錄沒有過期if(userCheck&&timeCheck){//系統(tǒng)ID檢查if("system001”.equals(systemID)){//ID==system001,跳轉(zhuǎn)到系統(tǒng)001的主頁面...return(map.findForward("system001”));}else{//ID==system002,跳轉(zhuǎn)到系統(tǒng)002的主頁面...return(map.findForward("system002”));}//該用戶沒有登錄,或者上次登錄已過期}else{if("system001”.equals(systemID)){//ID==system001,跳轉(zhuǎn)到系統(tǒng)001的登陸畫面return(map.findForward("system001Login"));}else{//ID==system002,跳轉(zhuǎn)到系統(tǒng)002的登陸畫面return(map.findForward("system002Login"));}}}catch(Exceptione1){//TODOAuto-generatedcatchblock//跳轉(zhuǎn)到出錯畫面return(map.findForward("error"));}}4.6數(shù)據(jù)庫連接本系統(tǒng)的數(shù)據(jù)庫連接利用JDBC數(shù)據(jù)源進(jìn)行連接,在其中進(jìn)行數(shù)據(jù)存儲,其中連接數(shù)據(jù)庫的代碼如下:publicclassDBConnection{privatefinalStringdriverName="com.microsoft.jdbc.sqlserver.SQLServerDriver”;privatefinalStringdbURL="jdbc:microsoft:sqlserver://:1433;DatabaseName=ldap”;privatefinalStringuserName="sa";privatefinalStringuserPwd="admin";//連接數(shù)據(jù)庫publicConnectiongetConnection()throwsException{Class.forName(driverName);//返回數(shù)據(jù)庫連接returnDriverManager.getConnection(dbURL,userName,userPwd);}//關(guān)閉數(shù)據(jù)庫連接publicvoidcloseConnection(Connectionconn){if(conn!=null){try{//關(guān)閉數(shù)據(jù)庫連接conn.close();}catch(Exceptione){}}}4.7LDAP服務(wù)器連接LDAP服務(wù)器本身具有讀密集型操作的特點(diǎn),這使得讀取速度比關(guān)系型數(shù)據(jù)庫快一個數(shù)量級,減少資源的消耗,提高系統(tǒng)的影響速度。并且更適合于為各種應(yīng)用服務(wù)器平臺做分布式處理。staticDirContextctx=null;privatefinalstaticStringROOT="o=localhost,c=com”;privatefinalstaticStringGROUP="ou=User,o=localhost,c=com

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論