版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
摘要身份認(rèn)證是網(wǎng)絡(luò)安全技術(shù)的一個(gè)重要方面,在各高校的各種應(yīng)用系統(tǒng)中身份認(rèn)證技術(shù)都得到了很好的應(yīng)用。但是,隨著高校中各種應(yīng)用系統(tǒng)使用越來(lái)越多,隨之而來(lái)的問(wèn)題是:在校園應(yīng)用系統(tǒng)中有太多的密碼需要記憶;住在院外的老師因沒(méi)有合法的身份而無(wú)法瀏覽和使用院內(nèi)的一些重要應(yīng)用系統(tǒng);教職工和學(xué)生的與身份相關(guān)的詳細(xì)信息在各個(gè)應(yīng)用系統(tǒng)中不一致;添加新的應(yīng)用系統(tǒng)時(shí)沒(méi)有一致的認(rèn)證和授權(quán)框架可以使用等等。建立數(shù)字校園系統(tǒng)是解決上述問(wèn)題也是近年來(lái)各高校校園網(wǎng)應(yīng)用建設(shè)的一個(gè)新的方向,它涉及數(shù)據(jù)集成、單點(diǎn)登錄、授權(quán)管理等多方面的內(nèi)容,而統(tǒng)一身份認(rèn)證方案是首先需要解決的問(wèn)題,其中包括單點(diǎn)登錄和授權(quán)管理。本文介紹了在進(jìn)行數(shù)字校園信息系統(tǒng)的建設(shè)過(guò)程中,采用LDAP作用戶(hù)信息存儲(chǔ),實(shí)現(xiàn)了基于LDAP服務(wù)的統(tǒng)一認(rèn)證服務(wù)。系統(tǒng)的各個(gè)層次相對(duì)獨(dú)立,保證了系統(tǒng)的松散耦合,同時(shí),系統(tǒng)易于集成,新的應(yīng)用系統(tǒng)可以不帶自己的用戶(hù)系統(tǒng),依靠統(tǒng)一認(rèn)證系統(tǒng)實(shí)現(xiàn)對(duì)用戶(hù)的認(rèn)證和授權(quán),降低了開(kāi)發(fā)難度。系統(tǒng)采用JAVA編程,說(shuō)明了各主要模塊的實(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)開(kāi)發(fā)環(huán)境及工具介紹. 62.1LDAP簡(jiǎn)介 6LDAP協(xié)議概述 6LDAP的安全模型 6\o"CurrentDocument"2.2STRUTS簡(jiǎn)介 7\o"CurrentDocument"Tomcat簡(jiǎn)介 8\o"CurrentDocument"Eclipse和myEclipse簡(jiǎn)介 8\o"CurrentDocument"2.5SQLSERVER2000簡(jiǎn)介 9\o"CurrentDocument"第3章總體設(shè)計(jì) 11\o"CurrentDocument"3.1總體設(shè)計(jì) 11\o"CurrentDocument"3.2功能設(shè)計(jì) 113.2.1用戶(hù)注冊(cè) 123.2.2賬號(hào)關(guān)聯(lián) 123.2.3用戶(hù)認(rèn)證 123.2.4用戶(hù)管理 12\o"CurrentDocument"3.3數(shù)據(jù)庫(kù)設(shè)計(jì) 13第4章詳細(xì)設(shè)計(jì) 174.1主界面設(shè)計(jì) 174.2系統(tǒng)首頁(yè)設(shè)計(jì) 錯(cuò)誤!未定義書(shū)簽。4.3用戶(hù)注冊(cè) 21\o"CurrentDocument"4.4關(guān)聯(lián)注冊(cè) 24\o"CurrentDocument"4.5用戶(hù)管理 25\o"CurrentDocument"4.6數(shù)據(jù)庫(kù)連接 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ì)算機(jī)的普及,人們己邁入信息化的社會(huì),互連網(wǎng)技術(shù)的大力推廣和快速發(fā)展,更使得社會(huì)信息化的程度不斷提高。目前,網(wǎng)絡(luò)已經(jīng)成為人們交換信息的主要手段。社會(huì)的信息化,必定會(huì)帶動(dòng)校園的信息化。在校園網(wǎng)中,用戶(hù)的數(shù)量在迅速的增長(zhǎng),網(wǎng)絡(luò)的使用由簡(jiǎn)單的上網(wǎng),發(fā)展到現(xiàn)在的各種應(yīng)用和服務(wù),如:網(wǎng)上教學(xué)、視頻會(huì)議等。在校園網(wǎng)中,除了有大量的信息資源,同時(shí)還存在著各種應(yīng)用系統(tǒng)。隨著校園網(wǎng)絡(luò)信息的逐漸增加和網(wǎng)絡(luò)規(guī)模的日益擴(kuò)大,每種應(yīng)用系統(tǒng)都需要進(jìn)行身份的識(shí)別和認(rèn)證,并且對(duì)不同身份所擁有的操作權(quán)限進(jìn)行授權(quán)。通常的做法是在每一個(gè)應(yīng)用系統(tǒng)中建立獨(dú)立的身份認(rèn)證模塊,使用獨(dú)立的認(rèn)證機(jī)制在各自的身份認(rèn)證文件或數(shù)據(jù)庫(kù)中認(rèn)證。這種管理模式和方法雖然可行,但是,這種傳統(tǒng)的訪(fǎng)問(wèn)控制,都是單個(gè)應(yīng)用系統(tǒng),各自獨(dú)立,各個(gè)用戶(hù)之間數(shù)據(jù)不能共享地訪(fǎng)問(wèn)控制。這樣,使網(wǎng)絡(luò)信息的查詢(xún)及網(wǎng)絡(luò)管理都變得很不方便,還會(huì)造成數(shù)據(jù)的不一致性。除此之外,這種認(rèn)證方式存在很多的弊端:消耗開(kāi)發(fā)成本和延緩應(yīng)用開(kāi)發(fā)進(jìn)度;無(wú)法統(tǒng)一認(rèn)證和授權(quán)策略;無(wú)法統(tǒng)一分析用戶(hù)的應(yīng)用行為;數(shù)據(jù)冗余度大,管理維護(hù)工作麻煩等等。另外,傳統(tǒng)的開(kāi)發(fā)模式都是基于關(guān)系型數(shù)據(jù)庫(kù)的用戶(hù)認(rèn)證信息管理模型,讀取速度慢,可移植性差。由此可見(jiàn),我們迫切需要一個(gè)統(tǒng)一的、完善的、安全的、易于管理的、有良好的可移植性和擴(kuò)展性的校園網(wǎng)用戶(hù)身份管理系統(tǒng)[1]?!皵?shù)字化校園”的概念就在這樣的背景下出臺(tái)了?!皵?shù)字化校園”是以校園網(wǎng)為硬件基礎(chǔ),利用先進(jìn)的信息化手段和工具,實(shí)現(xiàn)校園的資源數(shù)字化,形成一個(gè)數(shù)字空間,使得現(xiàn)實(shí)校園在時(shí)間和空間上延伸開(kāi)來(lái)。校園網(wǎng)絡(luò)及其應(yīng)用系統(tǒng)構(gòu)成整個(gè)園的神經(jīng)系統(tǒng),完成現(xiàn)實(shí)校園的信息傳遞和服務(wù)。在數(shù)字化校園里,可以方便的實(shí)現(xiàn)學(xué)校的教學(xué)、科研、管理、服務(wù)等活動(dòng)的全部過(guò)程,從而達(dá)到提高教學(xué)質(zhì)量、科研水平、管理水平的目的1]??梢哉f(shuō),“數(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)證方式存在著很多弊端,給用戶(hù)的使用帶來(lái)諸多不便。(1) 從信息的角度來(lái)說(shuō):信息缺乏有效共享:由于缺乏全局統(tǒng)一的系統(tǒng)規(guī)劃,應(yīng)用系統(tǒng)建設(shè)容易各自獨(dú)立,信息難以交換,更難以在更高的層次上進(jìn)行信息的處理。用戶(hù)信息無(wú)法統(tǒng)一更新:當(dāng)一個(gè)用戶(hù)的屬性發(fā)生改變時(shí),他的身份信息只在有限系統(tǒng)中被更改,其他系統(tǒng)無(wú)法自動(dòng)更新,最終造成用戶(hù)信息無(wú)法統(tǒng)一。信息重復(fù)情況嚴(yán)重:在整個(gè)系統(tǒng)中,同一個(gè)用戶(hù)的信息反復(fù)存放,數(shù)據(jù)冗余量過(guò)大,最終會(huì)造成所有系統(tǒng)信息存儲(chǔ)成本上升,性能下降,影響系統(tǒng)正常運(yùn)行。(2) 從管理的角度來(lái)說(shuō):系統(tǒng)信息的管理難度增加:由于信息無(wú)法統(tǒng)一進(jìn)行更新,以及大量的信息嚴(yán)重重復(fù),使得系統(tǒng)信息的管理的難度大大增加。用戶(hù)身份嚴(yán)重不一致:同一個(gè)用戶(hù)在不同的應(yīng)用系統(tǒng)中可能存在完全不同的屬性,造成同一個(gè)用戶(hù)同時(shí)有多個(gè)不同身份P4](3) 從用戶(hù)使用的角度來(lái)看:用戶(hù)操作復(fù)雜:用戶(hù)在使用不同應(yīng)用系統(tǒng)時(shí),必須反復(fù)登錄,操作極其麻煩。用戶(hù)缺乏統(tǒng)一的界面:對(duì)于不同的應(yīng)用系統(tǒng),用戶(hù)需要在不同的位置逐個(gè)進(jìn)入訪(fǎng)問(wèn),缺乏統(tǒng)一的訪(fǎng)問(wèn)資源和應(yīng)用的接口。(4) 從開(kāi)發(fā)和維護(hù)的成本角度來(lái)說(shuō):增加系統(tǒng)的開(kāi)發(fā)和管理成本:眾多應(yīng)用系統(tǒng),相互獨(dú)立,信息重復(fù)性大,共享程度低,更新困難,管理不便,都造成了成本的大幅度提高。增加用戶(hù)信息的維護(hù)難度:當(dāng)用戶(hù)狀況變更時(shí),需要同時(shí)修改不同應(yīng)用系統(tǒng)中的大量條目,增加了維護(hù)管理的難度。[成(5) 從安全的角度來(lái)說(shuō):嚴(yán)重破壞了系統(tǒng)的安全性:同一個(gè)用戶(hù)為進(jìn)入眾多應(yīng)用系統(tǒng),必須記憶和采用大量不同的密碼和身份信息,為了防止遺忘密碼,必定會(huì)大量使用重復(fù)的密碼和身份信息,而這些信息又分散在各個(gè)應(yīng)用系統(tǒng)的數(shù)據(jù)庫(kù)中,一旦泄密,系統(tǒng)安全蕩然無(wú)存。[3]由此可見(jiàn),傳統(tǒng)的身份認(rèn)證存在著很多弊端。為了解決以上問(wèn)題,現(xiàn)在各個(gè)學(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),每一個(gè)應(yīng)用系統(tǒng),我們都可以把它看成是現(xiàn)實(shí)的校園在數(shù)字空間上的一個(gè)映射。多個(gè)應(yīng)用系統(tǒng)組成了整個(gè)校園在數(shù)字空間上的多個(gè)映射,我們可以把它稱(chēng)之為數(shù)字校園。在現(xiàn)實(shí)校園中,每一個(gè)成員都有一個(gè)固定的身份,用戶(hù)的身份決定了用戶(hù)在校園空間所享有的權(quán)限。囹數(shù)字校園是現(xiàn)實(shí)校園在數(shù)字空間的反映,因此對(duì)于數(shù)字校園中的每一個(gè)成員,在數(shù)字空間也相應(yīng)地需要有一個(gè)固定的身份,即電子身份。對(duì)于數(shù)字校園來(lái)說(shuō),就是要建立一套統(tǒng)一的身份管理系統(tǒng),學(xué)校的每一個(gè)成員都有一個(gè)與其身份相應(yīng)的電子身份,用戶(hù)可以使用自己的電子身份訪(fǎng)問(wèn)數(shù)字校園中有權(quán)訪(fǎng)問(wèn)的任何系統(tǒng)。電子身份的確認(rèn)需要身份認(rèn)證技術(shù)。邸]身份認(rèn)證一般與授權(quán)控制是相互聯(lián)系的。授權(quán)控制是指一旦用戶(hù)的身份通過(guò)認(rèn)證以后,具體負(fù)責(zé)確定該用戶(hù)可以訪(fǎng)問(wèn)哪些資源,有什么樣的操作權(quán)限等。因此,在數(shù)字校園中,應(yīng)該有一個(gè)統(tǒng)一的身份認(rèn)證系統(tǒng)供各應(yīng)用系統(tǒng)使用,并且有單一的注冊(cè)中心統(tǒng)一為各部門(mén)服務(wù)。建立統(tǒng)一身份認(rèn)證系統(tǒng)后,用戶(hù)每次要訪(fǎng)問(wèn)網(wǎng)絡(luò)資源之前,必須先到認(rèn)證系統(tǒng)認(rèn)證身份,經(jīng)確認(rèn)后才能使用相應(yīng)的網(wǎng)絡(luò)資源。這樣,可以方便地實(shí)現(xiàn)對(duì)用戶(hù)的統(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ò)中的各種資源信息集中管理起來(lái),為用戶(hù)提供一個(gè)統(tǒng)一的服務(wù)系統(tǒng)。目錄服務(wù)在某種程度上講就是代表網(wǎng)絡(luò)用戶(hù)及資源在基于對(duì)象的數(shù)據(jù)庫(kù)上的網(wǎng)絡(luò)應(yīng)用服務(wù),每個(gè)對(duì)象中都存儲(chǔ)著與特定用戶(hù)和網(wǎng)絡(luò)資源有關(guān)的信息。對(duì)象可以在目錄的樹(shù)狀結(jié)構(gòu)中分層存儲(chǔ),便于用戶(hù)建立一個(gè)與校園組織結(jié)構(gòu)一致的網(wǎng)絡(luò)結(jié)構(gòu)。網(wǎng)絡(luò)上的每個(gè)用戶(hù)及資源均與其它用戶(hù)和資源有關(guān)聯(lián),目錄能夠通過(guò)鑒定和授權(quán)來(lái)管理和控制人和計(jì)算機(jī)、計(jì)算機(jī)和計(jì)算機(jī)之間的關(guān)系我們可以說(shuō),目錄是用于保存資源信息的,其中資源信息包括用戶(hù)和各類(lèi)軟硬件設(shè)施、用戶(hù)的帳號(hào)和口令信息等。相對(duì)于關(guān)系型數(shù)據(jù)庫(kù),應(yīng)用目錄服務(wù)管理用戶(hù)信息的優(yōu)點(diǎn)在于:目錄數(shù)據(jù)庫(kù)以樹(shù)狀的層次結(jié)構(gòu)描述數(shù)據(jù)信息,其數(shù)據(jù)模型與現(xiàn)實(shí)生活中的組織基本一致,在資源信息管理方面有很大的優(yōu)勢(shì),能夠較好的解決信息的分布管理和集中使用的問(wèn)題。概括而言,目錄數(shù)據(jù)庫(kù)有如下特點(diǎn):分布性:目錄信息能夠自然地分布在各地的服務(wù)器中,并由各地組織管理,既保證了目錄信息總體結(jié)構(gòu)一致,又滿(mǎn)足了分級(jí)管理的需要;易擴(kuò)展性:規(guī)模可大可小,大到全球,小到只有一臺(tái)目錄服務(wù)器的單位,目錄系統(tǒng)都能勝任,并且很容易擴(kuò)展;[17]查詢(xún)快速靈活:目錄國(guó)際標(biāo)準(zhǔn)定義的檢索操作提供了非常靈活的查詢(xún)條件,并且還可根據(jù)需要擴(kuò)充,可滿(mǎn)足復(fù)雜的模糊查詢(xún)需求,其面向查詢(xún)優(yōu)化的算法使得其檢索速度比關(guān)系數(shù)據(jù)庫(kù)快一個(gè)數(shù)量級(jí);[18]平臺(tái)無(wú)關(guān):作為國(guó)際標(biāo)準(zhǔn),目錄系統(tǒng)所使用的通信協(xié)議框架是OSI網(wǎng)絡(luò)七層結(jié)構(gòu)模型,完全與平臺(tái)無(wú)關(guān),保證了目錄系統(tǒng)的開(kāi)放性和各種類(lèi)型計(jì)算機(jī)在目錄服務(wù)中的互操作性,從而保證了用戶(hù)投資的長(zhǎng)期有效性;安全性:目錄系統(tǒng)規(guī)定了一個(gè)精密的存取控制方案,充分保證條目信息的安全,同時(shí)又便于管理者對(duì)用戶(hù)的存取權(quán)限進(jìn)行控制。因此目錄服務(wù)可以用來(lái)為其他應(yīng)用提供完善的身份認(rèn)證及權(quán)限控制服務(wù)。1.2.2統(tǒng)一身份認(rèn)證的現(xiàn)狀基于目錄服務(wù)的上述特點(diǎn),我們可以采用目錄服務(wù)技術(shù)來(lái)實(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ù)器來(lái)集中存儲(chǔ)用戶(hù)的個(gè)人身份信息和權(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ā)揮著越來(lái)越重要的作用。同時(shí)校園網(wǎng)是一類(lèi)復(fù)雜而很有代表性的網(wǎng),具有用戶(hù)數(shù)量大,網(wǎng)絡(luò)應(yīng)用與服務(wù)繁多等特點(diǎn)。在校園網(wǎng)中通常是由各個(gè)應(yīng)用程序和服務(wù)使用各自特定的數(shù)據(jù)庫(kù)來(lái)存儲(chǔ)用戶(hù)信息,并使用各自特定的協(xié)議實(shí)現(xiàn)用戶(hù)信息的訪(fǎng)問(wèn)。因此產(chǎn)生了各類(lèi)用戶(hù)信息重復(fù)和不一致等問(wèn)題給管理員和用戶(hù)帶來(lái)了麻煩同時(shí)也存在網(wǎng)絡(luò)安全隱患。因此迫切需要實(shí)現(xiàn)校園網(wǎng)用戶(hù)的統(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)一用戶(hù)管理和身份認(rèn)證,可讓用戶(hù)只使用一套用戶(hù)賬戶(hù)>就可以登錄校園內(nèi)所有的采用統(tǒng)一身份認(rèn)證的應(yīng)用系統(tǒng)和服務(wù)。從而實(shí)現(xiàn)集中的用戶(hù)管理、統(tǒng)一的身份認(rèn)證和統(tǒng)一的訪(fǎng)問(wèn)控制。從一定意義上講,校園網(wǎng)的建設(shè)是衡量一個(gè)高校綜合實(shí)力的重要標(biāo)志。開(kāi)發(fā)本系統(tǒng)的目的就是充分利用現(xiàn)代信息技術(shù),提高信息利用效率,提高學(xué)校教學(xué)、辦公管理的水平,實(shí)現(xiàn)學(xué)校信息化管理,為此在數(shù)字化校園的建設(shè)中使用統(tǒng)一接口、統(tǒng)一信息服務(wù)平臺(tái)、統(tǒng)一身份認(rèn)證系統(tǒng)的結(jié)合的顯得尤為重要。建立統(tǒng)一身份認(rèn)證系統(tǒng),對(duì)用戶(hù)的身份集中集中管理,保證用戶(hù)電子身份的惟一性、真實(shí)性與權(quán)威性,大大提高了校園應(yīng)用系統(tǒng)的安全性。第2章系統(tǒng)開(kāi)發(fā)環(huán)境及工具介紹2.1LDAP簡(jiǎn)介L(zhǎng)DAP協(xié)議概述LDAP(LightweightDirectoryAccessProtocol)即輕量級(jí)目錄訪(fǎng)問(wèn)協(xié)議,直接運(yùn)行于TCP/IP或者其他可靠傳輸協(xié)議之上,是目錄服務(wù)的前端訪(fǎng)問(wèn)協(xié)議LDAP基本工作方式為L(zhǎng)DAP客戶(hù)端向LDAP服務(wù)器發(fā)送請(qǐng)求,服務(wù)器發(fā)回應(yīng)答信息,LDAP協(xié)議定義的便是客戶(hù)機(jī)與服務(wù)器之間請(qǐng)求、應(yīng)答的格式和約定,即LDAP客戶(hù)機(jī)訪(fǎng)問(wèn)服務(wù)器的前端訪(fǎng)問(wèn)協(xié)議。⑸目錄服務(wù)就是按照樹(shù)狀信息組織模式,實(shí)現(xiàn)信息管理和服務(wù)接口的一種方法,是一種特殊的邏輯數(shù)據(jù)庫(kù),具有強(qiáng)大的檢索功能和完善的安全機(jī)制,并有良好的跨平臺(tái)性。LDAP以目錄信息樹(shù)結(jié)構(gòu)的形式存儲(chǔ)信息,目錄信息樹(shù)中的一個(gè)節(jié)點(diǎn)即為一個(gè)條目(Entry),每個(gè)條目包含屬性(Attribute和口屬性值。[6]屬性由對(duì)象類(lèi)(objectclass確定,每個(gè)對(duì)象類(lèi)包含多個(gè)必須或可選屬性。條目信息通過(guò)LDAP數(shù)據(jù)交換格式文件(LDIF)以文本的形式進(jìn)行描述。LDAP的安全模型LDAP中的安全模型是為了保護(hù)存儲(chǔ)在LDAP中信息的安全性,主要通過(guò)身份認(rèn)證、安全通道和訪(fǎng)問(wèn)控制來(lái)實(shí)現(xiàn)[刀。身份認(rèn)證有匿名、基本認(rèn)證和SASL(SimpleAuthenticationandSecureLayer)認(rèn)證。匿名認(rèn)證即不對(duì)用戶(hù)進(jìn)行認(rèn)證,該方法僅對(duì)完全公開(kāi)的方式適用;基本認(rèn)證是通過(guò)用戶(hù)名和密碼進(jìn)行身份識(shí)別,又分為簡(jiǎn)單密碼和摘要密碼認(rèn)證;SASL認(rèn)證即LDAP提供的在SSL和TLS安全通道基礎(chǔ)上進(jìn)行的身份認(rèn)證,包括數(shù)字證書(shū)的認(rèn)證。LDAP中提供了基于SSL/TLS的通訊安全保障,SSL/TLS是基于PKI信息安全的技術(shù),是目前工nternet上廣泛采用的安全服務(wù)。罔在LDAP中是基于訪(fǎng)問(wèn)控制策略語(yǔ)句來(lái)實(shí)現(xiàn)訪(fǎng)問(wèn)控制的,這不同于現(xiàn)有的關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)和應(yīng)用系統(tǒng),它是通過(guò)基于訪(fǎng)問(wèn)控制列表ACL,AccessControlLists)來(lái)實(shí)現(xiàn),在通過(guò)目錄認(rèn)證后,對(duì)目錄的訪(fǎng)問(wèn)操作權(quán)限援CL的定義來(lái)分配。[9],[10],[11無(wú)論是基于組織模式或角色模式,都擺脫不了這種限制。對(duì)于LDAP,用戶(hù)數(shù)據(jù)管理和訪(fǎng)問(wèn)標(biāo)識(shí)是一體的,應(yīng)用不需要關(guān)心訪(fǎng)問(wèn)控制的實(shí)現(xiàn)。無(wú)論是訪(fǎng)問(wèn)控制的數(shù)據(jù)對(duì)象,還是訪(fǎng)問(wèn)控制的主體對(duì)象,均是與這些對(duì)象在樹(shù)中的位置和對(duì)象本身的數(shù)據(jù)特征相關(guān)。在LDAP中,可以把整個(gè)目錄、目錄的子樹(shù)、制定條目、特定條目屬性集或符合某過(guò)濾條件的條目作為控制對(duì)象進(jìn)行授權(quán)可以把特定用戶(hù)、屬于特定組或所有目錄用戶(hù)作為授權(quán)主體進(jìn)行授權(quán)最后,還可以定義對(duì)特定位胃例如IP地址或DNS名稱(chēng))的訪(fǎng)問(wèn)權(quán)。2.2STRUTS簡(jiǎn)介Struts只是一個(gè)MVC框架(Framework),用于快速開(kāi)發(fā)JavaWeb應(yīng)用。Struts實(shí)現(xiàn)的重點(diǎn)在C(Controller)包括ActionServlet/RequestProcessor和我們定制的Action也為V(View提供了一系列定制標(biāo)簽CustomTag)o但Struts幾乎沒(méi)有涉及M(Model)所以Struts可以采用JAVA實(shí)現(xiàn)的任何形式的商業(yè)邏輯。優(yōu)點(diǎn):Struts跟TomcatTurbine等諸多Apache項(xiàng)目一樣,是開(kāi)源軟件,這是它的一大優(yōu)點(diǎn)。使開(kāi)發(fā)者能更深入的了解其內(nèi)部實(shí)現(xiàn)機(jī)制。Taglib和頁(yè)面導(dǎo)航。Taglib是Struts的標(biāo)記庫(kù),靈活動(dòng)用,能大大提高開(kāi)發(fā)效率。另外,就目前國(guó)內(nèi)的JSP開(kāi)發(fā)者而言,除了使用JSP自帶的常用標(biāo)記外,很少開(kāi)發(fā)自己的標(biāo)記,或許Struts是一個(gè)很好的起點(diǎn)。關(guān)于頁(yè)面導(dǎo)航,我認(rèn)為那將是今后的一個(gè)發(fā)展方向,事實(shí)上,這樣做,使系統(tǒng)的脈絡(luò)更加清晰12]。通過(guò)一個(gè)配置文件,即可把握整個(gè)系統(tǒng)各部分之間的聯(lián)系,這對(duì)于后期的維護(hù)有著莫大的好處同尤其是當(dāng)另一批開(kāi)發(fā)者接手這個(gè)項(xiàng)目時(shí),這種優(yōu)勢(shì)體現(xiàn)得更加明顯。缺點(diǎn):Taglib是Struts的一大優(yōu)勢(shì),但對(duì)于初學(xué)者而言,卻需要一個(gè)持續(xù)學(xué)習(xí)的過(guò)程,甚至還會(huì)打亂你網(wǎng)頁(yè)編寫(xiě)的習(xí)慣,但是,當(dāng)你習(xí)慣了它時(shí),你會(huì)覺(jué)得它真的很棒。Struts將MVC的Controller一分為三,在獲得結(jié)構(gòu)更加清晰的同時(shí),也增加了系統(tǒng)的復(fù)雜度。Struts從產(chǎn)生到現(xiàn)在還不到半年,但已逐步越來(lái)越多運(yùn)用于商業(yè)軟件。雖然它現(xiàn)在還有不少缺點(diǎn),但它是一種非常優(yōu)秀的2EEMVC實(shí)現(xiàn)方式。Struts最早是作為ApacheJakarta項(xiàng)目的組成部分問(wèn)世運(yùn)作。項(xiàng)目的創(chuàng)立者希望通過(guò)對(duì)該項(xiàng)目的研究,改進(jìn)和提高JavaServerPages>Servle、標(biāo)簽庫(kù)以及面向?qū)ο蟮募夹g(shù)水準(zhǔn)。Struts跟TomcatTurbine等諸多Apache項(xiàng)目一樣,是開(kāi)源軟件,這是它的一大優(yōu)點(diǎn),使開(kāi)發(fā)者能更深入的了解其內(nèi)部實(shí)現(xiàn)機(jī)制。Struts框架具有組件的模塊化,靈活性和重用性的優(yōu)點(diǎn),同時(shí)簡(jiǎn)化了基于MVC的web應(yīng)用程序的開(kāi)發(fā)?;谝陨戏治?,本系統(tǒng)采用Struts框架。Tomcat簡(jiǎn)介自從JSP發(fā)布之后,推出了各式各樣的TSP引擎。ApacheGroup在完成GNUJSP1.0的開(kāi)發(fā)以后,開(kāi)始考慮在SUN的JSWDK基礎(chǔ)上開(kāi)發(fā)一個(gè)可以直接提供Web服務(wù)的JSP服務(wù)器,當(dāng)然同時(shí)也支持Servlet,這樣Tomcat就誕生了。Tomcat是jakarta項(xiàng)目中的一個(gè)重要的子項(xiàng)目,其被JavaWorld雜志的編輯選為2001年度最具創(chuàng)新的java產(chǎn)品,同時(shí)它又是sun公司官方推薦的servlet和jsp容器,因此其越來(lái)越多的受到軟件公司和開(kāi)發(fā)人員的喜愛(ài)。servlet和jsp的最新規(guī)范都可以在tomcat的新版本中得到實(shí)現(xiàn)。其次,Tomcat是完全免費(fèi)的軟件,任何人都可以從互聯(lián)網(wǎng)上自由地下載。Tomcat與Apache的組合相當(dāng)完美。Tomcat服務(wù)器的使用也非常簡(jiǎn)單,將打包好的工程Lvar)拷貝到目錄webapps下,然后啟動(dòng)Tomcat服務(wù)器即可。Eclpse和MyEclpse簡(jiǎn)介Eclipse是一個(gè)開(kāi)放源代碼的、基于Java的可擴(kuò)展開(kāi)發(fā)平臺(tái)。就其本身而言,它只是一個(gè)框架和一組服務(wù),用于通過(guò)插件組件構(gòu)建開(kāi)發(fā)環(huán)境。幸運(yùn)的是,Eclipse附帶了一個(gè)標(biāo)準(zhǔn)的插件集,包括Java開(kāi)發(fā)工具(JavaDevelopmentToos,JDT)。雖然大多數(shù)用戶(hù)很樂(lè)于將Eclipse當(dāng)作JavaIDE來(lái)使用,但Eclipse的目標(biāo)不僅限于此。Eclipse還包括插件開(kāi)發(fā)環(huán)境(Plug-inDevelopmentEnvironment.PDE),這個(gè)組件主要針對(duì)希望擴(kuò)展Eclipse的軟件開(kāi)發(fā)人員,因?yàn)樗试S他們構(gòu)建與Eclipse環(huán)境無(wú)縫集成的工具。由于Eclipse中的每樣?xùn)|西都是插件,對(duì)于給Eclipse提供插件,以及給用戶(hù)提供一致和統(tǒng)一的集成開(kāi)發(fā)環(huán)境而言,所有工具開(kāi)發(fā)人員都具有同等的發(fā)揮場(chǎng)所。這種平等和一致性并不僅限于Java開(kāi)發(fā)工具。盡管Eclipse是使用Java語(yǔ)言開(kāi)發(fā)的,但它的用途并不限于Java語(yǔ)言;例如,支持諸如C/C++、COBOL和Eiffel等編程語(yǔ)言的插件已經(jīng)可用,或預(yù)計(jì)會(huì)推出。Eclipse框架還可用來(lái)作為與軟件開(kāi)發(fā)無(wú)關(guān)的其他應(yīng)用程序類(lèi)型的基礎(chǔ),比如內(nèi)容管理系統(tǒng)?;贓clipse的應(yīng)用程序的突出例子是IBM的WebSphereStudioWorkbench它構(gòu)成了IBMJava開(kāi)發(fā)工具系列的基礎(chǔ)。例如,WebSphereStudioApplicationDeveloper添加了對(duì)JSP、servletEJB、XML、Web服務(wù)和數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)的支持。MyEclipse企業(yè)級(jí)工作平臺(tái)(MyEclipseEnterpriseWorkbench,簡(jiǎn)稱(chēng)MyEclipse)是對(duì)EclipseIDE的擴(kuò)展,利用它我們可以在數(shù)據(jù)庫(kù)和J2EE的開(kāi)發(fā)、發(fā)布,以及應(yīng)用程序服務(wù)器的整合方面極大的提高工作效率。它是功能豐富的J2EE集成開(kāi)發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測(cè)試和發(fā)布功能,完整支持HTML,Struts,JSF,CSS,Javascript,SQL,Hibernate在結(jié)構(gòu)上,MyEclipse的特征可以被分為7類(lèi):J2EE模型,WEB開(kāi)發(fā)工具,EJB開(kāi)發(fā)工具,應(yīng)用程序服務(wù)器的連接器,J2EE項(xiàng)目部署服務(wù),數(shù)據(jù)庫(kù)服務(wù),MyEclipse整合幫助。對(duì)于以上每一種功能上的類(lèi)別,在Eclipse中都有相應(yīng)的功能部件,并通過(guò)一系列的插件來(lái)實(shí)現(xiàn)它們。MyEclipse結(jié)構(gòu)上的這種模塊化,可以讓我們?cè)诓挥绊懫渌K的情況下,對(duì)任一模塊進(jìn)行單獨(dú)的擴(kuò)展和升級(jí)。簡(jiǎn)單而言,MyEclipse是Eclipse的插件,也是一款功能強(qiáng)大的J2EE集成開(kāi)發(fā)環(huán)境,支持代碼編寫(xiě)、配置、測(cè)試以及除錯(cuò)。SQLSERVER200簡(jiǎn)介SQLServer2000是微軟公司最新推出的高性能關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),使微軟公司在大型數(shù)據(jù)庫(kù)領(lǐng)域的最新版本和旗艦產(chǎn)品,也是微軟公司爭(zhēng)奪電子商務(wù)領(lǐng)域最重要的核心部件市場(chǎng)--網(wǎng)絡(luò)數(shù)據(jù)庫(kù)平臺(tái)的一大利器。SQLServer2000建立在SQLServer6.5和SQLServer7.0堅(jiān)固而雄厚的技術(shù)基礎(chǔ)之上,是公認(rèn)的運(yùn)行在WindowsNT平臺(tái)上的最佳數(shù)據(jù)庫(kù)°SQLServer2000已經(jīng)在性能和可擴(kuò)展性方面確立了世界領(lǐng)先的地位,是一套完全的數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)分析解決方案。SQLServer2000的特點(diǎn)如下:與INTERNET的緊密結(jié)合,集成了對(duì)XML的支持,可擴(kuò)展、易于使用和安全??蓴U(kuò)展性和可用性,支持聯(lián)盟數(shù)據(jù)庫(kù)服務(wù)器口3]企業(yè)級(jí)數(shù)據(jù)庫(kù),具備有完善而強(qiáng)大的數(shù)據(jù)處理功能。簡(jiǎn)單友好的操作方式,具有非常友好的用戶(hù)界面,易于安裝、使用和發(fā)布。數(shù)據(jù)倉(cāng)庫(kù)支持,滿(mǎn)足當(dāng)代企業(yè)對(duì)大規(guī)模數(shù)據(jù)進(jìn)行有效分析和利用。第3章總體設(shè)計(jì)3.1總體設(shè)計(jì)統(tǒng)一身份認(rèn)證系統(tǒng)的工作流程是:用戶(hù)登錄一在LDAP服務(wù)器上進(jìn)行身份認(rèn)證一認(rèn)證成功一使用可以使用的系統(tǒng)服務(wù)。主要功能模塊圖如圖1所示。圖3-1功能模塊圖3.2功能設(shè)計(jì)根據(jù)校園網(wǎng)身份統(tǒng)一認(rèn)證的分析與設(shè)計(jì)的需求分析,該系統(tǒng)主要需要具備三項(xiàng)功能:3.2.1用戶(hù)注冊(cè)(1) 用戶(hù)登陸系統(tǒng)。(2) 用戶(hù)向統(tǒng)一身份認(rèn)證服務(wù)發(fā)出新用戶(hù)注冊(cè)請(qǐng)求。(3) 服務(wù)查詢(xún)用戶(hù)注冊(cè)庫(kù),如果該用戶(hù)可以注般有同名ID等違背約束情況發(fā)生),那么將該用戶(hù)的信息保存到用戶(hù)注冊(cè)庫(kù)中。(4) 當(dāng)保存完畢后,統(tǒng)一身份認(rèn)證服務(wù)響應(yīng)用戶(hù),注冊(cè)完成。3.2.2賬號(hào)關(guān)聯(lián)(1) 用戶(hù)向統(tǒng)一身份認(rèn)證服務(wù)發(fā)出帳號(hào)關(guān)聯(lián)注冊(cè)請(qǐng)求,用戶(hù)提供了應(yīng)用系統(tǒng)的標(biāo)識(shí)A,同時(shí)提供了可以在該應(yīng)用系統(tǒng)中使用的用戶(hù)信息可能包含用戶(hù)名和密碼等)。(2) 服務(wù)首先向該應(yīng)用系統(tǒng)A征詢(xún),用戶(hù)信息是否合法。如果合法則響應(yīng)服務(wù)。(3) 如果收到合法響應(yīng),那么服務(wù)就將這個(gè)帳號(hào)關(guān)聯(lián)注冊(cè)信息保存到用戶(hù)注冊(cè)庫(kù)中,以后該用戶(hù)登錄統(tǒng)一身份認(rèn)證服務(wù)之后,就能夠使用相應(yīng)的應(yīng)用系統(tǒng)(4) 注冊(cè)庫(kù)完成保存操作后,統(tǒng)一身份認(rèn)證服務(wù)響應(yīng)用戶(hù),注冊(cè)完成。3.2.3用戶(hù)認(rèn)證(1) 用戶(hù)使用在統(tǒng)一認(rèn)證服務(wù)注冊(cè)的用戶(hù)名和密時(shí)數(shù)字簽名等)登陸統(tǒng)一認(rèn)服務(wù);(2) 統(tǒng)一認(rèn)證服務(wù)核查用戶(hù)身份,創(chuàng)建了一個(gè)全局Oginsession,同時(shí)將與會(huì)話(huà)關(guān)聯(lián)的訪(fǎng)問(wèn)認(rèn)證令牌返回給用戶(hù);(3) 用戶(hù)使用這個(gè)訪(fǎng)問(wèn)認(rèn)證令牌訪(fǎng)問(wèn)某個(gè)支持統(tǒng)一身份認(rèn)證服務(wù)的應(yīng)用系;(4) 該應(yīng)用系統(tǒng)將訪(fǎng)問(wèn)認(rèn)證令牌傳入統(tǒng)一身份認(rèn)證服務(wù),認(rèn)證訪(fǎng)問(wèn)認(rèn)證令牌有效性;(5) 統(tǒng)一身份認(rèn)證服務(wù)確認(rèn)認(rèn)證令牌的有效性;(6) 應(yīng)用系統(tǒng)接收訪(fǎng)問(wèn),并返回訪(fǎng)問(wèn)結(jié)果,用戶(hù)可以憑借該令牌訪(fǎng)問(wèn)任何應(yīng)系統(tǒng)。3.2.4用戶(hù)管理(1)為用戶(hù)分配該用戶(hù)可以使用服務(wù)。刪除用戶(hù)及其可以使用的服務(wù)。管理員和非管理員權(quán)限分配3.3數(shù)據(jù)庫(kù)設(shè)計(jì)為了使各種類(lèi)型的數(shù)據(jù)庫(kù)系統(tǒng)能夠充分發(fā)揮它們的優(yōu)越性,必須對(duì)數(shù)據(jù)庫(kù)管理系統(tǒng)的使用提出一些明確的要求。對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)的具體要求如下:盡量減少數(shù)據(jù)的重復(fù),使數(shù)據(jù)的冗余度達(dá)到最小。提高數(shù)據(jù)的利用率,實(shí)現(xiàn)多用戶(hù)共享數(shù)據(jù)資源。保持?jǐn)?shù)據(jù)的完整性。注意同一數(shù)據(jù)描述方法的一致性,使數(shù)據(jù)操作不致發(fā)生混亂。對(duì)于某些需要保密的數(shù)據(jù),必須增設(shè)保密措施。數(shù)據(jù)的查詢(xún)效率高,根據(jù)需要數(shù)據(jù)應(yīng)能被及時(shí)維護(hù)。系統(tǒng)中主要的表有三張表,分別是:用戶(hù)信息表、系統(tǒng)服務(wù))信息表和用戶(hù)系統(tǒng)(服務(wù))表。用戶(hù)信息表主要存放的是可以使用統(tǒng)一身份認(rèn)證服務(wù)器的用戶(hù)信息;系統(tǒng)(服務(wù))信息表主要存放的是該系統(tǒng)中所有需要登錄才能使用的子系統(tǒng)或服務(wù);用戶(hù)系統(tǒng)(服務(wù))表主要存放的是每一個(gè)用戶(hù)登錄統(tǒng)一身份認(rèn)證服務(wù)器后可以使用的子系統(tǒng)或服務(wù)。數(shù)據(jù)表的結(jié)構(gòu)設(shè)計(jì)如下:user_info表主要用來(lái)存放LDAP服務(wù)器上注冊(cè)的所有用戶(hù)信息及關(guān)聯(lián)注冊(cè)的用戶(hù)信息,其中字段序號(hào)為主鍵,自動(dòng)增長(zhǎng)的,每添加一條信息就會(huì)自動(dòng)增加該字段主要用來(lái)做數(shù)據(jù)信息更新和刪除用。字段用戶(hù)帳號(hào)、用戶(hù)姓名、用戶(hù)密碼、性別、年齡、所在班級(jí)及描述為注冊(cè)用戶(hù)的基本信息;字段注冊(cè)時(shí)間為該用戶(hù)注冊(cè)時(shí)的時(shí)間;字段更新時(shí)間為更新用戶(hù)信息時(shí)的時(shí)間;字段管理員標(biāo)志主要是用來(lái)區(qū)分該用戶(hù)是管理員還是普通用戶(hù),管理員標(biāo)志為1,普通用戶(hù)標(biāo)志為0,默認(rèn)為0。其中用戶(hù)帳號(hào)不能重復(fù)表3-2userinfo表的結(jié)構(gòu)編號(hào) 字段名稱(chēng) 數(shù)據(jù)類(lèi)型 長(zhǎng)度 允許空說(shuō)明1 id int4N 序號(hào)、主鍵
2userIDchar20N用戶(hù)賬號(hào)3userNamechar20N用戶(hù)姓名4passWordchar20N用戶(hù)密碼5sexchar2N性別6ageint4N年齡7classchar20Y所在班級(jí)8descrchar100Y信息描述9createTimedatetime8Y注冊(cè)時(shí)間10updateTimedatetime8Y更新時(shí)間11adminFlagtinyint1N管理員標(biāo)志system_info表主要用來(lái)存放統(tǒng)一認(rèn)證服務(wù)器上所有的子系統(tǒng)(服務(wù)),其中字段序號(hào)為主鍵,自動(dòng)增長(zhǎng)的,每添加一條信息就會(huì)自動(dòng)增加該字段主要用來(lái)做數(shù)據(jù)信息更新和刪除用。字段系統(tǒng)編號(hào)、系統(tǒng)名稱(chēng)和系統(tǒng)描述為子系統(tǒng)(服務(wù))的基本信息,其中系統(tǒng)編號(hào)不能重復(fù)。表3-3system_info表的結(jié)構(gòu)編號(hào)字段名稱(chēng)數(shù)據(jù)類(lèi)型長(zhǎng)度允許空說(shuō)明1idint4N序號(hào)、主鍵2systemIDchar20N系統(tǒng)編號(hào)3systemNamechar50N系統(tǒng)名稱(chēng)4systemDescchar100N系統(tǒng)描述user_system表主要用來(lái)存放統(tǒng)一認(rèn)證服務(wù)器上所有用戶(hù)可以使用的子系統(tǒng)(服務(wù))信息,其中字段序號(hào)為主鍵,自動(dòng)增長(zhǎng)的,每添加一條信息就會(huì)自動(dòng)增加1,該字段主要用來(lái)做數(shù)據(jù)信息更新和刪除用。字段用戶(hù)帳號(hào)關(guān)聯(lián)用戶(hù)信息表中的用戶(hù)帳號(hào),字段系統(tǒng)編號(hào)關(guān)聯(lián)系統(tǒng)服務(wù))信息表中的系統(tǒng)編號(hào)。表3-4user_system表的結(jié)構(gòu)
編號(hào)字段名稱(chēng)數(shù)據(jù)類(lèi)型長(zhǎng)度允許空說(shuō)明1idint4N序號(hào)、主鍵2userIDchar20N用戶(hù)賬號(hào)3systemIDchar20N系統(tǒng)編號(hào)user_info表主要是用來(lái)存放該子系統(tǒng)上的用戶(hù)信息,其中字段序號(hào)為主鍵,自動(dòng)增長(zhǎng)的,每添加一條信息就會(huì)自動(dòng)增加該字段主要用來(lái)做數(shù)據(jù)信息更新和刪除用。字段用戶(hù)帳號(hào)、用戶(hù)姓名、用戶(hù)密碼為用戶(hù)的基本信息,同時(shí)為用戶(hù)關(guān)聯(lián)注冊(cè)時(shí)的關(guān)聯(lián)注冊(cè)信息;字段注冊(cè)時(shí)間為該用戶(hù)注冊(cè)時(shí)的時(shí)間;表3-5user_info表的結(jié)構(gòu)編號(hào)字段名稱(chēng)數(shù)據(jù)類(lèi)型長(zhǎng)度允許空說(shuō)明1idint4N序號(hào)、主鍵2userIDchar20N用戶(hù)賬號(hào)3userNamechar20N用戶(hù)姓名4passWordchar20N用戶(hù)密碼5createTimedatetime8Y注冊(cè)時(shí)間user_info表主要是用來(lái)存放該子系統(tǒng)上的用戶(hù)信息,其中字段序號(hào)為主鍵,自動(dòng)增長(zhǎng)的,每添加一條信息就會(huì)自動(dòng)增加該字段主要用來(lái)做數(shù)據(jù)信息更新和刪除用。字段用戶(hù)帳號(hào)、用戶(hù)姓名、用戶(hù)密碼為用戶(hù)的基本信息,同時(shí)為用戶(hù)關(guān)聯(lián)注冊(cè)時(shí)的關(guān)聯(lián)注冊(cè)信息;字段注冊(cè)時(shí)間為該用戶(hù)注冊(cè)時(shí)的時(shí)間;表3-6user_info表的結(jié)構(gòu)編號(hào)字段名稱(chēng)數(shù)據(jù)類(lèi)型長(zhǎng)度允許空說(shuō)明1idint4N序號(hào)、主鍵2userIDchar20N用戶(hù)賬號(hào)3userNamechar20N用戶(hù)姓名passWord char 20 N 用戶(hù)密碼createTime datetime 8 Y 注冊(cè)時(shí)間第4章詳細(xì)設(shè)計(jì)本系統(tǒng)共分為四個(gè)主要的功能模塊。用戶(hù)注冊(cè)模塊:統(tǒng)一認(rèn)證服務(wù)器上沒(méi)有該用戶(hù)的用戶(hù)可以進(jìn)行信息注冊(cè),同時(shí),服務(wù)器會(huì)檢測(cè)用戶(hù)賬號(hào)是否唯一,唯一則進(jìn)行注冊(cè),否則不注冊(cè)。賬號(hào)關(guān)聯(lián)模塊:用戶(hù)登陸到自己可以使用系統(tǒng)服務(wù))中后,可以向統(tǒng)一認(rèn)證服務(wù)器發(fā)送賬號(hào)關(guān)聯(lián)注冊(cè)請(qǐng)求,統(tǒng)一認(rèn)證服務(wù)器對(duì)用戶(hù)提供的賬號(hào)信息進(jìn)行檢查,檢查成功則進(jìn)行關(guān)聯(lián)注冊(cè),檢查失敗則不注冊(cè)。用戶(hù)認(rèn)證模塊:用戶(hù)通過(guò)已有的統(tǒng)一認(rèn)證服務(wù)器賬號(hào)和密碼進(jìn)行用戶(hù)認(rèn)證,認(rèn)證成功,則可以使用系統(tǒng)提供的服務(wù)。用戶(hù)管理模塊:管理員可以對(duì)用戶(hù)信息管理員權(quán)限分配、用戶(hù)賬號(hào)刪除、用戶(hù)可使用系統(tǒng):服務(wù))進(jìn)行分配等功能。4.1主界面設(shè)計(jì)主界面設(shè)計(jì)主要是以簡(jiǎn)單友好、快捷方便為主要設(shè)計(jì)理念,因此系統(tǒng)的主界面設(shè)計(jì)主要是用戶(hù)登陸界面及模擬系統(tǒng)服務(wù))的登錄鏈接。[9在該登陸界面輸入正確的用戶(hù)名和密碼即可登陸到統(tǒng)一認(rèn)證系統(tǒng)。主界面如圖-1所示。用戶(hù)登錄時(shí),如果用戶(hù)帳號(hào)和用戶(hù)密碼都不輸入,然后點(diǎn)擊登陸按鈕進(jìn)行用戶(hù)信息驗(yàn)證,則顯示錯(cuò)誤信息用戶(hù)帳號(hào)和用戶(hù)密碼不能為空。if(loginForm.getUserID().trim().length()<=0&&loginForm.getPassWord().trim().length()<=0){loginForm.setErrorInfo(用戶(hù)賬號(hào)和用戶(hù)密碼不能為空!”);用戶(hù)登錄時(shí),如果用戶(hù)帳號(hào)不輸入,然后點(diǎn)擊登陸按鈕進(jìn)行用戶(hù)信息驗(yàn)證,則顯示錯(cuò)誤信息[用戶(hù)賬號(hào)不能為空|。if(loginForm.getUserID().trim().length()<=0){loginForm.setErrorInfo(用戶(hù)賬號(hào)不能為空!");用戶(hù)登錄時(shí),如果用戶(hù)密碼不輸入,然后點(diǎn)擊登陸按鈕進(jìn)行用戶(hù)信息驗(yàn)證,則顯示錯(cuò)誤信息[用戶(hù)密碼不能為空|。if(loginForm.getPassWord().trim().length()<=0){loginForm.setErrorInfo(用戶(hù)密碼不能為空!");用戶(hù)登錄時(shí),如果輸入錯(cuò)誤的用戶(hù)帳號(hào)和用戶(hù)密碼,然后點(diǎn)擊登陸按鈕進(jìn)行用戶(hù)信息驗(yàn)證,則顯示錯(cuò)誤信息[用戶(hù)帳號(hào)和用戶(hù)密碼不正確],同時(shí)把輸入的用戶(hù)帳號(hào)和用戶(hù)密碼清空。If(alist==null||alist.isEmpty()){loginForm.setErrorInfo(〃用戶(hù)賬號(hào)和用戶(hù)密碼不正確!〃);loginForm.setUserID(〃〃);loginForm.setPassWord(〃〃);用戶(hù)登錄時(shí),如果輸入正確的用戶(hù)帳號(hào)和用戶(hù)密碼,然后點(diǎn)擊登陸按鈕進(jìn)行用戶(hù)信息驗(yàn)證,用戶(hù)信息驗(yàn)證成功,系統(tǒng)將取得的用戶(hù)基本信息保存3SESSION中去,然后取得系統(tǒng)當(dāng)前時(shí)間,顯示系統(tǒng)首頁(yè),同時(shí)將保存的用戶(hù)帳號(hào)和系統(tǒng)當(dāng)前時(shí)間顯示在系統(tǒng)首頁(yè)上。圖4-3用戶(hù)帳號(hào)和用戶(hù)密碼驗(yàn)證成功,顯示系統(tǒng)首頁(yè)用戶(hù)登陸成功后,系統(tǒng)會(huì)將用戶(hù)信息保存至Session中去,同時(shí),系統(tǒng)會(huì)讀取該用戶(hù)的操作權(quán)限,根據(jù)用戶(hù)的操作權(quán)限,用戶(hù)只能使用與自己權(quán)限相同的系統(tǒng)功能模塊,如果用戶(hù)權(quán)限不等于系統(tǒng)功能所需要的權(quán)限,則對(duì)此用戶(hù)屏蔽相應(yīng)功能,這樣做提升了系統(tǒng)的安全性以及對(duì)高級(jí)和低級(jí)用戶(hù)使用系統(tǒng)時(shí)的區(qū)分。而且設(shè)置了登陸的的最大有效時(shí)間:publicclassCommonVlues{//Login的最大有效時(shí)間(分鐘)publicstaticfinalintMAXTIME=30;主要程序?qū)崿F(xiàn):系統(tǒng)通過(guò)判斷用戶(hù)輸入的用戶(hù)帳號(hào)和密碼是否符合要求,如果符合要求,那么系統(tǒng)會(huì)以輸入的用戶(hù)用戶(hù)帳號(hào)和用戶(hù)密碼為檢索條件,在數(shù)據(jù)庫(kù)中查找滿(mǎn)足條件的用戶(hù)信息,如果查找成功,那么系統(tǒng)將會(huì)在LDAP服務(wù)器上查找該用戶(hù)信息,如果該用戶(hù)的登陸信息存在,那么修改用戶(hù)登錄時(shí)間為當(dāng)前系統(tǒng)時(shí)間;如果該用戶(hù)信息不存在,那么系統(tǒng)會(huì)在LDAP服務(wù)器上注冊(cè)該用戶(hù)的登陸信息和登陸時(shí)間。同時(shí)顯示系統(tǒng)首頁(yè)。下面是在數(shù)據(jù)庫(kù)中檢查用戶(hù)帳號(hào)和用戶(hù)密碼為例的處理流程: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>();//用戶(hù)賬號(hào)和用戶(hù)密碼檢查成功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"));//檢查L(zhǎng)DAP服務(wù)器上該用戶(hù)信息是否存在booleanuserCheck=LDAP.checkUser(bean.getUserID().trim(),bean.getPassWord().trim());〃如果該用戶(hù)信息已存在if(userCheck){//修改用戶(hù)登陸時(shí)間LDAP.modifyUser(bean.getUserID().trim());}else{//添加用戶(hù)信息LDAP.addUser(bean);}}//關(guān)閉數(shù)據(jù)庫(kù)連接dbConn.closeConnection(conn);returnalist;}4.2權(quán)限管理權(quán)限管理的主要原則是區(qū)分用戶(hù)級(jí)別,因此在用戶(hù)成功登陸后就可以直接看到用戶(hù)可以使用的操作,如果是管理員登陸,那么管理員可以進(jìn)行用戶(hù)管理及權(quán)可使用服務(wù)分配等操作。如果是普通用戶(hù)登陸,那么普通用戶(hù)只能使用該用戶(hù)可以使用的系統(tǒng)(服務(wù))。系統(tǒng)根據(jù)用戶(hù)的操作權(quán)限(管理員和普通用戶(hù))來(lái)決定該用戶(hù)可以使用的功能模塊.<logic:equalname="loginForm"property="adminFlag"value='T'>S個(gè)是用來(lái)判斷管理員的。<logic:equalname="loginForm"property="adminFlag"value="0">S個(gè)是用來(lái)判斷普通用戶(hù)的。4.3用戶(hù)注冊(cè)如果沒(méi)有注冊(cè)的用戶(hù)想使用統(tǒng)一認(rèn)證服務(wù)器,那么除了做關(guān)聯(lián)注冊(cè),還有就是進(jìn)行用戶(hù)信息注冊(cè),輸入必須填的信息后點(diǎn)擊登陸]按鈕進(jìn)行信息提交,統(tǒng)一認(rèn)證服務(wù)器會(huì)根據(jù)用戶(hù)提交的注冊(cè)信息進(jìn)行檢查,如果該用戶(hù)賬號(hào)已經(jīng)存在,那么本次注冊(cè)失敗,同時(shí)系統(tǒng)會(huì)顯示注冊(cè)失敗信息該用戶(hù)賬號(hào)已存在,請(qǐng)重新輸入?。荩绻撚脩?hù)賬號(hào)不存在,那么統(tǒng)一認(rèn)證服務(wù)器會(huì)將該用戶(hù)信息進(jìn)行注冊(cè),同時(shí)顯示注冊(cè)成功信息[恭喜您,注冊(cè)成功。系統(tǒng)首先判斷用戶(hù)提交的輸入信息是否合法,也就是數(shù)據(jù)類(lèi)型是否正確,如果輸入的用戶(hù)信息合法,那么系統(tǒng)會(huì)將用戶(hù)的輸入信息添加到數(shù)據(jù)庫(kù)中(用戶(hù)信息表user_info)。如果數(shù)據(jù)庫(kù)操作成功,那么系統(tǒng)會(huì)將該用戶(hù)信息添加到LDAP服務(wù)器上,添加的數(shù)據(jù)信息有:用戶(hù)賬號(hào)、用戶(hù)密碼、用戶(hù)姓名以及注冊(cè)時(shí)間。如果數(shù)據(jù)庫(kù)操作失敗,那么直接跳轉(zhuǎn)到錯(cuò)誤畫(huà)面;如果輸入的用戶(hù)信息不合法,那么直接返回到用戶(hù)注冊(cè)畫(huà)面。下面是系統(tǒng)檢查用戶(hù)提交的輸入信息是否合法操作:if(registerForm.getFlag()!=null){//用戶(hù)賬號(hào)檢查if(registerForm.getUserID().trim().equals("")){registerForm.setErrorInfo(用戶(hù)賬號(hào)不能為空');return(map.findForward("fal"));}//用戶(hù)姓名檢查if(registerForm.getUserName().trim().equals("")){registerForm.setErrorInfo(用戶(hù)姓名不能為空');return(map.findForward("fal"));}//用戶(hù)密碼檢查if(registerForm.getPassWord().trim().equals("")){registerForm.setErrorInfo(用戶(hù)密碼不能為空,);return(map.findForward("fal"));}//確認(rèn)密碼檢查if(registerForm.getRePassWord().trim().equals("")){registerForm.setErrorInfo確認(rèn)密碼不能為空');return(map.findForward("fal"));}//用戶(hù)密碼和確認(rèn)密碼是否一致檢查if(!registerForm.getPassWord().trim().equals(registerForm.getRePassWord())){registerForm.setErrorInfo確認(rèn)密碼不正確');return(map.findForward("fal"));}//班級(jí)檢查if(registerForm.getStrClass().trim().equals("")){registerForm.setErrorInfo班級(jí)不能為空");return(map.findForward("fal"));}//信息描述檢查if(registerForm.getStrDesc().trim().length()>100){registerForm.setErrorInfo信息描述不能超過(guò)100個(gè)字符');return(map.findForward("fal"));}圖4-4用戶(hù)注冊(cè)圖注冊(cè)用戶(hù)信息提交后,系統(tǒng)會(huì)去檢查提交的數(shù)據(jù)信息,如果數(shù)據(jù)信息檢查通過(guò),那么該用戶(hù)信息會(huì)被注冊(cè)到數(shù)據(jù)庫(kù)中,同時(shí)也會(huì)被注冊(cè)至LDAP服務(wù)器上,下圖為注冊(cè)在LDAP服務(wù)器上的用戶(hù)信息,主要有:用戶(hù)帳號(hào)、用戶(hù)密碼、用戶(hù)名和用戶(hù)注冊(cè)時(shí)間(登錄時(shí)間)。圖4-5LDAP服務(wù)器上的用戶(hù)信息4.4關(guān)聯(lián)注冊(cè)模擬系統(tǒng)(服務(wù))的注冊(cè)用戶(hù)通過(guò)登陸該模擬系統(tǒng):服務(wù)),登陸成功后,如果用戶(hù)想使用統(tǒng)一認(rèn)證服務(wù),那么可以進(jìn)行關(guān)聯(lián)注冊(cè),點(diǎn)擊關(guān)聯(lián)注冊(cè)]按鈕就可以向統(tǒng)一認(rèn)證服務(wù)器發(fā)送關(guān)聯(lián)注冊(cè)請(qǐng)求,同時(shí)發(fā)送用戶(hù)賬號(hào)、用戶(hù)姓名、用戶(hù)密碼,統(tǒng)-認(rèn)證服務(wù)器接收到該用戶(hù)發(fā)送的關(guān)聯(lián)注冊(cè)請(qǐng)求后,會(huì)發(fā)送用戶(hù)信息去模擬系統(tǒng)服務(wù))確認(rèn)該用戶(hù)信息,如果確認(rèn)成功,那么就將該用戶(hù)信息注冊(cè)到統(tǒng)一認(rèn)證服務(wù)器上,如果確認(rèn)失敗,那么就不去做注冊(cè)。
| 001系統(tǒng)若| 001系統(tǒng)若E-VxndowicIntvznulExplozIS畫(huà)囪1@http.//8080/LDAP/syst?m001Locin.doHP*]|x||Liv.Search ||Q|?|立件(Z)端悟(X)查看&)收8?夾(A) XAa) 助QI)34^|頃looi系tgtr頁(yè)C?&J *.心?頁(yè)面(£)▼◎工具(Q)一a歡迎使用001系統(tǒng)test002您好I歡迎您使用001系統(tǒng)美聯(lián)注珊退出.系統(tǒng)圖4-6關(guān)聯(lián)注冊(cè)圖4.5用戶(hù)管理這個(gè)模塊負(fù)責(zé)完成用戶(hù)管理功能,包括用戶(hù)的查詢(xún)、添加、刪除、鎖定、指定用戶(hù)所屬角色以及角色的查詢(xún)、添加、刪除。管理員用戶(hù)登陸成功后,可以對(duì)統(tǒng)一認(rèn)證服務(wù)器上的所有用戶(hù)進(jìn)行信息管理和可使用服務(wù)分配。
如果管理員要?jiǎng)h除該用戶(hù)是可以點(diǎn)擊刪除]按鈕就可以從統(tǒng)一身份服務(wù)器上刪除該用戶(hù)及相應(yīng)的可使用服務(wù),同時(shí)顯示信息[用戶(hù)刪除成功];用戶(hù)刪除失敗,則顯示信息[用戶(hù)刪除失敗]。,,,,息;如果用戶(hù)信息不存在,那么現(xiàn)實(shí)信息用戶(hù)信息不存布。如果修改用戶(hù)信息,那么點(diǎn)擊該用戶(hù)信息后的超鏈接詳細(xì)信息],然后設(shè)置要修改的用戶(hù)信息及該用戶(hù)可以使用的子系統(tǒng)或服務(wù)。如果修改該用戶(hù)為系統(tǒng)管理員,那么選擇管理員前面的復(fù)選框,然后點(diǎn)擊更新]按鈕,系統(tǒng)會(huì)將用戶(hù)信息表中該用戶(hù)信息中的管理員標(biāo)志修改為如果修改該用戶(hù)為普通用戶(hù),那么不選擇管理員前面的復(fù)選框,然后點(diǎn)擊更新]按鈕,系統(tǒng)會(huì)將用戶(hù)信息表中該用戶(hù)信息中的管理員標(biāo)志修改為。如果分配用戶(hù)可使用的子系統(tǒng)或服務(wù),如果分配用戶(hù)可以使用該子系統(tǒng)或服務(wù)時(shí),那么選中該子系統(tǒng)或服務(wù)前面的復(fù)選框;如果分配用戶(hù)不可以使用該子系統(tǒng)或服務(wù)時(shí),那么不選中該子系統(tǒng)或服務(wù)前面的復(fù)選框;然后點(diǎn)![更新]按鈕,那么系統(tǒng)會(huì)將原來(lái)用戶(hù)系統(tǒng):服務(wù))表和該用戶(hù)關(guān)聯(lián)的數(shù)據(jù)信息全部刪除,然后再添加改用戶(hù)可以使用的子系統(tǒng)或服務(wù)。如果添加成功,那么顯示信息言息修改成功];如果添加失敗,那么直接跳轉(zhuǎn)到錯(cuò)誤畫(huà)面,顯示錯(cuò)誤信'您已出錯(cuò)啦?。?。如果刪除用戶(hù),那么點(diǎn)擊用戶(hù)信息畫(huà)面的冊(cè)。除]按鈕刪除該用戶(hù),同時(shí)先刪除用戶(hù)系統(tǒng)(服務(wù))表中和該用戶(hù)關(guān)聯(lián)的用戶(hù)信息,然后再?gòu)腖DAP服務(wù)器上刪除該用戶(hù)的注冊(cè)信息,再?gòu)挠脩?hù)信息表中刪除該用戶(hù)信息,如果用戶(hù)信息刪除成功,那么現(xiàn)實(shí)信息[用戶(hù)刪除成功],如果用戶(hù)信息刪除失敗,那么直接跳轉(zhuǎn)到錯(cuò)誤畫(huà)面,顯示錯(cuò)誤信息[您已出錯(cuò)啦!]。系統(tǒng)為了模擬統(tǒng)一身份認(rèn)證系統(tǒng)的實(shí)用性,特別模擬了兩個(gè)子系統(tǒng)或服務(wù)(system_001和system_002*用戶(hù)在沒(méi)有登陸統(tǒng)一身份認(rèn)證服務(wù)器的情況下去使用模擬的子系統(tǒng)或服務(wù)時(shí),需要先登錄,然后才能使用該子系統(tǒng)或服務(wù)。如果用戶(hù)在登陸了統(tǒng)一認(rèn)證服務(wù)器的情況下去使用模擬的子系統(tǒng)或服務(wù)時(shí),系統(tǒng)先用session中的用戶(hù)信息去LDAP服務(wù)器上做用戶(hù)信息驗(yàn)證,如果驗(yàn)證成功,再檢查該用戶(hù)的登錄時(shí)間是否在允許的時(shí)間范圍內(nèi),如果在允許的范圍內(nèi),那么用戶(hù)可以直接使用該子系統(tǒng)或服務(wù);如果不在允許的范圍內(nèi),那么直接跳轉(zhuǎn)的統(tǒng)一身份認(rèn)證系統(tǒng)的登錄畫(huà)面,需再次登陸或才可使用。主要的程序?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ù)器上檢查該用戶(hù)是否已經(jīng)登陸userCheck=LDAP.checkUser(loginForm.getUserID().trim(),loginForm.getPassWord().trim());//LDAP服務(wù)器上該用戶(hù)已經(jīng)登陸if(userCheck){//該用戶(hù)的上次登錄是否過(guò)期if(LDAP.getLoginTime(loginForm.getUserID().trim())<=CommonValues.MAXTIME){timeCheck=true;}}}//該用戶(hù)已登錄,且上次登錄沒(méi)有過(guò)期if(userCheck&&timeCheck){//系統(tǒng)ID檢查if("system001”.equals(systemID)){//ID==system001,跳轉(zhuǎn)到系統(tǒng)001的主頁(yè)面...return(map.findForward("system001”));}else{//ID==system002,跳轉(zhuǎn)到系統(tǒng)002的主頁(yè)面...return(map.findForward("system002”));}//該用戶(hù)沒(méi)有登錄,或者上次登錄已過(guò)期}else{if("system001”.equals(systemID)){//ID==system001,跳轉(zhuǎn)到系統(tǒng)001的登陸畫(huà)面return(map.findForward("system001Login"));}else{//ID==system002,跳轉(zhuǎn)到系統(tǒng)002的登陸畫(huà)面return(map.findForward("system002Login"));}}}catch(Exceptione1){//TODOAuto-generatedcatchblock//跳轉(zhuǎn)到出錯(cuò)畫(huà)面return(map.findForward("error"));}}4.6數(shù)據(jù)庫(kù)連接本系統(tǒng)的數(shù)據(jù)庫(kù)連接利用JDBC數(shù)據(jù)源進(jìn)行連接,在其中進(jìn)行數(shù)據(jù)存儲(chǔ),其中連接數(shù)據(jù)庫(kù)的代碼如下:publicclassDBConnection{privatefinalStringdriverName="com.microsoft.jdbc.sqlserver.SQLServerDriver”;privatefinalStringdbURL="jdbc:microsoft:sqlserver://:1433;DatabaseName=ldap”;privatefinalStringuserName="sa";privatefinalStringuserPwd="admin";//連接數(shù)據(jù)庫(kù)publicConnectiongetConnection()throwsException{Class.forName(driverName);//返回?cái)?shù)據(jù)庫(kù)連接returnDriverManager.getConnection(dbURL,userName,userPwd);}//關(guān)閉數(shù)據(jù)庫(kù)連接publicvoidcloseConnection(Connectionconn){if(conn!=null){try{//關(guān)閉數(shù)據(jù)庫(kù)連接conn.close();}catch(Exceptione){}}}4.7LDAP服務(wù)器連接LDAP服務(wù)器本身具有讀密集型操作的特點(diǎn),這使得讀取速度比關(guān)系型數(shù)據(jù)庫(kù)快一個(gè)數(shù)量級(jí),減少資源的消耗,提高系統(tǒng)的影響速度。并且更適合于為各種應(yīng)用服務(wù)器平臺(tái)做分布式處理。staticDirContextctx=null;privatefinalstaticStringROOT="o=localhost,c=com”;privatefinalstaticStringGROUP="ou=User,o=localhost,c=com
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 銀行智能客服系統(tǒng)升級(jí)
- 2026年電子競(jìng)技教育導(dǎo)師考試題目集
- 2026年健康管理科學(xué)健康評(píng)估與干預(yù)措施題庫(kù)
- 2026年人力資源管理招聘與選拔員工培訓(xùn)與激勵(lì)策略題
- 2026年心理評(píng)估與診斷技巧培訓(xùn)題集
- 2026年電子商務(wù)風(fēng)險(xiǎn)防范措施與測(cè)試題
- 2026年通過(guò)試題學(xué)習(xí)ISO14001標(biāo)準(zhǔn)的認(rèn)證標(biāo)準(zhǔn)及要求
- 2026年項(xiàng)目管理進(jìn)度與成本把控模擬題
- 2026年法律職業(yè)資格考試要點(diǎn)解析
- 2026年環(huán)保法規(guī)考試題集詳解
- 江蘇省淮安市2025-2026學(xué)年高三上學(xué)期期中考試歷史試題(解析版)
- 湖南省衡陽(yáng)市衡南縣2024-2025學(xué)年高一上學(xué)期期末考試數(shù)學(xué)試題(A卷)(含答案)
- 2025年湖南生物機(jī)電職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試模擬測(cè)試卷附答案
- 期末測(cè)試卷(含答案)2025-2026學(xué)年語(yǔ)文三年級(jí)上冊(cè)統(tǒng)編版
- 氣管腫瘤術(shù)后護(hù)理查房
- 2025心血管疾病患者血糖波動(dòng)管理的專(zhuān)家共識(shí)解讀課件
- GB/T 46691-2025品牌評(píng)價(jià)實(shí)施與報(bào)告
- 寧波市安全生產(chǎn)責(zé)任保險(xiǎn)
- 護(hù)理大專(zhuān)單招考試題目及答案
- 安岳縣防汛抗旱應(yīng)急預(yù)案
- 白城市2025年下半年吉林白城洮北區(qū)面向應(yīng)征入伍高校全日制本科畢業(yè)生招聘事業(yè)單位筆試題帶
評(píng)論
0/150
提交評(píng)論