分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

基于jsp自定义标签,实现用户鉴权

发布时间:2023-09-06 01:14责任编辑:赖小花关键词:jsjsp

共分为4大部分:

1、自定义标签PermissionTagHandler应用场景

2、PermissionTagHandler类的实现

3、配置PermissionTagHandler

4、使用PermissionTagHandler


1、自定义标签PermissionTagHandler应用场景

   用户列表userList.do需要,查看权限UserList

2、PermissionTagHandler类的实现

      

import com.cicc.admin.AdminConstant;import com.cicc.enums.Permission;import java.io.IOException;import java.util.Arrays;import java.util.Set;import java.util.List;import java.util.stream.Collectors;import javax.servlet.jsp.JspContext;import javax.servlet.jsp.JspException;import javax.servlet.jsp.PageContext;import javax.servlet.jsp.tagext.SimpleTagSupport;/** * * @author superxg */public class PermissionTagHandler extends SimpleTagSupport { ???private String permissions; ???@Override ???public void doTag() throws JspException, IOException { ???????Set<Permission> granted = getGrantedPermissions(); ???????if (permissions != null && granted != null) { ???????????List<Permission> permissionList = Arrays.asList(permissions.split(",")).stream().map(x -> Permission.valueOf(x)).collect(Collectors.toList()); ???????????if (permissionList.stream().anyMatch(x -> granted.contains(x))) { ???????????????getJspBody().invoke(null); ???????????} ???????} ???} ???public void setPermissions(String permissions) { ???????this.permissions = permissions; ???} ???/** ????* 获得当前登录员工的权限 ????* ????* @return ????*/ ???private Set<Permission> getGrantedPermissions() { ???????EmployeeBeanSession session = getSession(); ???????if (session != null) { ???????????return session.getPermissions(); ???????} else { ???????????return null; ???????} ???} ???/** ????* 获取当前Session ????* ????* @return ????*/ ???private EmployeeBeanSession getSession() { ???????JspContext context = getJspContext(); ???????Object session = context.getAttribute(AdminConstant.SESSION_KEY, PageContext.SESSION_SCOPE); ???????if (session != null && session instanceof EmployeeBeanSession) { ???????????return (EmployeeBeanSession) session; ???????} ???????return null; ???}}

  

3、配置PermissionTagHandler

    

<?xml version="1.0" encoding="UTF-8"?><taglib version="2.1" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"> ???<tlib-version>1.0</tlib-version> ???<short-name>gg</short-name> ???<uri>/WEB-INF/tld/platform</uri> ???<tag> ???????<name>permission</name> ???????<tag-class>com.cicc.admin.web.PermissionTagHandler</tag-class> ???????<body-content>scriptless</body-content> ???????<attribute> ???????????<name>permissions</name> ???????????<required>false</required> ???????????<type>java.lang.String</type> ???????</attribute> ???</tag></taglib>

  

4、使用PermissionTagHandler

<gg:permission permissions="USER_LIST"> ???????????????????????<li id="li_users_list" <c:if test="${modelType==‘userList‘}">class="active"</c:if> ?> ???????????????????????????????<a href="user/list.do"><span class="glyphicons glyphicons-group"></span> 用户列表 </a> ???????????????????????</li> </gg:permission>

基于jsp自定义标签,实现用户鉴权

原文地址:http://www.cnblogs.com/JosephWang/p/7596789.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved