关于用Java程序实现8421码权限管理 -第四部分
2010-01-31 15:46
666 查看
自定义标签,标签处理器类:
PrivilegeTag.Java有权限的类设计:
package com.qizhi.tags.bean;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.tagext.TagSupport;
import com.qizhi.entity.Roleright;
import com.qizhi.web.form.UserForm;
/**
* <qz:privilege />表示处理器类
*/
public class PrivilegeTag extends TagSupport
{
private String beanName="login";
private String scope="session";
private String operation="none";
public void setBeanName(String beanName)
{
this.beanName = beanName;
}
public void setScope(String scope)
{
this.scope = scope;
}
public void setOperation(String operation)
{
this.operation = operation;
}
public int doStartTag(){
UserForm init_bean=null;
if (scope == null || scope.equals(""))
return SKIP_BODY;
else
{
if (scope.trim().equals("session"))
{
HttpSession session = pageContext.getSession();
init_bean = (UserForm)session.getAttribute(beanName);
if (init_bean == null)
return SKIP_BODY;
}
else{
if (scope.trim().equals("request"))
{
HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
init_bean = (UserForm)request.getAttribute(beanName);
if (init_bean == null)
return SKIP_BODY;
}
}
}
HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
String resource_path = request.getServletPath();//得到本页资源url
List<Roleright> roleRights=init_bean.getUser().getRole().getRolerights();
for (Roleright roleright : roleRights)
{
if(roleright.getRight().getRightUrl().trim().equals(resource_path.trim())){
if (operation.trim().equals("ALL"))//所有权限
if(roleright.getAddVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("QUERY"))//如果需要判定是否具有查询
if (roleright.getFindVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("ADD"))//增加权限
if (roleright.getAddVal())return EVAL_BODY_AGAIN;
if (operation.equals("DELETE"))//删除权限
if (roleright.getDelVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("UPDATE"))//修改权限
if (roleright.getEditVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("PRINT"))//打印权限
if (roleright.getPrintVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("DISTRIBUTE"))//分配权限
if (roleright.getDisVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("COMFIRM"))//批准权限
if (roleright.getCfmVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("SPECIALTY"))//特别权限
if (roleright.getSpecVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("ADMIN"))//管理员权限
if (roleright.getAdminVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("DOWNLOAD"))//下载权限
if (roleright.getDownLoadVal())return EVAL_BODY_AGAIN;
break;
}
}
return SKIP_BODY;
}
}
NotPrivilegeTag.java无权限类设计:
package com.qizhi.tags.bean;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.tagext.TagSupport;
import com.qizhi.entity.Roleright;
import com.qizhi.web.form.UserForm;
/**
* <qz:notPrivilege />表示无权限处理器类
*/
public class NotPrivilegeTag extends TagSupport
{
private String beanName="login";
private String scope="session";
private String operation="none";
public void setBeanName(String beanName)
{
this.beanName = beanName;
}
public void setScope(String scope)
{
this.scope = scope;
}
public void setOperation(String operation)
{
this.operation = operation;
}
public int doStartTag(){
UserForm init_bean=null;
if (scope == null || scope.equals(""))
return SKIP_BODY;
else
{
if (scope.trim().equals("session"))
{
HttpSession session = pageContext.getSession();
init_bean = (UserForm)session.getAttribute(beanName);
if (init_bean == null)
return SKIP_BODY;
}
else{
if (scope.trim().equals("request"))
{
HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
init_bean = (UserForm)request.getAttribute(beanName);
if (init_bean == null)
return SKIP_BODY;
}
}
}
HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
String resource_path = request.getServletPath();//得到本页资源url
List<Roleright> roleRights=init_bean.getUser().getRole().getRolerights();
for (Roleright roleright : roleRights)
{
if(roleright.getRight().getRightUrl().trim().equals(resource_path.trim())){
if (operation.trim().equals("NONE"))//没有权限
if(!roleright.getAddVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("QUERY"))//如果需要判定是否具有查询
if (!roleright.getFindVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("ADD"))//增加权限
if (!roleright.getAddVal())return EVAL_BODY_AGAIN;
if (operation.equals("DELETE"))//删除权限
if (!roleright.getDelVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("UPDATE"))//修改权限
if (!roleright.getEditVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("PRINT"))//打印权限
if (!roleright.getPrintVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("DISTRIBUTE"))//分配权限
if (!roleright.getDisVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("COMFIRM"))//批准权限
if (!roleright.getCfmVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("SPECIALTY"))//特别权限
if (!roleright.getSpecVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("ADMIN"))//管理员权限
if (!roleright.getAdminVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("DOWNLOAD"))//下载权限
if (!roleright.getDownLoadVal())return EVAL_BODY_AGAIN;
break;
}
}
return SKIP_BODY;
}
}
标签设计:
qizhi.tld:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd" >
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>qz</short-name>
<uri>http://www.qizhi.com/qizhi/tags-qz</uri>
<tag>
<name>privilege</name>
<tag-class>com.qizhi.tags.bean.PrivilegeTag</tag-class>
<body-content>jsp</body-content>
<description>
有权限标签
<br>功能:
<br>如果取InitBean这个javabean中的属性字段userid为当前用户,该
用户在本页url(本页url是一个资源),如果有UPDATE权限,那就执行标签内body
部分的链接代码
</description>
<attribute>
<name>beanName</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>String</type>
<description>
集合键名称,如:
<br/>request.getAttribute("beanName")
</description>
</attribute>
<attribute>
<name>scope</name>
<rtexprvalue>true</rtexprvalue>
<type>String</type>
<description>查找的范围Requet或Session默认为Session</description>
</attribute>
<attribute>
<name>operation</name>
<rtexprvalue>true</rtexprvalue>
<type>String</type>
<description>
权限值,如下:
<br/>ALL:所有权限
<br/>ADD:增加权限
<br/>DELETE:删除权限
<br/>UPDATE:修改权限
<br/>QUERY:查询权限
<br/>PRINT:打印权限
<br/>DISTRIBUTE:分配权限
<br/>COMFIRM:批准权限
<br/>SPECIALTY:特别权限
<br/>ADMIN:管理员权限
<br/>DOWNLOAD:下载权限
</description>
</attribute>
<example ></example>
</tag>
<tag>
<name>notPrivilege</name>
<tag-class>com.qizhi.tags.bean.NotPrivilegeTag</tag-class>
<body-content>jsp</body-content>
<description>
无权限标签
<br>功能:
<br>如果取InitBean这个javabean中的属性字段userid为当前用户,该
用户在本页url(本页url是一个资源),如果无UPDATE权限,那就执行标签内body
部分的链接代码
</description>
<attribute>
<name>beanName</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>String</type>
<description>
集合键名称,如:
<br/>request.getAttribute("beanName")
</description>
</attribute>
<attribute>
<name>scope</name>
<rtexprvalue>true</rtexprvalue>
<type>String</type>
<description>查找的范围Requet或Session默认为Session</description>
</attribute>
<attribute>
<name>operation</name>
<rtexprvalue>true</rtexprvalue>
<type>String</type>
<description>
没有权限值,如下:
<br/>NONE:没有权限
<br/>ADD:没有增加权限
<br/>DELETE:没有删除权限
<br/>UPDATE:没有修改权限
<br/>QUERY:没有查询权限
<br/>PRINT:没有打印权限
<br/>DISTRIBUTE:没有分配权限
<br/>COMFIRM:没有批准权限
<br/>SPECIALTY:没有特别权限
<br/>ADMIN:没有管理员权限
<br/>DOWNLOAD:没有下载权限
</description>
</attribute>
<example ></example>
</tag>
</taglib>
标签引用在web.xml中配置:
<taglib>
<taglib-uri>http://www.qizhi.com/qizhi/tags-qz</taglib-uri>
<taglib-location>/WEB-INF/qizhi.tld</taglib-location>
</taglib>
全部代码结束,以上全部只是权限管理的主要代码,参考使用。
PrivilegeTag.Java有权限的类设计:
package com.qizhi.tags.bean;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.tagext.TagSupport;
import com.qizhi.entity.Roleright;
import com.qizhi.web.form.UserForm;
/**
* <qz:privilege />表示处理器类
*/
public class PrivilegeTag extends TagSupport
{
private String beanName="login";
private String scope="session";
private String operation="none";
public void setBeanName(String beanName)
{
this.beanName = beanName;
}
public void setScope(String scope)
{
this.scope = scope;
}
public void setOperation(String operation)
{
this.operation = operation;
}
public int doStartTag(){
UserForm init_bean=null;
if (scope == null || scope.equals(""))
return SKIP_BODY;
else
{
if (scope.trim().equals("session"))
{
HttpSession session = pageContext.getSession();
init_bean = (UserForm)session.getAttribute(beanName);
if (init_bean == null)
return SKIP_BODY;
}
else{
if (scope.trim().equals("request"))
{
HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
init_bean = (UserForm)request.getAttribute(beanName);
if (init_bean == null)
return SKIP_BODY;
}
}
}
HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
String resource_path = request.getServletPath();//得到本页资源url
List<Roleright> roleRights=init_bean.getUser().getRole().getRolerights();
for (Roleright roleright : roleRights)
{
if(roleright.getRight().getRightUrl().trim().equals(resource_path.trim())){
if (operation.trim().equals("ALL"))//所有权限
if(roleright.getAddVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("QUERY"))//如果需要判定是否具有查询
if (roleright.getFindVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("ADD"))//增加权限
if (roleright.getAddVal())return EVAL_BODY_AGAIN;
if (operation.equals("DELETE"))//删除权限
if (roleright.getDelVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("UPDATE"))//修改权限
if (roleright.getEditVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("PRINT"))//打印权限
if (roleright.getPrintVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("DISTRIBUTE"))//分配权限
if (roleright.getDisVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("COMFIRM"))//批准权限
if (roleright.getCfmVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("SPECIALTY"))//特别权限
if (roleright.getSpecVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("ADMIN"))//管理员权限
if (roleright.getAdminVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("DOWNLOAD"))//下载权限
if (roleright.getDownLoadVal())return EVAL_BODY_AGAIN;
break;
}
}
return SKIP_BODY;
}
}
NotPrivilegeTag.java无权限类设计:
package com.qizhi.tags.bean;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.tagext.TagSupport;
import com.qizhi.entity.Roleright;
import com.qizhi.web.form.UserForm;
/**
* <qz:notPrivilege />表示无权限处理器类
*/
public class NotPrivilegeTag extends TagSupport
{
private String beanName="login";
private String scope="session";
private String operation="none";
public void setBeanName(String beanName)
{
this.beanName = beanName;
}
public void setScope(String scope)
{
this.scope = scope;
}
public void setOperation(String operation)
{
this.operation = operation;
}
public int doStartTag(){
UserForm init_bean=null;
if (scope == null || scope.equals(""))
return SKIP_BODY;
else
{
if (scope.trim().equals("session"))
{
HttpSession session = pageContext.getSession();
init_bean = (UserForm)session.getAttribute(beanName);
if (init_bean == null)
return SKIP_BODY;
}
else{
if (scope.trim().equals("request"))
{
HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
init_bean = (UserForm)request.getAttribute(beanName);
if (init_bean == null)
return SKIP_BODY;
}
}
}
HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
String resource_path = request.getServletPath();//得到本页资源url
List<Roleright> roleRights=init_bean.getUser().getRole().getRolerights();
for (Roleright roleright : roleRights)
{
if(roleright.getRight().getRightUrl().trim().equals(resource_path.trim())){
if (operation.trim().equals("NONE"))//没有权限
if(!roleright.getAddVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("QUERY"))//如果需要判定是否具有查询
if (!roleright.getFindVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("ADD"))//增加权限
if (!roleright.getAddVal())return EVAL_BODY_AGAIN;
if (operation.equals("DELETE"))//删除权限
if (!roleright.getDelVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("UPDATE"))//修改权限
if (!roleright.getEditVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("PRINT"))//打印权限
if (!roleright.getPrintVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("DISTRIBUTE"))//分配权限
if (!roleright.getDisVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("COMFIRM"))//批准权限
if (!roleright.getCfmVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("SPECIALTY"))//特别权限
if (!roleright.getSpecVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("ADMIN"))//管理员权限
if (!roleright.getAdminVal())return EVAL_BODY_AGAIN;
if (operation.trim().equals("DOWNLOAD"))//下载权限
if (!roleright.getDownLoadVal())return EVAL_BODY_AGAIN;
break;
}
}
return SKIP_BODY;
}
}
标签设计:
qizhi.tld:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd" >
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>1.2</jsp-version>
<short-name>qz</short-name>
<uri>http://www.qizhi.com/qizhi/tags-qz</uri>
<tag>
<name>privilege</name>
<tag-class>com.qizhi.tags.bean.PrivilegeTag</tag-class>
<body-content>jsp</body-content>
<description>
有权限标签
<br>功能:
<br>如果取InitBean这个javabean中的属性字段userid为当前用户,该
用户在本页url(本页url是一个资源),如果有UPDATE权限,那就执行标签内body
部分的链接代码
</description>
<attribute>
<name>beanName</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>String</type>
<description>
集合键名称,如:
<br/>request.getAttribute("beanName")
</description>
</attribute>
<attribute>
<name>scope</name>
<rtexprvalue>true</rtexprvalue>
<type>String</type>
<description>查找的范围Requet或Session默认为Session</description>
</attribute>
<attribute>
<name>operation</name>
<rtexprvalue>true</rtexprvalue>
<type>String</type>
<description>
权限值,如下:
<br/>ALL:所有权限
<br/>ADD:增加权限
<br/>DELETE:删除权限
<br/>UPDATE:修改权限
<br/>QUERY:查询权限
<br/>PRINT:打印权限
<br/>DISTRIBUTE:分配权限
<br/>COMFIRM:批准权限
<br/>SPECIALTY:特别权限
<br/>ADMIN:管理员权限
<br/>DOWNLOAD:下载权限
</description>
</attribute>
<example ></example>
</tag>
<tag>
<name>notPrivilege</name>
<tag-class>com.qizhi.tags.bean.NotPrivilegeTag</tag-class>
<body-content>jsp</body-content>
<description>
无权限标签
<br>功能:
<br>如果取InitBean这个javabean中的属性字段userid为当前用户,该
用户在本页url(本页url是一个资源),如果无UPDATE权限,那就执行标签内body
部分的链接代码
</description>
<attribute>
<name>beanName</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>String</type>
<description>
集合键名称,如:
<br/>request.getAttribute("beanName")
</description>
</attribute>
<attribute>
<name>scope</name>
<rtexprvalue>true</rtexprvalue>
<type>String</type>
<description>查找的范围Requet或Session默认为Session</description>
</attribute>
<attribute>
<name>operation</name>
<rtexprvalue>true</rtexprvalue>
<type>String</type>
<description>
没有权限值,如下:
<br/>NONE:没有权限
<br/>ADD:没有增加权限
<br/>DELETE:没有删除权限
<br/>UPDATE:没有修改权限
<br/>QUERY:没有查询权限
<br/>PRINT:没有打印权限
<br/>DISTRIBUTE:没有分配权限
<br/>COMFIRM:没有批准权限
<br/>SPECIALTY:没有特别权限
<br/>ADMIN:没有管理员权限
<br/>DOWNLOAD:没有下载权限
</description>
</attribute>
<example ></example>
</tag>
</taglib>
标签引用在web.xml中配置:
<taglib>
<taglib-uri>http://www.qizhi.com/qizhi/tags-qz</taglib-uri>
<taglib-location>/WEB-INF/qizhi.tld</taglib-location>
</taglib>
全部代码结束,以上全部只是权限管理的主要代码,参考使用。
相关文章推荐
- 关于用Java程序实现8421码权限管理 -第二部分
- 关于用Java程序实现8421码权限管理 -第三部分
- 深入理解Java的Annotation系列-第四部分 注解的应用-使用注解实现权限管理
- zookeeper集群之java程序同步方式实现对数据节点的增,删,改,查及其权限管理(二)
- zookeeper集群之java程序异步方式实现对数据节点的增,删,改,查及其权限管理(三)
- javaweb+SSH实现简单的权限管理系统
- java-爬虫部分:关于京东模拟登陆的两种实现
- JAVA实现用户的权限管理
- 有简易通用权限管理后台的快速C# ASP.NET开发的例子应用程序卖给了曾长期开发JAVA银行程序的大哥
- 有简易通用权限管理后台的快速C# ASP.NET开发的例子应用程序卖给了曾长期开发JAVA银行程序的大哥
- 关于“如何检测节点网络中是否存在闭环之java实现”的程序bug修复
- 手把手教你实现Java权限管理系统 后端篇(十三):系统备份还原
- 操作系统关于澡堂管理的java实现
- 关于java实现的mapreduce程序打包后通过脚本运行出现classnotfound异常
- SSM整合SpringSecurity实现权限管理实例 javaconfig配置方式
- javaweb+SSH实现简单的权限管理系统
- 关于基于java的用户角色权限系统的前后台实现构想
- 简单Java图书管理程序(只实现了界面的显示)
- 标准功能模块组件 -- 名片管理组件,C/S 版本的标准用例程序,可以参考权限实现方法
- 关于java程序实现自动选人系统 使用I/O流完成