millegalbodyencodingdetector.java

来自「httptunnel.jar httptunnel java 源码」· Java 代码 · 共 64 行

JAVA
64
字号
package net.jumperz.app.MGuardian.plugin;

import java.io.*;
import java.util.*;
import java.net.*;
import net.jumperz.net.*;
import net.jumperz.util.*;
import net.jumperz.app.MGuardian.*;


public class MIllegalBodyEncodingDetector
extends MGuardianPlugin
{
//--------------------------------------------------------------------------------
public Map execute( Map sessionInfo )
throws IOException
{
MHttpRequest request = ( MHttpRequest )sessionInfo.get( "request" );
if( !request.hasBody() )
	{
	return null;
	}

String contentType = request.getHeaderValue( "Content-Type" );
if( contentType == null
 || !contentType.equalsIgnoreCase( "application/x-www-form-urlencoded" )
  )
	{
	return null;
	}

Map pluginResult = new HashMap();

try
	{
	InputStream bodyInputStream = request.getBodyInputStream();
	ByteArrayOutputStream buffer = new ByteArrayOutputStream( bodyInputStream.available() );
	MStreamUtil.connectStream( bodyInputStream, buffer );
	String requestBodyStr = buffer.toString( MCharset.CS_ISO_8859_1 );

	if( MUnicodeUrlDecoder.isUrlDecoded( requestBodyStr ) )
		{
		MUnicodeUrlDecoder.decode( requestBodyStr );
		}
	else
		{
		URLDecoder.decode( requestBodyStr, MCharset.CS_ISO_8859_1 );
		}
	}
catch( UnsupportedEncodingException e )
	{
	// ignore :p
	}
catch( IllegalArgumentException e )
	{
	//e.printStackTrace();
	pluginResult.put( "message", e.getMessage() );
	pluginResult.put( "block", new Boolean( true ) );
	}

return pluginResult;
}
//--------------------------------------------------------------------------------
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?