2019独角兽企业重金招聘Python工程师标准>>>

maven spring hibernate RBAC shiro mysql

代码发布于 http://git.oschina.net/alexgaoyh/alexgaoyh

1:数据库表结构设计采用RBAC权限模型,即五张表结构设计(用户,角色,用户-角色,权限,角色-权限),本文不再详细说明;

2:shiro使用过程中:

2.1:以下这个类是进行用户的数据库验证的,从数据库里面查出是否有这个用户。

public class ShiroDbRealm extends AuthorizingRealm

需要注意的是 doGetAuthenticationInfo 方法的

return new SimpleAuthenticationInfo(user, user.getPassword(), ByteSource.Util.bytes(user.getPassword()),getName()); 部分;

2.2: 在生成对用表结构的时候,需要注意本例中的user表中password字段使用了MD5加密,

所以,在生成表结构之后,执行以下方法生成对应的用户数据:

public String saveSysmanUserEntity() throws Exception{SysmanUser su = new SysmanUser();su.setUserName("admin");su.setRealName("admim");su.setPassword(new Md5Hash("admin").toHex());su.setStatus(SysmanUser.STATUS_NORMAL);sysmanUserService.saveOrUpdate(su);return JSONObject.valueToString(su);}

2.3: 同时在登陆方法中

public ModelAndView doLogin(HttpServletRequest request, HttpServletResponse response) {Map<String, Boolean> map = new HashMap<String, Boolean>();boolean loginStatus = false;boolean captchaStatus = false;String captcha = request.getParameter("captcha");String exitCode = (String) request.getSession().getAttribute(CaptchaConstant.KEY_CAPTCHA);if (null == captcha || !captcha.equalsIgnoreCase(exitCode)) {System.out.println("验证码错误");}else{captchaStatus = true;String username = request.getParameter("username");String password = request.getParameter("password");Md5Hash md5Hash = new Md5Hash(password);UsernamePasswordToken token = new UsernamePasswordToken(username,md5Hash.toHex());System.out.println(token.getUsername());System.out.println(token.getPassword());try {Subject subject = SecurityUtils.getSubject();subject.login(token);token.clear();SysmanUser user = (SysmanUser) subject.getPrincipal();subject.getSession().setAttribute("adminCurrentUser", user);loginStatus = true;} catch (UnknownAccountException ex) {ex.printStackTrace();} catch (IncorrectCredentialsException ex) {ex.printStackTrace();}catch (Exception ex) {ex.printStackTrace();}}map.put("loginStatus", loginStatus);map.put("captchaStatus", captchaStatus);ModelAndView mav = new ModelAndView("views/admin/index", map);return mav;}

需要注意用户输入的password是明文,在生成token的时候,需要进行如下操作:

Md5Hash md5Hash = new Md5Hash(password);UsernamePasswordToken token = new UsernamePasswordToken(username,md5Hash.toHex());

转载于:https://my.oschina.net/alexgaoyh/blog/307679

maven spring hibernate shiro相关推荐

  1. Maven搭建springMVC+spring+hibernate环境

    这次不再使用struts2做控制器,采用spring自己的springMVC框架实现. 首先,改写pom.xml文件,不需要struts2的相关jar了. pom.xml <project xm ...

  2. Maven搭建Springmvc+Spring+Hibernate+html

    最近在学前端,由于之前是干Android和Java所以顺便就搞搞Web的东西.于是就摸索了用Maven搭建Springmvc+Spring+Hibernate+html的工程,废话不多说. 工具:Ec ...

  3. Spring+SpringMVC+shiro+mysql(一)

    Spring+SpringMVC+shiro+mysql(一) 最近要做个后台管理系统,就会设计到权限的管理控制,于是就想到 shiro ,下面是自己对Spring+shiro的一点点理解,记录下来, ...

  4. maven+spring mvc+mybatis+redis+dubbo+zookeeper

    2019独角兽企业重金招聘Python工程师标准>>> 黎孟阳 随笔 - 6, 文章 - 0, 评论 - 0, 引用 - 0 maven+spring mvc+mybatis+red ...

  5. pytorch1.0.1_将Spring 3.x和Hibernate 3.x升级到Spring Platform 1.0.1(Spring + hibernate 4.x)

    pytorch1.0.1 最近,我自愿将我们的最新项目升级到最新版本的Spring Platform. Spring Platform为您提供的是整个Spring框架库集中的依赖项和插件管理. 由于我 ...

  6. SSH之IDEA2017整合Struts2+Spring+Hibernate

    摘要 IDEA无疑是Java编程的利器,在下面我们将介绍如何使用IDEA来整合SSH(Struts2 + Spring + Hibernate):介绍將分为三个部分来讲,分别是新建工程,Spring引 ...

  7. Spring Boot Shiro 权限管理

    Spring Boot Shiro 权限管理 标签: springshiro 2016-01-14 23:44 94587人阅读 评论(60) 收藏 举报 本来是打算接着写关于数据库方面,集成MyBa ...

  8. springmvc+spring+hibernate集成cxf

    首先说一下背景,我们的系统是springmvc+spring+hibernate,已经能正常运行,现在要开发webservice,选用cxf. 1.maven依赖 <dependency> ...

  9. 【Spring 数据访问终篇】Spring + Hibernate + Mysql

    说来惭愧,数月没有更新博客,今天带来spring访问数据的最终篇,spring + hibernate. 本篇文章将用maven创建一个简答的java项目,并结合spring框架中的hibernate ...

最新文章

  1. linux insight 使用教程,Insight API开源项目分析
  2. 万万没想到,一个可执行文件原来包含了这么多信息!
  3. leetcode117. 填充每个节点的下一个右侧节点指针 II(dfs)
  4. 经验分享:Web前端入门要怎么开始学?
  5. Ansible首次ssh问题解决
  6. (4.5.4)Android測试TestCase单元(Unit test)測试和instrumentationCase单元測试
  7. poj 匈牙利二分匹配 1274 The Perfect Stall
  8. 在mysql上发布jbpm4.3
  9. 赤兔AVI视频恢复软件找回永久删除的avi视频
  10. Unity场景打包AssetBundle并加载
  11. Githut Token (hidden): Githut 安装验证
  12. P4816 [USACO15DEC]High Card Low Card G 题解
  13. 我的世界服务器怎么制作头颅,我的世界怎么刷生物头颅 我的世界生物头颅制作方法-游侠网...
  14. 台式计算机usb口不能用,电脑usb接口不能用怎么办【图文教程】
  15. 按关键词搜索商品 淘宝API
  16. 网易运营微专业_用户运营
  17. 关于swiper在移动端,快速上下滑动出现白边的解决办法
  18. 前端面试查漏补缺--(三) 跨域及常见解决办法
  19. 两个函数相加、相减、相乘等之后的单调性
  20. Development Tools 错误解决

热门文章

  1. 胡桂珍c语言期末考试题,C程序设计教程
  2. VB 迅雷下载地址解密函数
  3. Nginx设置日志打印post请求参数
  4. 千方科技的中场战事:选择、进化与野望
  5. 十个优衣库仓库理货员,只有一个能留下,机器已经上岗了
  6. 从应届技术男到百度VP,这是低调到没百科的吴海锋首次受访
  7. 合作︱2018CCF青年精英大会首设科技创业竞赛,快来报名吧!
  8. Goodfellow新研究:对抗样例让机器与人类双双上当 | 论文
  9. Kanban VS Scrum:哪个是最好的敏捷项目管理框架
  10. Java基础13:反射与注解详解