All Downloads are FREE. Search and download functionalities are using the official Maven repository.

scouter.agent.plugin.WrRequest Maven / Gradle / Ivy

There is a newer version: 2.20.0
Show newest version
/*
 *  Copyright 2015 the original author or authors. 
 *  @https://github.com/scouter-project/scouter
 *
 *  Licensed under the Apache License, Version 2.0 (the "License"); 
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License. 
 */
package scouter.agent.plugin;
import java.util.Enumeration;
import java.util.Set;
import java.util.TreeSet;
import scouter.agent.Logger;
public class WrRequest extends Wrapper {
	private Object reqObject;
	private java.lang.reflect.Method getRequestURI;
	private java.lang.reflect.Method getRemoteAddr;
	private java.lang.reflect.Method getMethod;
	private java.lang.reflect.Method getParameterNames;
	private java.lang.reflect.Method getParameter;
	private java.lang.reflect.Method getHeaderNames;
	private java.lang.reflect.Method getHeader;
	private java.lang.reflect.Method getQueryString;
	private java.lang.reflect.Method getSession;
	private java.lang.reflect.Method getCookies;
	private java.lang.reflect.Method getName;
	private java.lang.reflect.Method getValue;
	private java.lang.reflect.Method getSessionAttribute;
	private java.lang.reflect.Method getAttribute;
	private boolean enabled = true;
	private Throwable _error = null;
	public WrRequest(Object req) {
		reqObject = req;
	}
	public String getCookie(String key) {
		if (enabled == false)
			return null;
		try {
			if (getCookies == null) {
				getCookies = this.reqObject.getClass().getMethod("getCookies", arg_c);
				getCookies.setAccessible(true);
			}
			Object[] c = (Object[]) getCookies.invoke(reqObject, arg_o);
			if (c == null && c.length == 0)
				return null;
			if (getName == null) {
				getName = c[0].getClass().getMethod("getName", arg_c);
				getName.setAccessible(true);
			}
			if (getValue == null) {
				getValue = c[0].getClass().getMethod("getValue", arg_c);
				getValue.setAccessible(true);
			}
			for (int i = 0; i < c.length; i++) {
				if (key.equals(getName.invoke(c[i], arg_o))) {
					return (String) getValue.invoke(c[i], arg_o);
				}
			}
		} catch (Throwable e) {
			enabled = false;
			_error = e;
		}
		return null;
	}
	public String getRequestURI() {
		if (enabled == false)
			return null;
		try {
			if (getRequestURI == null) {
				getRequestURI = this.reqObject.getClass().getMethod("getRequestURI", arg_c);
				getRequestURI.setAccessible(true);
			}
			return (String) getRequestURI.invoke(reqObject, arg_o);
		} catch (Throwable e) {
			enabled = false;
			_error = e;
			Logger.println("A164", e);
			return null;
		}
	}
	public String getRemoteAddr() {
		if (enabled == false)
			return null;
		try {
			if (getRemoteAddr == null) {
				getRemoteAddr = this.reqObject.getClass().getMethod("getRemoteAddr", arg_c);
				getRemoteAddr.setAccessible(true);
			}
			return (String) getRemoteAddr.invoke(reqObject, arg_o);
		} catch (Throwable e) {
			enabled = false;
			_error = e;
			Logger.println("A165", e);
			return null;
		}
	}
	public String getMethod() {
		if (enabled == false)
			return null;
		try {
			if (getMethod == null) {
				getMethod = this.reqObject.getClass().getMethod("getMethod", arg_c);
				getMethod.setAccessible(true);
			}
			return (String) getMethod.invoke(reqObject, arg_o);
		} catch (Throwable e) {
			enabled = false;
			_error = e;
			Logger.println("A166", e);
			return null;
		}
	}
	public String getQueryString() {
		if (enabled == false)
			return null;
		try {
			if (getQueryString == null) {
				getQueryString = this.reqObject.getClass().getMethod("getQueryString", arg_c);
				getQueryString.setAccessible(true);
			}
			return (String) getQueryString.invoke(reqObject, arg_o);
		} catch (Throwable e) {
			enabled = false;
			_error = e;
			Logger.println("A167", e);
			return null;
		}
	}
	public String getParameter(String key) {
		if (enabled == false)
			return null;
		try {
			if (getParameter == null) {
				getParameter = this.reqObject.getClass().getMethod("getParameter", arg_c_s);
				getParameter.setAccessible(true);
			}
			return (String) getParameter.invoke(reqObject, new Object[] { key });
		} catch (Throwable e) {
			enabled = false;
			_error = e;
			Logger.println("A168", e);
			return null;
		}
	}
	public Object getAttribute(String key) {
		if (enabled == false)
			return null;
		try {
			if (getAttribute == null) {
				getAttribute = this.reqObject.getClass().getMethod("getAttribute", arg_c_s);
				getAttribute.setAccessible(true);
			}
			return getAttribute.invoke(reqObject, new Object[] { key });
		} catch (Throwable e) {
			enabled = false;
			Logger.println("A908", e);
			return null;
		}
	}
	public String getHeader(String key) {
		if (enabled == false)
			return null;
		try {
			if (getHeader == null) {
				getHeader = this.reqObject.getClass().getMethod("getHeader", arg_c_s);
				getHeader.setAccessible(true);
			}
			return (String) getHeader.invoke(reqObject, new Object[] { key });
		} catch (Throwable e) {
			enabled = false;
			_error = e;
			Logger.println("A169", e);
			return null;
		}
	}
	public Enumeration getParameterNames() {
		if (enabled == false)
			return null;
		try {
			if (getParameterNames == null) {
				getParameterNames = this.reqObject.getClass().getMethod("getParameterNames", arg_c);
				getParameterNames.setAccessible(true);
			}
			return (Enumeration) getParameterNames.invoke(reqObject, arg_o);
		} catch (Throwable e) {
			enabled = false;
			_error = e;
			Logger.println("A170", e);
			return null;
		}
	}
	public Enumeration getHeaderNames() {
		if (enabled == false)
			return null;
		try {
			if (getHeaderNames == null) {
				getHeaderNames = this.reqObject.getClass().getMethod("getHeaderNames", arg_c);
				getHeaderNames.setAccessible(true);
			}
			return (Enumeration) getHeaderNames.invoke(reqObject, arg_o);
		} catch (Throwable e) {
			enabled = false;
			_error = e;
			return null;
		}
	}
	public WrSession getSession() {
		if (enabled == false)
			return null;
		try {
			if (getSession == null) {
				getSession = this.reqObject.getClass().getMethod("getSession", arg_c_z);
				getSession.setAccessible(true);
			}
			Object o = getSession.invoke(reqObject, new Object[] { false });
			return new WrSession(o);
		} catch (Throwable e) {
			enabled = false;
			_error = e;
			Logger.println("A171", e);
			return null;
		}
	}
	public Set getSessionNames() {
		if (enabled == false)
			return null;
		try {
			TreeSet names = new TreeSet();
			if (getSession == null) {
				getSession = this.reqObject.getClass().getMethod("getSession", arg_c_z);
				getSession.setAccessible(true);
			}
			Object o = getSession.invoke(reqObject, new Object[] { false });
			if (o == null)
				return names;
			Enumeration en = new WrSession(o).getAttributeNames();
			if (en != null) {
				while (en.hasMoreElements()) {
					names.add(en.nextElement());
				}
			}
			return names;
		} catch (Throwable e) {
			enabled = false;
			_error = e;
			Logger.println("A909", e);
			return null;
		}
	}
	public Object getSessionAttribute(String key) {
		if (enabled == false)
			return null;
		try {
			if (getSession == null) {
				getSession = this.reqObject.getClass().getMethod("getSession", arg_c_z);
				getSession.setAccessible(true);
			}
			Object o = getSession.invoke(reqObject, new Object[] { false });
			if (o == null)
				return null;
			if (getSessionAttribute == null) {
				getSessionAttribute = o.getClass().getMethod("getAttribute", arg_c_s);
				getSessionAttribute.setAccessible(true);
			}
			return getSessionAttribute.invoke(o, new Object[] { key });
		} catch (Throwable e) {
			enabled = false;
			_error = e;
			Logger.println("A172", e);
			return null;
		}
	}
	public Object inner() {
		return this.reqObject;
	}
	public boolean isOk() {
		return enabled;
	}
	public Throwable error() {
		return _error;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy