jeesite功能模块解释_第1页
jeesite功能模块解释_第2页
jeesite功能模块解释_第3页
jeesite功能模块解释_第4页
jeesite功能模块解释_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、安全模块用户密码加密存储用户密码加密算法:对用户的密码进行 sha-1算法加密。迭代1024次,并将 salt 放在前16位中。SystemService 中/*生成安全的密码,生成随机的16位salt并经过1024次sha-1 hash*/publicstaticString entryptPassword(String plain Password) byte salt = Digests.generateSalt ( SALT_SIZE);/16byte hashPassword =Digests. sha1 (plai nPassword.getBytes(), salt,HASH_I

2、NTERATIONSreturnEncodes. encodeHex (salt)+Encodes.encodeHex (hashPassword);解密同步配置:因为用户密码在存储的时候是用的加密存储,所以对应的解密一定要一至细节如下。SystemAuthorizingRealm 中PostCo nstructpublicvoidin itCrede ntialsMatcher() newHASH_ALGORITHM/SHA-1HASH_INTERATIONS/HashedCrede ntialsMatcher matcher = HashedCrede ntialsMatcher(Syst

3、emService.matcher.setHashIterati on s(SystemService. /1024setCrede ntialsMatcher(matcher);安全码验证当同一个用户请超过3次。用户登陆页面 (sysLogin.jsp)向ValidateCodeServlet请求验证图片ValidateCodeServlet生成验证图片并存入Session 中如果需要则从 session中获取先前存入的session code 并与UsernamePasswordToken中的code进行比对王题更换在 head.jsp中通过查询 cookie.theme.value 值来

4、替换bootstrap 的 css文件,默认是'cerulea n',细节如下:<link href="$ctxStatic/bootstrap/2.3.1/css_$not emptycookie.theme.value ?cookie.theme.value:'cerulea n'/bootstrap.mi n.css"type="text/css" rel="stylesheet" />更改主题的接口为:Logi nCon troler 中RequestMapping (value =

5、 "/theme/theme")public Stri ng getTheme In Cookie(PathVariable Stri ng theme,HttpServletRequest request, HttpServletResp onse resp on se)if (StringUtils. isN otBlank(theme)CookieUtils. setCookie (response, "theme", theme); else theme = CookieUtils.getCookie(request, "theme&q

6、uot;);url");return "redirect:" +request.getParameter(对每一个用户所需要用到的资源都用Map做了缓存。如果用户不存在则是创建一个Map<String, Object>对象,如果存在,则取 principal中的Map<String, Object>对象做为缓存, 因为principal会随着用户的logout自动释放,每一个用户都有自己的缓存。这样每个用户 的缓存是独立的。获取逻辑如下publicstaticMap<Stri ng, Object>getCache Map ()

7、Map<Stri ng, Object> map = Maps.n ewHashMap();getSubject ();try Subject subject = SecurityUtils. Prin cipal prin cipal =(Pri ncipal)subject.getPri ncipal();return principal!=null ?principal.getCacheMap():map; catch (UnavailableSecurityManagerException e) catch (InvalidSessionException e) retur

8、n map;放入Shiro管理的principal是自定义的如下:SystemAuthorizi ngRealm 中的子类 public static class Prin cipal impleme nts Serializable用户信息模块与用户相关的接口全部在UserC on troller中。所有接口先统一通过下面代码获取用户信息。如果当前用户没有给定id则认为是新用户。创建一个空用户ModelAttributepublic User get( RequestParam(required= false ) String id) if (StringUtils.isNotBlank (

9、id)return systemService.getUser(id); else return new User();创建用户接口/sys/user/form从下面代码可以看出,谁创建的就以谁的公司和办公室为默认值if (user.getCompany()= null | user.getCompany().getld()= null )user.setCompa ny (UserUtils. 用当前用户所在的公司创建if (user.getOffice() = nullnull ) user.setOffice(UserUtils.当前用户所在办公室创建getUser ().getComp

10、any();/| user.getOffice().getld()getUser ().getOffice(); / 用默认根路径跳转<!-定义无 Controller的path<->view 直接映射-><mvc:view-controller path ="/" view-name ="redirect:$web.view.ind ex" />翻页处理mon.persistence.Page<T>的 toString() 方法中实现 BootStrap 显示细节,因为数据在 Page 之中。在 Jsp

11、页面中使用 <div class="pagination">$page</div>roleForm.jsp中树形目录选择office 弹出对话框式树型选择用 tags:treeselect标签将界面操作逻辑封装在 tags:treeselect 中 用 jBox 来 调 用 /tag/treeselect转 向tagTreeselect.jsp页面,并传入相关参数,其中重要的参数为 url ,即要展示的JSON格式数据来源tagTreeselect.jsp :中只负责数据展示, 与选择等相关操作。(用 zNode tree 来展示)当发生“确定”与双

12、击操作时都是调用 jBox 的 ok 键而 ok 键事件发生后: jBox 会拿到 tree 结点对像,并从对像上获取 id 和 name 并写入 input 中角色授权树型选择操作先通过后台传过来的数据构建 zNode tree由 zNode tree 来管理数据的选择在表单提交时( submitHandler )获取选择数据并添加到相应的 input 中。然后提交。如下图/inpur F o mil父取羽刖试4Y迈瑋旳采卑工D-Of CicelESLiEit.handler: function (four.) var ids = f nodes = ties 0已1匚!1电(:£

13、电胡口氏电呂(tru);for (var ±«0; Knades .length; i + + ) ds .pisti (ncdes 二.j_d);>£ ("#menalds,j *val J ;var ida2 二,nodesi = tiee2.getCheefeeiNode3(trne: for (var i=D; KnodesS.lengrt); i+) id32-push(nodes;1.id):S C'*officelcisn ,val (id);loading (*£_在提交/ 请稍等-1);f 口 =IL曰MlU.二

14、(;这里用了一个小技巧。springMVC进行前后台数据绑定的时候其实是调用Model的set与get方法。(所以只要有这两个方法即可,不用有成员变员也行 ) 给Role模型添加了两个方法,并用Transient来标记不写入数据库。如下Glranaient;public String getMenuId(Lxsc<Sciing> nair.eldlis = Liars .navJlJrayLi t:();for (Menu menu : menullJt) nameIdList add(menu getld()*return StTingUtils joiji (nair亡HtLLziNtiF ",");>STranaientpublic void setMenuIds (String n.«nuTdB)menu匚

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论