DWR 过滤器验证权限

转载 2015年07月10日 14:42:17
实现方法:在dwr每个方法调用前拦截验证权限
1.实现拦截器(需dwr2.0以上版本)


package net.gkyh.util;
import java.lang.reflect.Method;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.directwebremoting.AjaxFilter;
import org.directwebremoting.AjaxFilterChain;
import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;


public class DWRFilter implements AjaxFilter{
public Object doFilter(Object object, Method method, Object[] arr,
  AjaxFilterChain chain) throws Exception {
//获取session
 WebContext ctx = WebContextFactory.get(); 
        HttpServletRequest request = ctx.getHttpServletRequest(); 
        HttpSession session = request.getSession();
        String flag =(String) session.getAttribute("flag");        
        if(null == flag){
             System.out.println("session验证失败");
            return "session_error";
        }
//拦截调用方法
        String methodName=method.getName();
         System.out.println("拦截目标方法:"+methodName);
       
       if(!CheckLimit(methodName)){
            System.out.println("权限验证失败");
           return "limit_error";
       }
Object obj=chain.doFilter(object, method, arr);
System.out.println("目标方法"+method.getName()+"执行结束");
return obj;
}
}
2.修改dwr.xml,添加红色部分
<?xml version="1.0" encoding="UTF-8"?>   
<!DOCTYPE dwr PUBLIC  "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"  "http://www.getahead.ltd.uk/dwr/dwr10.dtd">
<dwr>   
    <allow>              
        <create javascript="TermManager" creator="spring" scope="application">   
            <param name="beanName" value="TermManager"></param>  
        </create> 
        <filter class="net.gkyh.util.DWRFilter"></filter>
    </allow>   
</dwr>


3.调用TermManager中的方法时会先执行DWRFilter拦截器

dwr+spring security在方法权限判断失败后的一个问题

简单记录一下,debug了N久代码,还是尚未彻底搞明白这个问题,只是懵懵懂懂,servlet的代码进不去了,ss的代码倒是没发现什么情况,反而在cglib的代码中,看到不少非主流的情况。 现象: dw...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

DwrFilter

import java.lang.reflect.Method; import javax.servlet.http.HttpSession; import org.directwebremoting...

linux中JDK环境搭建

linux中gcj的卸载和jdk安装 1.查看jdk版本 [root@test ~]# java -version java version "1.4.2" gij (GNU libgcj) vers...
  • xh16319
  • xh16319
  • 2013年10月11日 21:24
  • 638

通过使用evercookie技术实现设备指纹

设备指纹是互联网中经常使用的一种技术,通过设备指纹技术,为每个设备确定一个唯一的设备ID。由于IP地址个数的限制,内网中往往使用NAT技术,将内网中的上万个IP映射成几个外网IP对外访问。这样内网用户...

Java SSH 权限验证过滤器实现

  • 2012年12月06日 16:52
  • 539B
  • 下载

Struts2 权限验证 ---拦截器和过滤器

之前的Struts2项目通过再Sitemesh的母版页中使用Struts的if标签进行了session判断,使得未登录的用户不能看到页面,但是这种现仅仅在view层进行,如果未登录用户直接在地址栏输入...

在.Net MVC结构API接口中判断http头信息实现公共的权限验证过滤器示例

//control   action public class TestController : ApiController { [MyAuthFilter] public string test...

基于Filter<过滤器>登录权限验证设计心得

捣鼓了一上午的一点点心得,贴出来大家分享下,见笑了。 上图为项目框架 (一).  PowerFilter.java代码部分: package filters; import j...

Web权限验证过滤器

完整版见https://jadyer.github.io/2013/09/30/springmvc-shiro/
  • jadyer
  • jadyer
  • 2012年11月22日 11:19
  • 1192
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DWR 过滤器验证权限
举报原因:
原因补充:

(最多只允许输入30个字)