999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

門(mén)戶(hù)網(wǎng)站集成第三方系統(tǒng)單點(diǎn)登錄

2019-06-22 07:01:02楊世旺劉波
視聽(tīng) 2019年5期
關(guān)鍵詞:頁(yè)面用戶(hù)系統(tǒng)

楊世旺 劉波

(廣西廣播電視技術(shù)中心)

一、引言

JEECMSv9.3平臺(tái)是江西金磊科技發(fā)展有限公司旗下的產(chǎn)品,它是一款集PC互聯(lián)網(wǎng)、移動(dòng)互聯(lián)網(wǎng)和微信網(wǎng)站于一體的網(wǎng)站群管理系統(tǒng),新門(mén)戶(hù)網(wǎng)站基于此平臺(tái)進(jìn)行開(kāi)發(fā)。

單位內(nèi)部業(yè)務(wù)系統(tǒng)眾多,門(mén)戶(hù)網(wǎng)站作為單位對(duì)外開(kāi)放展示的窗口,將各個(gè)業(yè)務(wù)系統(tǒng)入口整合到門(mén)戶(hù)網(wǎng)站中非常有必要,可解決了各業(yè)務(wù)系統(tǒng)重復(fù)登錄的問(wèn)題。在進(jìn)行業(yè)務(wù)系統(tǒng)單點(diǎn)登錄整合過(guò)程中,發(fā)現(xiàn)即使JEECMSv9.3框架提供了統(tǒng)一的單點(diǎn)登錄接口,但由于單位各業(yè)務(wù)系統(tǒng)均已不在維護(hù)期,且系統(tǒng)接口不統(tǒng)一或未提供單點(diǎn)登錄驗(yàn)證接口,所以只能通過(guò)技術(shù)手段對(duì)平臺(tái)代碼進(jìn)行二次開(kāi)發(fā),實(shí)現(xiàn)各業(yè)務(wù)系統(tǒng)單點(diǎn)登錄整合功能。

由于整合過(guò)程是單向整合,各業(yè)務(wù)系統(tǒng)無(wú)法針對(duì)單點(diǎn)登錄進(jìn)行接口調(diào)整,所以產(chǎn)生不少技術(shù)問(wèn)題。

二、功能實(shí)現(xiàn)

(一)技術(shù)分析

通過(guò)分析JEECMSv9.3平臺(tái)代碼得知,該平臺(tái)核心框架為FreeMarker+hibernate+Spirng的mvc分層架構(gòu),平臺(tái)后臺(tái)采用了Maven開(kāi)發(fā)技術(shù),網(wǎng)站管理后臺(tái)采用VUE技術(shù),網(wǎng)站前臺(tái)采用html腳本結(jié)合jquery等技術(shù)實(shí)現(xiàn)。門(mén)戶(hù)網(wǎng)站要實(shí)現(xiàn)單點(diǎn)登錄功能,需改動(dòng)網(wǎng)站前臺(tái)代碼和平臺(tái)后臺(tái)代碼。由于平臺(tái)的高度可配置性,網(wǎng)站前臺(tái)代碼和后臺(tái)代碼的交互非常靈活,前臺(tái)的所有鏈接都需要和后臺(tái)進(jìn)行交互,因此對(duì)網(wǎng)站代碼的熟悉程度對(duì)于單點(diǎn)登錄功能的開(kāi)發(fā)非常關(guān)鍵。

系統(tǒng)后臺(tái)采用eclipse集成管理工具作為java代碼編譯環(huán)境,前臺(tái)網(wǎng)站代碼由于都是通過(guò)平臺(tái)動(dòng)態(tài)生成的,不適合采用任何開(kāi)發(fā)工具去編譯開(kāi)發(fā),所以只能采用文本編輯的方式去調(diào)整。此外,網(wǎng)站前臺(tái)采用html靜態(tài)腳本進(jìn)行展示,而網(wǎng)站后臺(tái)采用java進(jìn)行相應(yīng)基本邏輯處理,因此選擇通過(guò)jquery技術(shù)實(shí)現(xiàn)前后臺(tái)的同步、異步交互,來(lái)協(xié)助實(shí)現(xiàn)單點(diǎn)登錄功能的集成。

(二)實(shí)現(xiàn)邏輯

集成單點(diǎn)登錄的目的是實(shí)現(xiàn)各業(yè)務(wù)系統(tǒng)的免登錄進(jìn)入,其基本設(shè)計(jì)邏輯為:

點(diǎn)擊單點(diǎn)登錄入口,先檢測(cè)門(mén)戶(hù)網(wǎng)站是否已登錄,如未登錄,則進(jìn)行提示并跳轉(zhuǎn)到門(mén)戶(hù)登錄頁(yè)面;

如果門(mén)戶(hù)網(wǎng)站已登錄,下一步則是判斷該業(yè)務(wù)系統(tǒng)是否已進(jìn)行綁定,如未綁定,則自動(dòng)跳轉(zhuǎn)到綁定頁(yè)面;

如果業(yè)務(wù)系統(tǒng)已綁定,則在記錄此次登錄的相關(guān)信息后,直接跳轉(zhuǎn)進(jìn)入業(yè)務(wù)系統(tǒng)。

基本設(shè)計(jì)邏輯流程展示如圖1。

圖1 基本設(shè)計(jì)流程

記錄業(yè)務(wù)系統(tǒng)的綁定、登錄等信息時(shí)需要和數(shù)據(jù)庫(kù)進(jìn)行交互,保存業(yè)務(wù)系統(tǒng)的名稱(chēng)、用戶(hù)名、密碼、綁定時(shí)間、登錄時(shí)間、登錄次數(shù)等,詳細(xì)的數(shù)據(jù)表設(shè)計(jì)如表1。

表1 表結(jié)構(gòu)設(shè)計(jì)

(三)前臺(tái)實(shí)現(xiàn)

1.跳轉(zhuǎn)判斷

當(dāng)用戶(hù)點(diǎn)擊業(yè)務(wù)系統(tǒng)入口時(shí),系統(tǒng)需要將該業(yè)務(wù)系統(tǒng)的服務(wù)器網(wǎng)址、端口、驗(yàn)證方法等參數(shù)傳遞到后臺(tái)進(jìn)行驗(yàn)證,為了方便這些參數(shù)讀取,將參數(shù)以json對(duì)象的形式,保存在js配置文件中。

門(mén)戶(hù)網(wǎng)站業(yè)務(wù)系統(tǒng)入口使用html技術(shù)中的標(biāo)簽進(jìn)行展示,首先將標(biāo)簽中的href屬性設(shè)置成(#)空錨點(diǎn),使其在單擊時(shí)不做跳轉(zhuǎn)刷新,而在標(biāo)簽單擊(onclick)方法功能中,添加綁定js中自定義的ITool.sso函數(shù),如:

在綁定的ITool.sso方法中,通過(guò)使用jquery的ajax技術(shù),實(shí)現(xiàn)與java后臺(tái)進(jìn)行交互,獲取門(mén)戶(hù)網(wǎng)站登錄、業(yè)務(wù)系統(tǒng)綁定信息,并在交互成功后,通過(guò)邏輯判斷,設(shè)定跳轉(zhuǎn)鏈接,跳轉(zhuǎn)到登錄頁(yè)面、綁定頁(yè)面或直接單點(diǎn)登錄進(jìn)入業(yè)務(wù)系統(tǒng),實(shí)現(xiàn)邏輯如圖2。

2.綁定操作

圖2 頁(yè)面跳轉(zhuǎn)判斷

當(dāng)判斷業(yè)務(wù)系統(tǒng)未進(jìn)行綁定時(shí),系統(tǒng)自動(dòng)跳轉(zhuǎn)到綁定頁(yè)面,系統(tǒng)綁定頁(yè)面借鑒了網(wǎng)站登錄頁(yè)面,需要用戶(hù)輸入綁定系統(tǒng)的用戶(hù)名和密碼,然后點(diǎn)擊綁定按鈕,系統(tǒng)將通過(guò)ajax方法和后臺(tái)交互,并進(jìn)行第三方跨域提交驗(yàn)證。在和第三方系統(tǒng)進(jìn)行跨域登錄認(rèn)證時(shí),經(jīng)過(guò)多次嘗試,由于第三方業(yè)務(wù)系統(tǒng)不一定支持ajax異步認(rèn)證的方式,所以該認(rèn)證統(tǒng)一采用后臺(tái)認(rèn)證的方式。

由于不同的業(yè)務(wù)系統(tǒng)的跨域認(rèn)證會(huì)返回不同的認(rèn)證結(jié)果,在系統(tǒng)認(rèn)證設(shè)計(jì)時(shí),通過(guò)動(dòng)態(tài)js方法,實(shí)現(xiàn)不同的業(yè)務(wù)系統(tǒng)的認(rèn)證跳轉(zhuǎn)。

在進(jìn)行第三方跨域認(rèn)證時(shí),使用后臺(tái)java的URLConnection類(lèi),讀取請(qǐng)求URL,并返回請(qǐng)求結(jié)果的頁(yè)面內(nèi)容信息,通過(guò)對(duì)頁(yè)面內(nèi)容進(jìn)行解析,判斷認(rèn)證是否成功,如圖3。

圖3 第三方跨域登錄認(rèn)證

判定是否綁定成功,如綁定成功,則直接跳轉(zhuǎn)單點(diǎn)登錄進(jìn)入業(yè)務(wù)系統(tǒng),如失敗,則在頁(yè)面上已紅色字體提示錯(cuò)誤信息。

3.登錄跳轉(zhuǎn)

在綁定成功或者判定用戶(hù)已綁定業(yè)務(wù)系統(tǒng)后,需要使用前臺(tái)jquery技術(shù),動(dòng)態(tài)創(chuàng)建所需提交的元素標(biāo)簽,模擬業(yè)務(wù)系統(tǒng)的form表單提交方法,實(shí)現(xiàn)邏輯如圖4。

4.綁定管理

在用戶(hù)對(duì)業(yè)務(wù)系統(tǒng)進(jìn)行綁定后,可能會(huì)存在所綁定的業(yè)務(wù)系統(tǒng)用戶(hù)名或者密碼已修改的情況,針對(duì)這種情況,前臺(tái)增加了綁定管理功能,實(shí)現(xiàn)對(duì)業(yè)務(wù)系統(tǒng)的解除綁定、重新綁定等功能。

(四)后臺(tái)實(shí)現(xiàn)

1.代碼邏輯

通過(guò)分析平臺(tái)后臺(tái)代碼,將單點(diǎn)登錄后臺(tái)java代碼的實(shí)現(xiàn)附加在平臺(tái)用戶(hù)管理模塊;后臺(tái)代碼主要需要實(shí)現(xiàn)用戶(hù)網(wǎng)站登錄狀態(tài)、綁定狀態(tài)獲取,頁(yè)面跳轉(zhuǎn)參數(shù)獲取及調(diào)整等。

圖4 登錄跳轉(zhuǎn)

用戶(hù)網(wǎng)站登錄狀態(tài)、綁定狀態(tài)獲取,首先獲取網(wǎng)站登錄用戶(hù)信息,如獲取不到,則返回用戶(hù)登錄狀態(tài)為false,如能獲取,則根據(jù)用戶(hù)ID和參數(shù)到數(shù)據(jù)庫(kù)讀取綁定信息,如已綁定,則進(jìn)一步返回綁定的用戶(hù)名和密碼等相關(guān)信息。

在進(jìn)行第三方跨域用戶(hù)綁定認(rèn)證時(shí),采用后臺(tái)java的URLConnection類(lèi),實(shí)現(xiàn)方法中,除了傳遞請(qǐng)求的httpUrl外,還需傳遞進(jìn)來(lái)編碼方式和超時(shí)時(shí)間,否則會(huì)造成返回結(jié)果亂碼或在網(wǎng)絡(luò)不通暢時(shí)網(wǎng)頁(yè)卡頓的現(xiàn)象。

此外,為了保證代碼的嚴(yán)謹(jǐn)性、可讀性,在進(jìn)行后臺(tái)java編碼時(shí),需嚴(yán)格遵守平臺(tái)的后臺(tái)編碼規(guī)范,這對(duì)系統(tǒng)的后續(xù)升級(jí)維護(hù)至關(guān)重要。

2.數(shù)據(jù)庫(kù)操作

單點(diǎn)登錄的綁定信息,最終都會(huì)保存到數(shù)據(jù)庫(kù)表sso_user中,實(shí)現(xiàn)邏輯設(shè)計(jì)如下:

當(dāng)?shù)谝淮谓壎〞r(shí),判斷是否已綁定過(guò),如已綁定,則修改綁定狀態(tài),如未綁定,則記錄綁定系統(tǒng)編號(hào)、用戶(hù)ID、綁定用戶(hù)名稱(chēng)、加密后的綁定用戶(hù)密碼,綁定時(shí)間等;

用戶(hù)進(jìn)行單點(diǎn)登錄時(shí),記錄用戶(hù)的登錄次數(shù),登錄時(shí)間等;

進(jìn)行解除綁定時(shí),修改該綁定的狀態(tài)、最后修改時(shí)間。

(五)重點(diǎn)難點(diǎn)

第一、在進(jìn)行單點(diǎn)登錄第三方跨域認(rèn)證時(shí),經(jīng)過(guò)多次嘗試,最終選定使用后臺(tái)java的URLConnection類(lèi)來(lái)實(shí)現(xiàn),因?yàn)榈谌綐I(yè)務(wù)系統(tǒng)不一定支持ajax異步認(rèn)證的方式,所以驗(yàn)證時(shí)是直接調(diào)用業(yè)務(wù)系統(tǒng)的登錄方法來(lái)實(shí)現(xiàn),所以無(wú)法使用前臺(tái)ajax請(qǐng)求來(lái)獲取認(rèn)證請(qǐng)求結(jié)果;

第二、在進(jìn)行第三方系統(tǒng)登錄跳轉(zhuǎn)時(shí),模擬form表單進(jìn)行提交時(shí),需要注意提交頁(yè)面的編碼方式,做到動(dòng)態(tài)修改成第三方網(wǎng)站所需的編碼方式,在提交后,再將網(wǎng)站編碼方式修改回來(lái),否則會(huì)造成原網(wǎng)站亂碼或功能異常;

第三、當(dāng)遇到實(shí)在無(wú)法單向去對(duì)第三方系統(tǒng)進(jìn)行判斷驗(yàn)證或者登錄時(shí),最好的方式還是通過(guò)和相關(guān)技術(shù)人員進(jìn)行溝通,獲取第三方系統(tǒng)的相關(guān)信息,如在和對(duì)接集成時(shí),是否要對(duì)參數(shù)進(jìn)行加密操作等,這集成前是無(wú)法預(yù)知的,所以及時(shí)的溝通非常重要。

三、總結(jié)

目前單位的門(mén)戶(hù)網(wǎng)站OA辦公、監(jiān)控平臺(tái)兩個(gè)單點(diǎn)登錄接口已經(jīng)完成編碼和測(cè)試工作,程序已可正常運(yùn)行;如后續(xù)需要增加其他第三方接口時(shí),可以有所借鑒或者直接復(fù)用已有的接口,減少不必要的重復(fù)工作,提高工作效率。

猜你喜歡
頁(yè)面用戶(hù)系統(tǒng)
大狗熊在睡覺(jué)
Smartflower POP 一體式光伏系統(tǒng)
刷新生活的頁(yè)面
WJ-700無(wú)人機(jī)系統(tǒng)
ZC系列無(wú)人機(jī)遙感系統(tǒng)
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關(guān)注用戶(hù)
關(guān)注用戶(hù)
關(guān)注用戶(hù)
如何獲取一億海外用戶(hù)
主站蜘蛛池模板: 亚洲国产精品成人久久综合影院| 亚洲日本中文字幕天堂网| 亚洲国产成人自拍| 日韩a级毛片| 亚洲黄色成人| 亚洲国产av无码综合原创国产| 久久性视频| 国产成人1024精品| 91在线无码精品秘九色APP| 免费在线成人网| 日韩人妻少妇一区二区| 久久成人国产精品免费软件| 美女一区二区在线观看| 欧美日韩精品一区二区视频| 亚洲另类第一页| 日韩中文欧美| 亚洲综合精品香蕉久久网| 亚洲AV无码久久精品色欲| 免费一极毛片| 午夜精品一区二区蜜桃| 2021精品国产自在现线看| 97人妻精品专区久久久久| 亚洲天堂久久新| 99久久国产综合精品2020| 国产一级毛片网站| 无码 在线 在线| 国产精品一老牛影视频| 91九色国产在线| 亚洲视频欧美不卡| 久久久精品久久久久三级| 中文字幕在线欧美| 欧美激情成人网| 黄色网页在线播放| 亚洲国产精品日韩欧美一区| 亚洲区一区| 国产剧情一区二区| 亚洲午夜福利精品无码| a级毛片毛片免费观看久潮| 亚洲人成网站观看在线观看| 国产黑丝视频在线观看| 国产 日韩 欧美 第二页| 国产在线拍偷自揄拍精品| 色偷偷综合网| 九九视频在线免费观看| 亚洲无线国产观看| 国产手机在线小视频免费观看| 成人年鲁鲁在线观看视频| 日韩最新中文字幕| 国产制服丝袜91在线| 一本大道东京热无码av| 日韩无码一二三区| 亚洲日本中文字幕乱码中文| 丁香婷婷久久| 26uuu国产精品视频| 日韩精品少妇无码受不了| 草草影院国产第一页| 97国产精品视频自在拍| 91 九色视频丝袜| 九九热精品免费视频| 日韩中文无码av超清| 精品国产一区二区三区在线观看 | 欧美劲爆第一页| 亚洲三级影院| 日韩在线网址| 麻豆AV网站免费进入| 精品国产福利在线| 国产欧美精品一区二区| 99在线观看国产| 一本久道久综合久久鬼色| 亚洲欧美精品日韩欧美| 四虎影视国产精品| 色偷偷一区二区三区| 国产精品入口麻豆| 人妻熟妇日韩AV在线播放| 国产精品久久久久婷婷五月| 99在线视频精品| 2020极品精品国产| 依依成人精品无v国产| 中文天堂在线视频| 欧美无遮挡国产欧美另类| 精品国产电影久久九九| 尤物国产在线|