jeesite功能模塊解釋_第1頁
jeesite功能模塊解釋_第2頁
免費預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、安全模塊用戶密碼加密存儲用戶密碼加密算法:對用戶的密碼進行sha-1算法加密。迭代1024次,并將salt放在前16位中。SystemService中/*生成安全的密碼,生成隨機的16位salt并經(jīng)過1024次sha-1hash*/publicstaticStringentryptPassword(StringplainPassword)bytesalt=Digests.generateSaLt(SALT_SIZE);/16bytehashPassword=Digests.sha1(plainPassword.getBytes(),salt,HASH_INTERATIONS);returnEn

2、codes.encodeHex(salt)+Encodes.encodeHex(hashPassword);解密同步配置:因為用戶密碼在存儲的時候是用的加密存儲,所以對應(yīng)的解密一定要一至細節(jié)如下。SystemAuthorizingRealm中PostConstructpublicvoidinitCredentialsMatcher()HashedCredentialsMatchermatcher=newHashedCredentialsMatcher(SystemService.HASH_ALGORITHM);/SHA-1matcher.setHashIterations(SystemServ

3、ice.HASH_INTERATIONS);/1024setCredentialsMatcher(matcher);安全碼驗證ValidateCodeServlet生成驗證圖片并存入Session中系統(tǒng)擴展了SystemAuthorizingRealm,F(xiàn)ormAuthenticationFilterUsernamePasswordToken兩個類當同一個用戶請超過3次。用戶登陸頁面(sysLogin.jsp)向ValidateCodeServlet請求驗證圖片和在Shiro驗證的時候FormAuthenticationFilter會提取出validateCode并存入UsernamePass

4、wordToken中然后在SystemAuthorizingRealm中先判斷是否需要驗證validateCode如果需要則從session中獲取先前存入的sessioncode中的code進行比對主題更換在head.jsp中通過查詢cookie.theme.value值來替換bootstrap的css文件,默認是'cerulean',細節(jié)如下:<linkhref="$ctxStatic/bootstrap/2.3.1/css_$notemptycookie.theme.value?cookie.theme.value:'cerulean'/bo

5、otstrap.min.css"type="text/css"rel="stylesheet"/>更改主題的接口為:LoginControler中RequestMapping(value="/theme/theme")publicStringgetThemeInCookie(PathVariableStringtheme,HttpServletRequestrequest,HttpServletResponseresponse)if(StringUtils.isNotBlank(theme)CookieUtils.se

6、tCookie(response,"theme",theme);elsetheme=CookieUtils.getCookie(request,"theme");return"redirect:"+request.getParameter("url");緩存設(shè)計對每一個用戶所需要用到的資源都用Map做了緩存。如果用戶不存在則是創(chuàng)建一個Map<String,Object對象,如果存在,則取principal中的Map<String,Object對象做為緩存,因為principal會隨著用戶的logout自

7、動釋放,每一個用戶都有自己的緩存。這樣每個用戶的緩存是獨立的。獲取邏輯如下publicstaticMap<String,Object>getCacheMap()Map<String,Object>map=Maps.newHashMap();trySubjectsubject=SecurityUtils.getSubject();Principalprincipal=(Principal)subject.getPrincipal();returnprincipal!=null?principal.getCacheMap():map;catch(UnavailableSec

8、urityManagerExceptione)catch(InvalidSessionExceptione)returnmap;放入Shiro管理的principal是自定義的如下:SystemAuthorizingRealm中的子類publicstaticclassPrincipalimplementsSerializable用戶信息模塊與用戶相關(guān)的接口全部在UserController中。所有接口先統(tǒng)一通過下面代碼獲取用戶信息。如果當前用戶沒有給定id則認為是新用戶。創(chuàng)建一個空用戶ModelAttributepublicUserget(RequestParam(required=false

9、)Stringid)if(StringUtils.isNotBlank(id)returnsystemService.getUser(id);elsereturnnewUser();創(chuàng)建用戶接口/sys/user/form從下面代碼可以看出,誰創(chuàng)建的就以誰的公司和辦公室為默認值if(user.getCompany()=null|user.getCompany().getId()=null)user.setCompany(UserUtils.getUser().getCompany();/用當前用戶所在的公司創(chuàng)建if(user.getOffice()=null|user.getOffice().

10、getId()=null)user.setOffice(UserUtils.getUser()getOffice();/用當前用戶所在辦公室創(chuàng)建默認根路徑跳轉(zhuǎn)<!-定義無Controller的path<->view直接映射-><mvc:view-controllerpath="/"view-name="redirect:$web.view.index"/>翻頁處理mon.persistence.Page<T>的toString()方法中實現(xiàn)BootStrap顯示細節(jié),因為數(shù)據(jù)在Page之中。在Jsp頁面中使

11、用<divclass="pagination">$page</div>roleForm.jsp中樹形目錄選擇office彈出對話框式樹型選擇用tags:treeselect標簽將界面操作邏輯封裝在tags:treeselect中用jBox來調(diào)用/tag/treeselect轉(zhuǎn)向tagTreeselectjsp頁面,并傳入相關(guān)參數(shù),其中重要的參數(shù)為url,即要展示的JSON格式數(shù)據(jù)來源tagTreeselectjsp:中只負責數(shù)據(jù)展示,與選擇等相關(guān)操作。(用zNodetree來展示)當發(fā)生“確定”與雙擊操作時都是調(diào)用jBox的ok鍵而ok鍵事件發(fā)生后:

12、jBox會拿到tree結(jié)點對像,并從對像上獲取id和name并寫入input中角色授權(quán)樹型選擇操作先通過后臺傳過來的數(shù)據(jù)構(gòu)建zNodetree由zNodetree來管理數(shù)據(jù)的選擇在表單提交時(submitHandler)獲取選擇數(shù)據(jù)并添加到相應(yīng)的input中。然后提交。如下圖/IrLpjcForrr.f父報聒刖fIcelDBilbniitjiandler:function(formvat?ids=”nodes=tiee.getCneekedNodes(true);for(var1=0;Knndes.length;i+4)Lds.pash(nodes'±.id);卜”口曰&qu

13、ot;¥己工()口日7varids2=Knodes2=tieez.getCaeclceiN'od.es(true)for(var1=0;Knodes2.length;i+)ids2.p'jb?l(uodEB21.id;St”#fficeIds,F.val(ids2);loading(1正在提父,請稍等');£omsubmit(i這里用了一個小技巧°springMVC進行前后臺數(shù)據(jù)綁定的時候其實是調(diào)用Model的set與get方法。(所以只要有這兩個方法即可,不用有成員變員也行)給Role模型添加了兩個方法,并用Transient來標記不寫入數(shù)據(jù)庫。如下STrarLBientpublicSexinggetMenalds()匸iBt<Stiing>nazaeldli3t=Lists.nev.AiTayLit();for(Menumenn:nameZdLiBt.add(iaerL'Ji.gwtZ過();:-returnStringUtils(ziainfHclLrr,n);TranBiEntputjlicvoidsetMenaZds(5tx±ngnr.亡二二二吐3)niEnti匸isv=Lists亞合尸衛(wèi)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論