Add save and restore to RequestContext
diff --git a/audit-service-war/src/main/java/org/apache/logging/log4j/audit/service/RequestContext.java b/audit-service-war/src/main/java/org/apache/logging/log4j/audit/service/RequestContext.java
index b883483..2e46b63 100644
--- a/audit-service-war/src/main/java/org/apache/logging/log4j/audit/service/RequestContext.java
+++ b/audit-service-war/src/main/java/org/apache/logging/log4j/audit/service/RequestContext.java
@@ -35,20 +35,28 @@
public final class RequestContext {
@ClientServer
public static final String REQUEST_ID = "requestId";
+ private String requestId;
@ClientServer
public static final String SESSION_ID = "sessionId";
+ private String sessionId;
@ClientServer
public static final String ACCOUNT_NUMBER = "accountNumber";
+ private Long accountNumber;
@ClientServer
public static final String IP_ADDRESS = "ipAddress";
+ private String ipAddress;
@ClientServer
public static final String USER_ID = "userId";
+ private String userId;
@ClientServer
public static final String LOGIN_ID = "loginId";
+ private String loginId;
@Local
public static final String CALLING_HOST = "callingHost";
+ private String callingHost;
public static final String HOST_NAME = "hostName";
+ private String hostName;
private static final String LOCAL_HOST_NAME = NetUtils.getLocalHostname();
/**
@@ -147,4 +155,35 @@
public static void setCallingHost(String hostName) {
ThreadContext.put(CALLING_HOST, hostName);
}
+
+ /**
+ * Save the RequestContext data.
+ * @return A copy of the RequestContext data.
+ */
+ public static RequestContext save() {
+ RequestContext context = new RequestContext();
+ context.accountNumber = getAccountNumber();
+ context.callingHost = getCallingHost();
+ context.hostName = getHostName();
+ context.ipAddress = getIpAddress();
+ context.loginId = getLoginId();
+ context.requestId = getRequestId();
+ context.sessionId = getSessionId();
+ context.userId = getUserId();
+ return context;
+ }
+
+ /**
+ * Populate the ThreadContext from a RequestContext object.
+ */
+ public void restore() {
+ setAccountNumber(this.accountNumber);
+ setCallingHost(this.callingHost);
+ setHostName(this.hostName);
+ setIpAddress(this.ipAddress);
+ setLoginId(this.loginId);
+ ThreadContext.put(REQUEST_ID, this.requestId);
+ setSessionId(this.sessionId);
+ setUserId(this.userId);
+ }
}