maven spring hibernate shiro

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());

时间: 2024-10-10 10:26:25

maven spring hibernate shiro的相关文章

在Maven中配置Spring+Hibernate Shiro权限控制项目

前言:在Eclipse中安装好Maven插件,然后创建一个Simple项目.在Eclipse中检出Shiro的官方示例,地址http://svn.apache.org/repos/asf/shiro/trunk/samples/,参考spring-hibernate项目配置.由于之前对Maven的认识不足所以今天专门配置来了解其工作机制,下面是我按照SVN上配置的示例. 1.创建Maven项目并复制配置文件 如图所示: 注:文件的位置与官网示例一致. 2.配置pom.xml文件 <project

maven+spring+hibernate

1.配置文件 pom.xml 指定一个spring.version变量 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version>4.0.0.RELEASE</spring.version> </properties> 把spring+hibernate核心包引进 1 <dependency>

Maven+Struts+Hibernate+Spring简单项目搭建

这段时间学习如何使用Maven+Struts+Hibernate+Spring注解方式建立项目,在这里感谢孙宇老师.    第一次写博客,主要是方便自己查看,同时分享给大家,希望对大家有所帮助,我也是刚入行的小菜鸟,可能有些地方不对,希望不对的地方,大家可以提出来,共同进步. 项目使用的工具是eclipse,数据库使用的是mysql,项目主要是用注解方式实现三大框架的整合. 首先使用maven建立项目,这里简单介绍一下. 第一步:右击new->other->Maven Project,如下图:

用Maven整合SpringMVC+Spring+Hibernate 框架,实现简单的插入数据库数据功能(二)

前一篇写的有些多,大家先看前一篇,传送门 具体的资源已将上传到资源了. 附地址:MySQL.zip启动 用Maven整合SpringMVC+Spring+Hibernate 框架 上文我们直接搭建前的准备和资源配置都写好了,下面进入具体代码编写.承接上文的小3 3.我习惯建立接口,这样对整个项目感觉更合理. (1.)建立IBaseService(业务逻辑层,有的习惯写成BaseServiceI)都可以,都是标注接口的,我只是简单的贴下代码 package com.jesus.sshframewo

用Maven整合SpringMVC+Spring+Hibernate 框架

用Maven整合SpringMVC+Spring+Hibernate 框架, 实现简单的插入数据库数据 一.搭建开始前的准备 1.打开MyEclipse新建Maven项目.File>New>Other(或Ctrl+N)>Maven Project:然后我们用default Workspace就行了(注意Location的路径,区分目录名和项目名):然后再Filter中输入webapp,我们选择org.apache.maven.archetypes 下的maven-archetype-we

使用maven实现struts2 spring hibernate 的整合

今天用maven实现了struts2 , spring, hibernate 的整合. 这中间出现了不少的错误.大都是因为配置文件出错引起的.在这里整合一下: 注:这里我们实现一个登陆功能.用户从jsp页面输入用户名和密码,服务器校验其正确性后,根据正确与否跳转到不同的页面. 一,整合之后的项目结构: 可以看到,与以前的“动态网站”项目的结构不同.Maven项目中所有的框架配置文件都放在了“resources”目录下面.在“resources”中的文件最终会被copy到项目的 WEB-INF/c

Maven搭建springMVC+spring+hibernate环境

这次不再使用struts2做控制器,采用spring自己的springMVC框架实现. 首先,改写pom.xml文件,不需要struts2的相关jar了. pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apa

Maven搭建struts2+spring+hibernate环境

Maven搭建struts2+spring+hibernate环境(一) 本文简单的使用STS的自带的maven插件工具搭建ssh(struts2+spring+hibernate)开发环境,图文并茂,简单上手,适合新手. 关于STS的介绍,请参考另一篇文章<Java IDE介绍:Spring开发利器-spring-tool-suite>地址:http://blog.csdn.net/sgl731524380/article/details/8831540 首先,STS自带的maven的插件已

Spring+mybatis+shiro+freemarker+ehcache+ldap+mongo【转】

所有配置文件在此 spring servlet: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"        xmlns:aop="http://www.springframework.org/schema/aop"        xmlns:context=&q