




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
目錄TOC\o"1-4"\h\z\u1引言 21.1編寫目的 21.2背景 21.3專用術(shù)語定義 22系統(tǒng)需求 22.1業(yè)務(wù)場景 22.1.1免登 22.1.2UDB 32.1數(shù)據(jù)遷移需求 33設(shè)計方案 33.1系統(tǒng)結(jié)構(gòu) 33.2模塊劃分 43.2.1UDB模塊 43.2.2免登錄模塊 54詳細(xì)設(shè)計 74.1接口設(shè)計 74.1.1內(nèi)部接口設(shè)計 7UDB模塊 7免登錄模塊 94.1.2外部接口設(shè)計 9對外提供的接口 9需要依賴的外部接口 10接口返回結(jié)果的設(shè)計 104.2數(shù)據(jù)遷移 144.2.1數(shù)據(jù)遷移說明 144.2.2方案描述 144.2.3數(shù)據(jù)庫設(shè)計 144.3緩存設(shè)計 144.3.1采用技術(shù) 144.3.2詳細(xì)方案 144.4安全級別設(shè)計 15
用戶中心詳細(xì)設(shè)計1引言1.1編寫目的本詳細(xì)設(shè)計說明書是針對用戶中心系統(tǒng)而編寫的,主要目的是描述清楚系統(tǒng)的詳細(xì)設(shè)計,明確系統(tǒng)的結(jié)構(gòu)、模塊的劃分、各個模塊的功能,并確定實現(xiàn)系統(tǒng)所需的各種細(xì)節(jié),以及各個相關(guān)開發(fā)實現(xiàn)人員的職責(zé)范圍,協(xié)調(diào)不同部門之間的協(xié)同工作,以便所有實現(xiàn)者可以根據(jù)本文檔直接著手進(jìn)行自己相應(yīng)開發(fā)任務(wù)。1.2背景系統(tǒng)名稱:用戶中心簡介:用戶中心是一個將阿里巴巴中文站、國際站、ITBU各產(chǎn)品線等用戶整合在一起的,提供統(tǒng)一的用戶相關(guān)操作功能,包括中文站、國際站到ITBU對用戶透明的免登功能、用戶信息查詢功能等,以為所有阿里巴巴的用戶提供更好的用戶體驗,連同計費(fèi)中心、產(chǎn)品中心等,共同成為阿里巴巴“建國大業(yè)”項目的重要組成部分,是阿里巴巴未來十年戰(zhàn)略起步的重要基礎(chǔ)建設(shè)。系統(tǒng)可能的主要開發(fā)者、相關(guān)者:阿里巴巴ITBU、ITBU各產(chǎn)品線、中文站(CCBU)、國際站(ICBU)等。1.3專用術(shù)語定義文檔中出現(xiàn)的longid均指memberid,site指domain2系統(tǒng)需求2.1業(yè)務(wù)場景2.1.1免登從ICBU/CCBU免登錄到ITBU(單向)一個在ICBU/CCBU已經(jīng)登錄成功的用戶,點(diǎn)擊ICBU/CCBU網(wǎng)站頁面或ITBU頁面上的一個鏈接,直接免登錄到ITBU,而不需要再次登錄。從旺旺聊天面板免登錄到ITBU用戶點(diǎn)擊阿里旺旺聊天窗口內(nèi)的一個鏈接,能直接免登錄到ITBU,不需要重新登錄一次。2.1.2UDB由業(yè)務(wù)模塊遠(yuǎn)程調(diào)用用戶信息相關(guān)接口由業(yè)務(wù)模塊,比如ITBU的E網(wǎng)打進(jìn)、外貿(mào)版等產(chǎn)品線的業(yè)務(wù)通過遠(yuǎn)程調(diào)用UDB模塊的接口,來查詢用戶狀態(tài),包括以下各種功能:查詢當(dāng)前登錄用戶的會話信息獲取用戶信息資料注冊CCBU/ICBU新用戶用戶登錄(校驗用戶名和密碼)一個已經(jīng)登錄的用戶進(jìn)行手動登出系統(tǒng)的操作支持ITBU提供對對用戶透明的在CCBU/ICBU修改用戶資料、修改密碼、用戶登錄和查看用戶資料的功能系統(tǒng)內(nèi)部免登錄模塊和UDB模塊之間的訪問UDB模塊需要提供給免登錄模塊相應(yīng)的用戶登錄接口2.1數(shù)據(jù)遷移需求由于在此之前已經(jīng)有用戶系統(tǒng),新的用戶中心的開發(fā)需要考慮新老數(shù)據(jù)的遷移問題,必須將原有的數(shù)據(jù)安全、平滑地遷移到新系統(tǒng)中來。3設(shè)計方案3.1系統(tǒng)結(jié)構(gòu)用戶免登一共分3模塊,ITBU模塊,CCBU/ICBU模塊,TokenService模塊。具體模塊關(guān)系圖如圖3-1:圖3-1 具體模塊關(guān)系3.2模塊劃分3.2.1UDB模塊登錄流程:根據(jù)siteid,loginid匹配唯一的userid,若userid不存在就創(chuàng)建一個;將userid,siteid,loginid,還有當(dāng)前時間戳等信息組合,通過加密算法生成當(dāng)前的登錄上下文信息;將登錄上下文信息保存到response的cookie中,在客戶端記錄以方便后期的查詢。、圖3-2 UDB用戶登錄模塊流程圖3.2.2免登錄模塊該模塊主要解決用戶從CCBU/ICBU網(wǎng)站免登到ITBU頁面模塊。主要采用token+簽名機(jī)制保證免登的安全性。CCBU/ICBU和TokenService,ITBU3個模塊分別部署在3臺不同應(yīng)用上。token目前保存在MemCached中,外部訪問全部走h(yuǎn)ttps.免登步驟與事例如下:用戶Browser
CCBU/ICBU
eg:/xxx/tgs?toURL=xxx傳參校驗,生成保存token至Memcached.用戶Browser
ITBUeg:/xxx/tvs?token=xxxx&sign=xxxxtoken,ip,ref參數(shù)校驗,從MemCached中取ip,ref跟當(dāng)前Request的ip,ref做參數(shù)校驗用戶Browser
錢掌柜/外貿(mào)版/E網(wǎng)打盡
eg:
/圖3-3 用戶免登錄模塊順序圖圖3-4 用戶免登錄模塊流程圖4詳細(xì)設(shè)計4.1接口設(shè)計4.1.1內(nèi)部接口設(shè)計UDB模塊.1.1AuthCookie內(nèi)容設(shè)計Authcookie用來存放udb的sessionid,保存格式:cookie名稱:udb:az存放內(nèi)容:SiteidLoginidUserid用戶顯示名稱將以上三個數(shù)據(jù)用AES的方式加密壓縮后存儲在Cookie中sid之前加上名稱前綴udb,防止該cookie的值被業(yè)務(wù)模塊不小心覆蓋。publicinterfaceIUserService{/***獲得當(dāng)前的登錄用戶信息*@paramrequest*@returnAuthCookie*/publicAuthCookiegetAuthCookie(HttpServletRequestrequest);/***根據(jù)userId獲取用戶資料*@paramuserId*@returnUserProfileResult*/publicUserProfileResultgetUserProfileByUserId(StringuserId);/***根據(jù)siteid,loginid和用戶資料注冊新用戶*@paramsiteid*@paramloginid*@paramprofile*@returnUserResult*/publicUserResultregister(Stringsiteid,Stringloginid,Mapprofile);/***通過用戶的loginid、siteid和密碼驗證用戶的有效性*@paramsiteid*@paramloginid*@parampasswd*@returnUserResult*/publicUserResultvalidate(Stringsiteid,Stringloginid,Stringpasswd);/***根據(jù)siteid和loginid查詢對應(yīng)的userid*@paramsiteid*@paramloginid*@returnUserResult*/publicUserResultgetUserIdByLongId(Stringsiteid,Stringloginid);/***根據(jù)userid查詢對應(yīng)的longid(siteid和loginid)*@paramuserid*@returnLongIdResult,包含:*1、一個String類型的siteid*2、一個String類型的loginid*3、一個int類型code,表明狀態(tài)*/publicLongIdResultgetLongIdByUserId(Stringuserid);}免登錄模塊TokenService內(nèi)部接口/** *目標(biāo)URL的白名單校驗*@paramtoURL–目標(biāo)地址*/privatebooleanvalidateURL(StringtoURL);/** *生成token,sign并存入MemCached*@paramip–發(fā)起端ip*@paramref–發(fā)起端具體url地址*@paramsite–網(wǎng)站標(biāo)識*@paramtoURL–目標(biāo)端url*@returnMap–null則失敗,否則返回(token:xxxx,sign:xxx)*/privateMapgenerateAndSaveToken(Stringip,Stringref,Stringsite,StringtoURL,Stringsign)/** *刪除token從MemCached*@paramtoURL–目標(biāo)地址*/privatebooleandeleteToken(Stringtoken);4.1.2外部接口設(shè)計對外提供的接口.1UDB模塊.2免登錄模塊TokenService提供以下2個REST接口服務(wù):publicinterfaceITokenService{ /** *<p>校驗?zāi)繕?biāo)URL</p> *<p>生成并保存Token</p>*@returnTgResult*/publicTgResultgenerateTvsURL(StringloginId,Stringsite,StringtoURL,Stringref,Stringip);/***根據(jù)傳入token,ip,ref校驗正確性,傳入token在MemCache查詢各個參數(shù),再進(jìn)行參數(shù)比對.*@paramtoken*@paramsign*@paramip*@paramref*@returnTvResult*/publicTvResultvalidate(Stringtoken,Stringip,Stringref,Stringsign);}需要依賴的外部接口.1CCBU/ICBU需提供的接口獲取用戶資料注冊用戶密碼驗證判斷用戶名接口返回結(jié)果的設(shè)計TgResult對象設(shè)計publicclassTgResult{ publicfinalstaticintSUCCESS=0; publicfinalstaticintINVALID_TOURL=1; publicfinalstaticintMEMCACHED_COMMUNICATED_ERROR=2; publicfinalstaticintINVALID_TVS_URL=3; privateintresultCode; privateStringtvsURL; privateStringmessage; publicintgetResultCode(){ returnresultCode; } publicvoidsetResultCode(intresultCode){ this.resultCode=resultCode; } publicStringgetTvsURL(){ returntvsURL; } publicvoidsetTvsURL(StringtvsURL){ this.tvsURL=tvsURL; } publicStringgetMessage(){ returnmessage; } publicvoidsetMessage(Stringmessage){ this.message=message; } }TvResult對象設(shè)計publicclassTvResult{ publicfinalstaticintSUCCESS=0; publicfinalstaticintINVALID_IP=1; publicfinalstaticintINVALID_REF=2; publicfinalstaticintINVALID_TOKEN=3; publicfinalstaticintINVALID_SIGN=4; publicfinalstaticintMEMCACHED_COMMUNICATED_ERROR=5; privateintresultCode; privateStringloginId; privateStringsite; privateStringtoURL; privateStringmessage; publicintgetResultCode(){ returnresultCode; } publicvoidsetResultCode(intresultCode){ this.resultCode=resultCode; } publicStringgetLoginId(){ returnloginId; } publicvoidsetLoginId(StringloginId){ this.loginId=loginId; } publicStringgetSite(){ returnsite; } publicvoidsetSite(Stringsite){ this.site=site; } publicStringgetToURL(){ returntoURL; } publicvoidsetToURL(StringtoURL){ this.toURL=toURL; } publicStringgetMessage(){ returnmessage; } publicvoidsetMessage(Stringmessage){ this.message=message; } }AuthCookie對象設(shè)計publicclassAuthCookie{ privateStringsiteId; privateStringloginId; privateStringuserId; publicintgetSiteId(){ returnsiteId; } publicStringgetLoginId(){ returnloginId; } publicStringgetUserId(){ returnuserId; }}UserResult對象設(shè)計publicclassUserResult{ privateintcode; privateStringuserId; publicStringgetCode(){ returncode; } publicStringgetUserId(){ returnuserId; }}LongIdResult對象設(shè)計publicclassLongIdResult{ privateStringcode; pr
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 嘀友管車:網(wǎng)約車與租賃公司全業(yè)務(wù)管理平臺解決方案
- 《智能家居系統(tǒng)介紹》課件
- 園林綠化工藝流程
- 大班健康活動《貝貝換牙》教案設(shè)計
- 杭州至德清市域鐵路工程涉及220kV窯鐵2R09線48#-50#遷改工程報告表
- 《下肢康復(fù)》課件
- 《兒童推拿教學(xué)課件》
- 《社區(qū)康復(fù)護(hù)理改進(jìn)》課件
- VBSE實訓(xùn)成本會計流程
- 課件物體在重力作用下的運(yùn)動
- 小學(xué)生火星天問一號祝融車分享
- 第八屆全國醫(yī)藥行業(yè)特有職業(yè)技能競賽(醫(yī)藥商品購銷員)考試題庫(含答案)
- 2024-2025學(xué)年七年級語文上冊第一單元測試卷(統(tǒng)編版2024新教材)
- 2024年檔案知識競賽考試題庫300題(含答案)
- 短語結(jié)構(gòu)類型(七年級下)
- 廠區(qū)保潔服務(wù)投標(biāo)方案【2024版】技術(shù)方案
- 中國近現(xiàn)代史考點(diǎn)歸納
- 高考志愿填報指導(dǎo)高考志愿填報指南
- 制作的最好的GRR分析表
- 淄博市2024屆高三二模歷史試題卷(含答案)
- MOOC 人力資源管理-暨南大學(xué) 中國大學(xué)慕課答案
評論
0/150
提交評論