http请求绕过Filter的实现实例
http请求绕过Filter的实现实例
场景:两个web服务器,A当做服务端,B为客户端,B通过Hessian远程访问A。A上加了session过期filter,通过用户信息检查session是否过期。这种情况下,Hessian会先发给filter,filter读不到用户信息就会认为过期了,引起错误。
解决方案:让hessian请求绕过session过期filter。
filter配置中,不能加exclusion,所以需要用初始化参数给出不过滤的请求。本例中不过滤的格式为>/SarService。
<!--session过期filter --> <filter> <init-param> <param-name>exclusions</param-name> <param-value>/SarService</param-value> </init-param> <filter-name>loginFilter</filter-name> <filter-class>org.sigsit.vinca.sar.filter.LoginFilter </filter-class> </filter> <filter-mapping> <filter-name>loginFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
Filter类中,在init中读取exclusions,并在doFilter中判断。如下:
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // 由于 session 属于 HTTP 范畴,故需要向下转型成 HttpServletRequest 类型 HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res=(HttpServletResponse)response; HttpSession session = req.getSession(); // 取得 session String username = (String) session.getAttribute("username"); StringBuffer fileURL = req.getRequestURL(); if(fileURL.indexOf(this.exclusions)!=-1){ chain.doFilter(request, response); } else{ //原来的处理代码 } } public void init(FilterConfig config) throws ServletException { // TODO Auto-generated method stub this.exclusions=config.getInitParameter("exclusions"); }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
javascipt:filter过滤介绍及使用
javascipt : filter 过滤 var List = sizes.filter(function (size) { return size.id == 12; }); sizes = [ {id : 10,,stock:130},{id : 11,stock:120},{id : 12,stock:100} ] filter是new一个新的array,然后给他过滤后的对象,最后var list 起来
-
Java中FilterInputStream和FilterOutputStream的用法详解
FilterInputStream FilterInputStream 的作用是用来"封装其它的输入流,并为它们提供额外的功能".它的常用的子类有BufferedInputStream和DataInputStream. BufferedInputStream的作用就是为"输入流提供缓冲功能,以及mark()和reset()功能". DataInputStream 是用来装饰其它输入流,它"允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类
-
java中使用Filter控制用户登录权限具体实例
学jsp这么长时间,做的项目也有七八个了,可所有的项目都是用户登录就直接跳转到其拥有权限的页面,或者显示可访问页面的链接.使用这种方式来幼稚地控制访问权限.从来没有想过如果我没有登录,直接输入地址也可以直接访问用户的页面的. 在jsp中权限的控制是通过Filter过滤器来实现的,所有的开发框架中都集成有Filter,如果不适用开发框架则有如下实现方法: LoginFilter.java 复制代码 代码如下: public class LoginFilter implements Filter {
-
JavaEE Filter敏感词过滤的方法实例详解
我们在聊天的时候的或者留言的时候,有部分词是不允许发表出来.我们可以采用过滤器实现这个功能. 我们只是简单利用过滤器实现这个过滤的功能,有些地方没写的很全 前台代码: <body> <form action="<c:url value='/WordServlet'/>" method="post"> 姓名:<input type="text" name="name"/><b
-
javaweb中Filter(过滤器)的常见应用
一.统一全站字符编码 通过配置参数charset指明使用何种字符编码,以处理Html Form请求参数的中文问题 package me.gacl.web.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException;
-
Java 的 FileFilter文件过滤与readline读行操作实例代码
复制代码 代码如下: package com.cjonline.foundation.evisa; import java.io.BufferedReader;import java.io.File;import java.io.FileFilter;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.math.BigDecimal; publ
-
java中Filter过滤器处理中文乱码的方法
注意问题:在学习用selvert的过滤器filter处理中文乱码时,在filter配置初始化时用了utf-8处理中文乱码,而在提交的jsp页面中却用了gbk.虽然两种都可以出来中文乱码,但是却造成了处理乱码的格式不一致.所以编译出错. 解决方法:所有地方都用utf-8或gbk 复制代码 代码如下: //过滤器类CharactorFilter.jsppackage cn.com.Filter; import java.io.IOException; import javax.servlet.Fil
-
java 过滤器filter防sql注入的实现代码
实例如下: XSSFilter.java public void doFilter(ServletRequest servletrequest, ServletResponse servletresponse, FilterChain filterchain) throws IOException, ServletException { //flag = true 只做URL验证; flag = false 做所有字段的验证; boolean flag = true; if(flag){ //只
-
http请求绕过Filter的实现实例
http请求绕过Filter的实现实例 场景:两个web服务器,A当做服务端,B为客户端,B通过Hessian远程访问A.A上加了session过期filter,通过用户信息检查session是否过期.这种情况下,Hessian会先发给filter,filter读不到用户信息就会认为过期了,引起错误. 解决方案:让hessian请求绕过session过期filter. filter配置中,不能加exclusion,所以需要用初始化参数给出不过滤的请求.本例中不过滤的格式为>/SarService
-
使用FormData进行Ajax请求上传文件的实例代码
Servlet3.0开始提供了一系列的注解来配置Servlet.Filter.Listener等等.这种方式可以极大的简化在开发中大量的xml的配置.从这个版本开始,web.xml可以不再需要,使用相关的注解同样可以完成相应的配置. a.选中上传 b:后台显示 c:上传的文件夹 html代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">
-
AngularJS中filter的使用实例详解
AngularJS中filter的使用实例详解 一.格式化数字为货币格式. <div>{{money|currency:"$"}}</div> <div>{{money|currency:"RMB"}}</div> script: app.controller("crl", function($scope, $filter) { $scope.money="4545"; });
-
Java 发送http请求上传文件功能实例
废话不多说了,直接给大家贴代码了,具体代码如下所示: package wxapi.WxHelper; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputSt
-
利用ES6的Promise.all实现至少请求多长时间的实例
1.背景 我们都知道ajax请求可以加个timeout,就是最多请求多少时间,如果超过这个时间直接就报错. 这个是最多请求多长时间,我现在要做的是,最少要请求多长时间,然后才能执行后续的逻辑. 比如,一个ajax请求 x 毫秒就执行完毕了,但我要让他至少执行1秒钟,那我们会这么想: ajax完成后 , 1. 如果x<1s, 那我们先setTimeout => 1s - x ,然后执行后续操作. 2 如果x>=1s, 那我们直接执行后续操作. 想想这可繁琐了,我们还要在前面记录一下开始时间
-
java 请求跨域问题解决方法实例详解
java 请求跨域问题解决方法实例详解 新建Util类,在Util中添加下面方法: /* * response请求跨域公共设置 */ public static HttpServletResponse SetHttpServletResponse( HttpServletResponse response) { response.setHeader("Access-Control-Allow-Origin", "*"); response.setHeader(&qu
-
微信小程序request请求后台接口php的实例详解
微信小程序request请求后台接口php的实例详解 后台php接口:http://www.vueyun.com/good/info 没有处理数据,直接返回了,具体再根据返回格式处理 public function getGoodInfo(Request $request) { $goods_datas = $this->Resource->get(); return response()->json(['status' => 'success','code' => 200,
-
详解HTTP请求与响应基础及实例
详解HTTP请求与响应基础及实例 一.HTTP的请求与响应 二.HttpServletRequest和HttpServletResponse对象获取HTTP响应和请求 一.HTTP的请求与响应 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传输协议.是客户端和服务器端之间数据传输的格式规范. 通常,由HTTP客户端发起一个请求,服务端一旦收到请求,向客户端返回一个相应(一个请求的发出,有且只有一个响应). (一)
-
java发送HttpClient请求及接收请求结果过程的简单实例
一. 1.写一个HttpRequestUtils工具类,包括post请求和get请求 package com.brainlong.framework.util.httpclient; import net.sf.json.JSONObject; import org.apache.commons.httpclient.HttpStatus; import org.apache.http.HttpResponse; import org.apache.http.client.methods.Htt
-
Python发送http请求解析返回json的实例
python发起http请求,并解析返回的json字符串的小demo,方便以后用到. #! /usr/bin/env python # -*- coding:gbk -*- import os import sys import json import urllib import urllib2 if __name__ == "__main__": query_file = sys.argv[1] query_index = 0 with open(query_file, 'r') a
随机推荐
- 用javascript代替marquee的滚动字幕效果代码
- 提供一个可以将DocX转为doc的文档转换器 地址
- IOS 获取网络图片大小实例详解
- Oracle 中 table 函数的应用浅析
- asp.net(c#)获取内容第一张图片地址的函数
- 在一个网站下再以虚拟目录的方式挂多个网站的方法
- asp.net 自制的单选、多选列表实现代码
- ubuntu下搭建php开发环境(nginx+(cgi)php5fpm+memcached+xdebug)
- Windows的钩子机制详解
- java学生信息管理系统设计
- html读出文本文件内容
- javascript innerHTML、outerHTML、innerText、outerText的区别
- SQL Server中统计每个表行数的快速方法
- jQuery功能函数详解
- 关于jQuery判断元素是否存在的问题示例探讨
- php 服务器调试 Zend Debugger 的安装教程
- Linux环境下使用GFS文件系统
- Android中Serializable和Parcelable序列化对象详解
- Android实现手势滑动多点触摸放大缩小图片效果
- PHP生成可点击刷新的验证码简单示例