求一份简单的ssm(springmvc+mabatis)的java权限管理源码?
http://www.sojson.com/shiro
Shiro Demo环境准备,建议使用0.2版本,这样你会遇到较少问题。
开发工具:Eclipse、MyEclipse、Idea等等。
依赖第三方:Mysql 5.0以上、Redis。
需要的配置:jdbc.properties中配置Mysql的信息、spring-cache.xml配置Redis 配置,
如果是默认配置,就不用换,Redis Windows安装:http://www.sojson.com/blog/110.html。
注意:0.1版本访问不要带项目路径访问。比如用:http://localhost:8080 访问,别带设置带项目名称 ,如:http://localhost:8080/shiro.demo/这样是不对的。 。也就是要把项目部署到Root下,也就是根目录下。0.2版本已经解决该问题了。
Spring
开源框架,轻量级框架,大大简化java企业级开发。Spring是一个全面的解决方案,坚持--不重复发明轮子。Spring只是对现有的JDBC或者Mybatis或者Hibernate等技术提供支持。
Spring框架大约20个功能模块,被分为6个部分,分别是Core Contaionwe、DataAcess/Integration、Web、AOP(Aspect Oriented Programming)、Instrumentation和Test。
(1)Spring Core 是框架最基础部分,提供了IoC特性;
(2)Spring Context 为开发提供便利工具;
(3)Spring AOP 基于 Core 的 符合规范的面向切面编程;
(4)Spring JDBC 提供JDBC 抽象层;
(5)Spring ORM 对流行的ORM 框架提供了支持;
(6)Spring Web 为Spring 在 Web 应用程序的使用提供了支持。
现本人要做一个权限管理模块,急需java写的权限管理模块的源码一份做为参考,要求能够演示的
关于权限管理,如果是网站的话,最简单的方式就是用过滤器。通过用户访问的URL进行控制。
这种方式,在写控制或网页时,不用考虑权限问题!权限由过滤器统一管理。
spring 的servlet.xml配置如下:
/test.do
/login.do
/logout.do
相应的JAVA代码:
package com.zmax.utils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
public class AdminContextInterceptor extends HandlerInterceptorAdapter{
private static final Logger logger = Logger.getLogger(AdminContextInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
if (logger.isDebugEnabled())
logger.debug("权限预处理");
//获取用户访问的地址
String uri = getURI(request);
// 不在验证的范围内
if (exclude(uri)) {
return true;
}
AdminUser adminUser=(AdminUser)session.getAttribute(request, SessionName.ADMINUSER);
// 用户为null跳转到登陆页面
if (adminUser == null) {
if(devmode==null||devmode.equals(0)){
response.sendRedirect(getLoginUrl(request));
return false;
}
}
//如果用户权限不够,跳到登录页面
if(checkAdmin(adminUser,uri)){
response.sendRedirect(getLoginUrl(request));
return false;
}else{
//权限够了,返回true
adminUser=adminUserService.get(devmode);
session.setAttribute(request, response, SessionName.ADMINUSER, adminUser);
return true;
}
return true;
}
@Override
public void postHandle(HttpServletRequest request,
HttpServletResponse response, Object handler, ModelAndView mav)
throws Exception {
if (logger.isDebugEnabled())
logger.debug("权限处理");
}
@Override
public void afterCompletion(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex)
throws Exception {
if (logger.isDebugEnabled())
logger.debug("权限后处理");
}
}