⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 manomalydetector.java

📁 httptunnel.jar httptunnel java 源码
💻 JAVA
字号:
package net.jumperz.app.MGuardian.plugin;

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

public class MAnomalyDetector
extends MGuardianPlugin
{
private static final String DEFAULT_DATABASE_DIR_NAME		= "./";
private static final String DEFAULT_JDBC_DRIVER_CLASS_NAME	= "net.jumperz.ext.org.hsqldb.jdbcDriver";
private static final String DEFAULT_DBMS_URL			= "jdbc:hsqldb:";
private static final String DEFAULT_DBMS_USER			= "sa";
private static final String DEFAULT_DBMS_PASS			= "";
private static final String DATABSE_PREFIX			= "access";
private static final String QUERY_1				= "select count(*) from system_tables where table_name = 'TACCESS'";
private static final String QUERY_2				= "create cached table tAccess(time  bigint,clientIp varchar( 15 ),clientPort int,guardianIp varchar( 15 ),guardianPort int,host  varchar( 256 ),protocol varchar( 5 ),method  varchar( 9 ),uri  varchar( 1024 ), statusCode int )";

private Connection connection;
private String jdbcDriverClassName;
private String dbmsUrl;
private String dbmsUser;
private String dbmsPass;
//--------------------------------------------------------------------------------
public void startup()
throws IOException
{
try
	{
	startup2();
	}
catch( Exception e )
	{
	throw new IOException( "plugin startup error. " + e.getMessage() );
	}
}
//--------------------------------------------------------------------------------
private void startup2()
throws Exception
{
String databaseDirName = control.getProperty( "anomalyDetector.databaseDirName", DEFAULT_DATABASE_DIR_NAME );
File databaseDir = new File( databaseDirName );
if( databaseDir.exists() )
	{
	if( !databaseDir.isDirectory() )
		{
		throw new IOException( "databaseDir exists" );
		}
	}
else
	{
	databaseDir.mkdir();
	}

jdbcDriverClassName		= control.getProperty( "anomalyDetector.jdbcDriverClassName", DEFAULT_JDBC_DRIVER_CLASS_NAME );
dbmsUrl				= control.getProperty( "anomalyDetector.dbmsUrl", DEFAULT_DBMS_URL );
dbmsUser			= control.getProperty( "anomalyDetector.dbmsUser", DEFAULT_DBMS_USER );
dbmsPass			= control.getProperty( "anomalyDetector.dbmsPass", DEFAULT_DBMS_PASS );
Class.forName( jdbcDriverClassName );
connection = DriverManager.getConnection( dbmsUrl + databaseDir.getCanonicalPath() + "/" + DATABSE_PREFIX, dbmsUser, dbmsPass );

	// table exists?
int count = MSqlUtil.getInt( connection, QUERY_1 );
if( count == 0 )
	{
		//create table
	MSqlUtil.executeQuery( connection, QUERY_2 );
	}
}
//--------------------------------------------------------------------------------
public Map execute( Map sessionInfo )
throws IOException
{
MHttpRequest request	= ( MHttpRequest )sessionInfo.get( "request" );
MHttpResponse response	= ( MHttpResponse )sessionInfo.get( "response" );
Socket clientSideSocket	= ( Socket )sessionInfo.get( "clientSideSocket" );

long currentTime	= System.currentTimeMillis();
String clientIp		= clientSideSocket.getInetAddress().getHostAddress();
int clientPort		= clientSideSocket.getPort();
String guardianIp	= clientSideSocket.getLocalAddress().getHostAddress();
int guardianPort	= clientSideSocket.getLocalPort(); 
String host		= "-";
if( request.headerExists( "Host" ) )
	{
	host = request.getHeaderValue( "Host" );
	}
String protocol		= ( String )sessionInfo.get( "protocol" );
String method		= request.getMethod();
String uri		= request.getUri();
int statusCode		= response.getStatusCode();

String queryString = 
"insert into tAccess values( ?,?,?,?,?,?,?,?,?,? )";
MObjectArray args = new MObjectArray();
args.add( currentTime );
args.add( clientIp );
args.add( clientPort );
args.add( guardianIp );
args.add( guardianPort );
args.add( host );
args.add( protocol );
args.add( method );
args.add( uri );
args.add( statusCode );
try
	{
	synchronized( connection )
		{
		MSqlUtil.executeUpdate2( connection, queryString, args );
		}
	}
catch( SQLException e )
	{
	throw new IOException( "plugin error. " + e.getMessage() );	
	}

return null;
}
//--------------------------------------------------------------------------------
public void shutdown()
{
try
	{
	connection.close();
	}
catch( SQLException e )
	{
	e.printStackTrace();
	}
}
//--------------------------------------------------------------------------------
}

⌨️ 快捷键说明

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