`
arthas1982
  • 浏览: 3426 次
  • 性别: Icon_minigender_1
  • 来自: 火星蛤蟆王国
最近访客 更多访客>>
社区版块
存档分类
最新评论

懒人的简单权限管理 (基于Struts)

阅读更多
网站没什么很复杂的权限控制,用户分几个等级。我使用了一个最懒的实现方式,不同等级的页面规定的ServletPath都以不同的开头来标示。打个比方,${pageContext.request.contextPath}/public/xx.do任何人都可以进入,${pageContext.request.contextPath}/contracted/xx.do只能是登录用户可以进入等等..


public class MyRequestProcessor extends RequestProcessor {
	public void process(HttpServletRequest request, HttpServletResponse response)
			throws IOException, ServletException {

		 try {
		super.process(request, response);
		 } finally {
		 }
                  //这里可以做N多的事情,比如如果用JDO,可以在这里确保pm被关闭,context被释放等等。。
	}
        
	protected boolean processRoles(HttpServletRequest request,
			HttpServletResponse response, ActionMapping mapping)
			throws IOException, ServletException {
		String path = request.getServletPath();
		if (path.startsWith("/public"))
			return true;
		if (!authenticate(request, response, mapping))
			return false;
		return authorize(request, response, mapping);
	}
        
	public boolean authenticate(HttpServletRequest request,
			HttpServletResponse response, ActionMapping mapping)
			throws IOException, ServletException {
		UserVO user = PrizoneUtil.getCurrentUser(request);
		if (user != null) {
			return true;
		} else {
			ForwardConfig forwardConfig = moduleConfig.findForwardConfig("登陆Forward");
			if (forwardConfig == null) {
				throw new ServletException("登陆页面配制错误");
			}
			this.processForwardConfig(request, response, forwardConfig);
			return false;
		}
	}

	public boolean authorize(HttpServletRequest request,
			HttpServletResponse response, ActionMapping mapping)
			throws IOException, ServletException {

		UserVO user = request.getSession().getAttribute("User");
		String path = request.getServletPath();
		if (path.startsWith("/contracted")
				&& (Constants.USER_ROLE_NORMAL.equals(user.getRole())
						|| Constants.USER_ROLE_VIP.equals(user.getRole())
						|| Constants.USER_ROLE_NET_MASTER
								.equals(user.getRole()) || Constants.USER_ROLE_ADMINISTRATOR
						.equals(user.getRole()))) {
			return true;
		} else if (path.startsWith("/protected")
				&& (Constants.USER_ROLE_NET_MASTER.equals(user.getRole()) || Constants.USER_ROLE_ADMINISTRATOR
						.equals(user.getRole()))) {
			return true;
		} else if (path.startsWith("/private")
				&& Constants.USER_ROLE_ADMINISTRATOR.equals(user.getRole())) {
			return true;
		} else {
			ForwardConfig forwardConfig = moduleConfig
					.findForwardConfig("xxx");
			if (forwardConfig == null) {
				throw new ServletException("xxx page is not defined");
			}
			this.processForwardConfig(request, response, forwardConfig);
			return false;
		}
	}
}


然后在struts-config.xml里配制一下
<controller processorClass="com.tianhui.web.action.MyRequestProcessor" nocache="true" />
分享到:
评论

相关推荐

    懒人系统管理工具

    "懒人系统管理工具"是一款专为用户设计的便捷式系统管理应用,旨在简化日常的计算机维护工作,让不熟悉复杂系统操作的用户也能轻松管理自己的电脑。这款工具集成了多种实用功能,如系统设置快捷入口、性能优化、清理...

    基于PaddleOCR开发懒人精灵文字识别插件

    基于PaddleOCR开发懒人精灵文字识别插件,使用方式可以查看该文章https://blog.csdn.net/YY007H/article/details/128247582

    懒人的win系统管理教程

    懒人的win系统管理教程

    lua 懒人精灵懒人精灵懒人精灵懒人精灵

    懒人精灵懒人精灵懒人精灵懒人精灵懒人精灵懒人精灵

    懒人快速建站管理系统

    这个系统基于PHP语言开发,充分利用了PHP的灵活性和高效性,为用户提供了一个直观、易用的界面,使得建站过程如同拖曳元素般简单。 在PHP建站程序的世界里,懒人快速建站管理系统具有以下主要特点: 1. **拖曳式建...

    懒人工资人事管理系统 v1.0.zip

    懒人工资人事管理系统 是一套功能强大通用性极强的人事及工资管理系统,完善的人事档案管理、支持员工照片管理,人员增加、调动。工资项目及计算公式自由设定,可以设立40项工资项目。提供万能人事、工资查询,支持...

    懒人许工具.7z懒人许工具

    5. **使用场景**:考虑到CAD软件广泛应用于建筑、机械、电子工程等领域,"懒人许工具"可能包含了一系列适用于这些领域的功能,比如自动标注、尺寸测量、图块管理、布局设置等。这些功能将帮助设计师快速完成常见的...

    懒人工作通OA

    懒人工作通OA管理软件 v5.7.0 SqlServer版 面向中小企业的免费版本,易于安装维护,安全便捷,支持虚拟主机空间。 郑重承诺:本系统无任何后门及其他流氓手段。 =================================================...

    按键精灵的懒人插件12

    6. **图像识别与处理**:在某些场景下,基于图像识别的自动化可能更为实用,懒人插件可能集成了图像识别技术,帮助用户识别和点击屏幕上的图像元素。 7. **文件操作与网络通信**:懒人插件可能增加了对文件系统和...

    基于Pnetlab4.0.2的懒人包.rar

    A light,网盘文件,本人亲测可用,连接永久有效 docker ubuntu. docx Docker Chrome Node. docx PNET 4.0.2 SD-WAN Lab_For- Dummies _By_ Doge. ova ...he docker wireshark.docx Ubuntu Desktop....

    漂亮的后台管理界面,方便懒人

    描述中提到的“方便懒人不想制作后台管理界面”,暗示了这个资源可能是一个预设计的、现成的后台模板,适用于那些希望快速构建后台管理系统,而不愿花费大量时间在界面设计上的开发者或团队。动易是一家知名的中国...

    懒人精灵源码懒人精灵源码懒人精灵源码懒人精灵源码

    【标题】懒人精灵源码 懒人精灵源码是一个重要的软件或插件项目,它可能涉及编程语言、软件工程、自动化工具等多个IT领域的知识点。从"懒人精灵"这个名字可以推测,它可能是为了简化用户操作,提高效率而设计的一款...

    懒人的win系统管理.doc

    全面的个人电脑windows安全设置,包含很多windows操作系统特性和系统设置,看完可以做管理员了

    基于PHP的自适应各终端懒人网址导航源码.zip

    这是一个基于PHP技术构建的自适应多终端懒人网址导航系统的源码包。PHP是一种广泛使用的开源脚本语言,尤其在Web开发领域中占有重要地位。它具有语法简单、学习曲线平缓、功能强大且可扩展性强的特点,因此成为了...

    懒人工作通

     懒人工作通 采用基于WEB的企业计算,采用了世界上最先进的微软技术:C#语言、SqlServer/Access数据库引擎和IIS服务器,性能稳定可靠。数据存取集中控制,避免了数据泄漏的可能。提供数据备份工具,保护系统数据...

    懒人工具箱V1.0(懒人专用)

    "懒人工具箱V1.0(懒人专用)"是一款专为不熟悉或不愿进行复杂操作的用户设计的实用工具集合。它旨在简化日常电脑使用中的各种任务,让用户能够快速、简便地完成一些常见的系统管理和优化工作。尽管这款工具箱可能...

    懒人系列1-基于链表的字符串分割功能实现

    本系列为懒人版工具箱,注解丰富,逻辑清晰,移植方便,便于学习和使用,初次上手请参考示例代码。

    struts2springibatis整合包.rar

    这个"struts2springibatis整合包.rar"是一个预配置好的项目包,旨在帮助开发者快速搭建基于这三大框架的应用,避免手动配置和整合过程中可能出现的问题,从而提升开发效率。 Struts2作为经典的MVC框架,主要用于...

    懒人源码lanrenzhijia.com+超炫YYCMS影视系统源码+全自动采集.rar

    宝塔面板是一款流行的Linux服务器管理软件,它提供了图形化的操作界面,使得服务器的管理和维护变得更加简单。在宝塔环境中,你可以便捷地进行网站部署、数据备份、安全设置等一系列操作。 安装过程大致分为以下几...

    CE修改器懒人1.0

    "CE修改器懒人1.0"是一款专为游戏爱好者设计的内存修改工具,它基于著名的 Cheat Engine(CE)并进行了优化,旨在简化修改过程,让玩家能够更轻松地调整游戏参数。CE懒人1.0的特点在于其中文界面,这对于中国用户来...

Global site tag (gtag.js) - Google Analytics