package com.newer.liu.system.comment;
import java.io.IOException;
import java.lang.reflect.Method;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.RequestProcessor;
import org.apache.struts.actions.DispatchAction;
import com.newer.liu.system.bean.OperatorBean;
import com.newer.liu.system.bean.PrivilegeBean;
import com.newer.liu.system.servce.OperatorServce;
import com.newer.liu.system.servce.PrivilegeServce;
import com.newer.liu.system.servce.impl.OperatorServceImpl;
import com.newer.liu.system.servce.impl.PrivilegeServceImpl;
import com.sun.swing.internal.plaf.metal.resources.metal;
/**
* 权限校验
*继承RequestProcessor
* @author liu
*
*/
public class ShyRequestProcessor extends RequestProcessor {
private PrivilegeServce dao = new PrivilegeServceImpl();
@Override
protected ActionForward processActionPerform(HttpServletRequest request,
HttpServletResponse response, Action action, ActionForm form,
ActionMapping mapping) throws IOException, ServletException {
// TODO Auto-generated method stub
System.out.println("-----------权限------------------");
if (isValiue(request, action, mapping)) {
return super.processActionPerform(request, response, action, form,
mapping);
} else {
return mapping.findForward("error");
}
}
//=========================================
// 调用方法
private boolean isValiue(HttpServletRequest request, Action action,
ActionMapping mapping) {
Method method = this.getMethod(request, action, mapping);
MyInterface my = this.getAnnotation(method);
if (my != null) {
//得到该用户的所有权限
Object str=request.getSession().getAttribute("name");
List<PrivilegeBean> list = dao.getAll(str.toString());
System.out.println(str+"============"+list);
PrivilegeBean p = new PrivilegeBean();
p.setModel(my.mode());
p.setPrivilegeName(my.limit());
p.setOperatorId(str.toString());
if (list.contains(p)) {
return true;
} else {
return false;
}
}
return true;
}
//--------------------------------
// method 根据反射到到方法的全部值
private Method getMethod(HttpServletRequest request, Action action,
ActionMapping mapping) {
Method method = null;
String methodName = "execute";
if (action instanceof DispatchAction) {
String parme = mapping.getParameter();
methodName = request.getParameter(parme);
}
Class[] cls = { ActionMapping.class, ActionForm.class,
HttpServletRequest.class, HttpServletResponse.class };
try {
method = action.getClass().getDeclaredMethod(methodName, cls);
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return method;
}
//注解
public MyInterface getAnnotation(Method name) {
MyInterface mf = null;
if (name.isAnnotationPresent(MyInterface.class)) {
mf = name.getAnnotation(MyInterface.class);
}
return mf;
}
分享到:
相关推荐
本文将详细介绍如何在Spring Boot中实现拦截器以进行权限校验和登录验证,通过一个简单的Demo来阐述整个过程。 首先,我们需要创建一个自定义的拦截器类。这个类通常会继承`HandlerInterceptorAdapter`,这是一个...
基于Dubbo Filter,每次请求时通过【调用方(用户令牌)+服务标识+被调接口+调用参数】访问权限管理微服务获取具体权限
本篇将详细介绍基于Java语言开发的权限管理系统的设计源码,旨在为读者提供一种实现权限校验与角色分配的方法和思路。 首先,我们明确系统的基本框架。本系统以Java语言作为开发核心,Java的跨平台特性和强大的对象...
为了保护文件系统中的资源安全,对文件进行权限校验是一种常见的需求。文件权限校验可以确保只有经过授权的用户才能访问或修改特定的文件。在ASP.NET Framework中,通过各种技术手段实现文件权限校验,可以有效地...
本篇文章将深入探讨如何使用AOP来实现权限校验的过程。 一、AOP概念理解 AOP的核心思想是切面,它将分散在多个对象中的横切关注点(如日志、安全检查等)封装起来,形成独立的模块,称为切面。切面可以包含两个主要...
Shiro是Apache组织提供的一款强大且易用的Java安全框架,它提供了身份认证、授权、会话管理和加密等功能,非常适合在Spring+Struts+Hibernate(SSH)这样的经典企业级开发框架中实现权限校验。 细粒度权限管理的...
在本文中,我们将深入探讨如何利用Netty 4.0实现文件分片上传、断点续传以及权限校验的功能。 **文件分片上传** 文件分片上传是为了处理大文件传输时,避免一次性加载整个文件到内存中,从而减少内存消耗和提高...
该框架的设计初衷是为开发者提供一个专注于权限校验和安全特性的解决方案,使其能够更加便捷地构建出具备精细权限控制的应用程序。 项目源码共有25个文件,其中22个为Java源文件,它们是构成该框架核心功能的主要...
在这种情况下,开发者可以编写自定义的权限校验函数或类,并在需要进行权限校验的地方调用它们。 Django通过其认证系统、RBAC以及Session中间件,提供了一套完整的工具集,使得开发者可以方便地实现复杂的权限校验...
在这个例子中,我们将关注如何使用`JAX-WS`的`Handler`机制进行调用权限校验。 `Handler`是`JAX-WS`中的一个重要组件,它允许我们在Web服务调用的生命周期中插入自定义逻辑。这包括在消息发送前、接收到消息后、...
本篇将深入探讨如何利用Spring Security进行角色权限校验,并动态地从数据库中查询用户是否具有访问特定接口的权限。 首先,我们需要理解Spring Security的基本架构。它主要包括四个主要组件:认证(Authentication...
特别是在Web应用中,用户登录认证与权限校验机制是保障系统安全的重要组成部分。本项目基于流行的Spring Security框架与JSON Web Tokens(JWT)技术,为开发者提供了一套完整的用户登录登出及权限校验解决方案。通过...
本项目是一个基于Spring Security鉴权机制实现的RBAC(基于角色的访问控制)权限校验的后台管理后端系统。RBAC是一种在应用程序中实现权限管理的有效方式,它将权限与角色关联,通过角色的分配来控制用户对资源的...
Spring AOP实现功能权限校验功能的示例代码 本篇文章主要介绍了Spring AOP实现功能权限校验功能的示例代码,通过使用拦截器和AOP技术来实现未登录时跳转到登录界面的功能,以及在service层方法中抛异常来实现权限...
在Spring Boot应用中,集成Apache Shiro或Spring Security可以实现用户认证和授权功能,而这里主要讨论的是如何结合Shiro和JPA(Java Persistence API)来构建一个安全的登录及权限校验系统。Shiro是一个轻量级的...
以下是如何进行权限校验的示例: ```java public class PermissionHelper { public static void requestLocationPermission(Activity activity, int requestCode) { if (ContextCompat.checkSelfPermission...
Qt多线程网络请求客户端服务器源码解析:并发处理,长连接默认设置,多种数据格式支持,个性化配色方案,可拓展权限校验,Qt网络请求客户端服务器源码:支持并发处理、多种数据格式与配色方案,灵活扩展的HTTP请求与...
在进行vue路由权限校验功能的实现时,我们通常需要根据用户的角色来控制页面的访问权限。在vue中,这通常是通过在路由配置中添加权限相关的元数据信息,并在路由跳转时进行相应的权限检查。本文会详细介绍如何实现这...
这对于实现登录认证和权限校验等场景非常有用,因为可以在拦截器中加入相关的逻辑来实现这些功能。 在AngularJS中,创建HTTP拦截器需要使用$httpProvider服务,这是一个提供者,负责配置$http服务的行为。拦截器...