axis2服务端IP地址校验一般有两个方式:
一种是继承org.apache.axis2.transport.http.AxisServlet类,在子类中重写createMessageContext方法。
第二种使用org.apache.axis2.context.MessageContext类
通过如下代码片段,可知道MessageContext实例保存在ThreadLocal中
/**
* A place to store the current MessageContext
*/
public static ThreadLocal<MessageContext> currentMessageContext = new ThreadLocal<MessageContext>();
public static MessageContext getCurrentMessageContext() {
return (MessageContext) currentMessageContext.get();
}
public static void destroyCurrentMessageContext() {
currentMessageContext.remove();
}
public static void setCurrentMessageContext(MessageContext ctx) {
currentMessageContext.set(ctx);
}
所以直接在代码获取当前请求的上下文环境,在上下文环境中,得到请求的相关信息。
MessageContext messageContext = MessageContext.getCurrentMessageContext();
String ip = (String) messageContext.getProperty("REMOTE_ADDR");

本文介绍在Axis2服务端进行IP地址校验的两种方法:一是通过继承AxisServlet类并重写createMessageContext方法;二是利用MessageContext类获取当前请求的上下文环境,从中读取客户端IP地址。
411

被折叠的 条评论
为什么被折叠?



