This is an automated email from the ASF dual-hosted git repository.
harikrishna pushed a commit to branch 4.20
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.20 by this push:
new dd1c32cd262 undo removal of accessLogger and deal with some warnings
(#10567)
dd1c32cd262 is described below
commit dd1c32cd262ff4f69f1287ae626efb29612822fd
Author: dahn <[email protected]>
AuthorDate: Mon Apr 14 10:17:56 2025 +0200
undo removal of accessLogger and deal with some warnings (#10567)
* undo removval of accessLogger and deal with some warnings
* Apply suggestions from code review
* add accesslog to servlet
---
server/src/main/java/com/cloud/api/ApiServer.java | 135 ++++++++++-----------
server/src/main/java/com/cloud/api/ApiServlet.java | 7 +-
2 files changed, 65 insertions(+), 77 deletions(-)
diff --git a/server/src/main/java/com/cloud/api/ApiServer.java
b/server/src/main/java/com/cloud/api/ApiServer.java
index 7623351cca5..de875f67944 100644
--- a/server/src/main/java/com/cloud/api/ApiServer.java
+++ b/server/src/main/java/com/cloud/api/ApiServer.java
@@ -193,6 +193,7 @@ import static
org.apache.cloudstack.user.UserPasswordResetManager.UserPasswordRe
@Component
public class ApiServer extends ManagerBase implements HttpRequestHandler,
ApiServerService, Configurable {
+ private static final Logger ACCESSLOGGER =
LogManager.getLogger("apiserver." + ApiServer.class.getName());
private static final String SANITIZATION_REGEX = "[\n\r]";
@@ -235,9 +236,9 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
private EventDistributor eventDistributor = null;
private static int s_workerCount = 0;
- private static Map<String, List<Class<?>>> s_apiNameCmdClassMap = new
HashMap<String, List<Class<?>>>();
+ private static Map<String, List<Class<?>>> s_apiNameCmdClassMap = new
HashMap<>();
- private static ExecutorService s_executor = new ThreadPoolExecutor(10,
150, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), new
NamedThreadFactory(
+ private static ExecutorService s_executor = new ThreadPoolExecutor(10,
150, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<>(), new NamedThreadFactory(
"ApiServer"));
@Inject
@@ -353,7 +354,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
String jobEvent = eventInfo.second();
if (logger.isTraceEnabled())
- logger.trace("Handle asyjob publish event " + jobEvent);
+ logger.trace("Handle asyjob publish event {}", jobEvent);
if (eventDistributor == null) {
setEventDistributor(ComponentContext.getComponent(EventDistributor.class));
}
@@ -378,7 +379,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
cmdEventType = eventTypeObj;
if (logger.isDebugEnabled())
- logger.debug("Retrieved cmdEventType from job info: " +
cmdEventType);
+ logger.debug("Retrieved cmdEventType from job info: {}",
cmdEventType);
} else {
if (logger.isDebugEnabled())
logger.debug("Unable to locate cmdEventType marker in job
info. publish as unknown event");
@@ -422,11 +423,11 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
protected void setupIntegrationPortListener(Integer apiPort) {
if (apiPort == null || apiPort <= 0) {
- logger.trace(String.format("Skipping setting up listener for
integration port as %s is set to %d",
- IntegrationAPIPort.key(), apiPort));
+ logger.trace("Skipping setting up listener for integration port as
{} is set to {}",
+ IntegrationAPIPort.key(), apiPort);
return;
}
- logger.debug(String.format("Setting up integration API service
listener on port: %d", apiPort));
+ logger.debug("Setting up integration API service listener on port:
{}", apiPort);
final ListenerThread listenerThread = new ListenerThread(this,
apiPort);
listenerThread.start();
}
@@ -437,24 +438,24 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
Integer apiPort = IntegrationAPIPort.value(); // api port, null by
default
final Long snapshotLimit = ConcurrentSnapshotsThresholdPerHost.value();
- if (snapshotLimit == null || snapshotLimit.longValue() <= 0) {
+ if (snapshotLimit == null || snapshotLimit <= 0) {
logger.debug("Global concurrent snapshot config parameter " +
ConcurrentSnapshotsThresholdPerHost.value() + " is less or equal 0; defaulting
to unlimited");
} else {
dispatcher.setCreateSnapshotQueueSizeLimit(snapshotLimit);
}
final Long migrationLimit =
VolumeApiService.ConcurrentMigrationsThresholdPerDatastore.value();
- if (migrationLimit == null || migrationLimit.longValue() <= 0) {
+ if (migrationLimit == null || migrationLimit <= 0) {
logger.debug("Global concurrent migration config parameter " +
VolumeApiService.ConcurrentMigrationsThresholdPerDatastore.value() + " is less
or equal 0; defaulting to unlimited");
} else {
dispatcher.setMigrateQueueSizeLimit(migrationLimit);
}
- final Set<Class<?>> cmdClasses = new HashSet<Class<?>>();
+ final Set<Class<?>> cmdClasses = new HashSet<>();
for (final PluggableService pluggableService : pluggableServices) {
cmdClasses.addAll(pluggableService.getCommands());
if (logger.isDebugEnabled()) {
- logger.debug("Discovered plugin " +
pluggableService.getClass().getSimpleName());
+ logger.debug("Discovered plugin {}",
pluggableService.getClass().getSimpleName());
}
}
@@ -467,7 +468,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
String apiName = at.name();
List<Class<?>> apiCmdList = s_apiNameCmdClassMap.get(apiName);
if (apiCmdList == null) {
- apiCmdList = new ArrayList<Class<?>>();
+ apiCmdList = new ArrayList<>();
s_apiNameCmdClassMap.put(apiName, apiCmdList);
}
apiCmdList.add(cmdClass);
@@ -570,14 +571,14 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
throw e;
}
} finally {
- logger.info(sb.toString());
+ ACCESSLOGGER.info(sb.toString());
CallContext.unregister();
}
}
@SuppressWarnings({"unchecked", "rawtypes"})
public void checkCharacterInkParams(final Map params) {
- final Map<String, String> stringMap = new HashMap<String, String>();
+ final Map<String, String> stringMap = new HashMap<>();
final Set keys = params.keySet();
final Iterator keysIter = keys.iterator();
while (keysIter.hasNext()) {
@@ -600,7 +601,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
public String handleRequest(final Map params, final String responseType,
final StringBuilder auditTrailSb) throws ServerApiException {
checkCharacterInkParams(params);
- String response = null;
+ String response;
String[] command = null;
try {
@@ -621,7 +622,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
if (authManager.getAPIAuthenticator(command[0]) != null) {
return null;
}
- final Map<String, String> paramMap = new HashMap<String,
String>();
+ final Map<String, String> paramMap = new HashMap<>();
final Set keys = params.keySet();
final Iterator keysIter = keys.iterator();
while (keysIter.hasNext()) {
@@ -637,16 +638,16 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
if (cmdClass != null) {
APICommand annotation =
cmdClass.getAnnotation(APICommand.class);
if (annotation == null) {
- logger.error("No APICommand annotation found for class
" + cmdClass.getCanonicalName());
+ logger.error("No APICommand annotation found for class
{}", cmdClass.getCanonicalName());
throw new CloudRuntimeException("No APICommand
annotation found for class " + cmdClass.getCanonicalName());
}
- BaseCmd cmdObj = (BaseCmd)cmdClass.newInstance();
+ BaseCmd cmdObj =
(BaseCmd)cmdClass.getDeclaredConstructor().newInstance();
cmdObj = ComponentContext.inject(cmdObj);
cmdObj.configure();
cmdObj.setFullUrlParams(paramMap);
cmdObj.setResponseType(responseType);
-
cmdObj.setHttpMethod(paramMap.get(ApiConstants.HTTPMETHOD).toString());
+
cmdObj.setHttpMethod(paramMap.get(ApiConstants.HTTPMETHOD));
// This is where the command is either serialized, or
directly dispatched
StringBuilder log = new StringBuilder();
@@ -655,14 +656,11 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
} else {
final String errorString = "Unknown API command: " +
command[0];
logger.warn(errorString);
- auditTrailSb.append(" " + errorString);
+ auditTrailSb.append(" ").append(errorString);
throw new
ServerApiException(ApiErrorCode.UNSUPPORTED_ACTION_ERROR, errorString);
}
}
- } catch (final InvalidParameterValueException ex) {
- logger.info(ex.getMessage());
- throw new ServerApiException(ApiErrorCode.PARAM_ERROR,
ex.getMessage(), ex);
- } catch (final IllegalArgumentException ex) {
+ } catch (final InvalidParameterValueException |
IllegalArgumentException ex) {
logger.info(ex.getMessage());
throw new ServerApiException(ApiErrorCode.PARAM_ERROR,
ex.getMessage(), ex);
} catch (final PermissionDeniedException ex) {
@@ -675,9 +673,9 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
buf.append(obj.getUuid());
buf.append(" ");
}
- logger.info("PermissionDenied: " + ex.getMessage() + " on
objs: [" + buf.toString() + "]");
+ logger.info("PermissionDenied: " + ex.getMessage() + " on
objs: [" + buf + "]");
} else {
- logger.info("PermissionDenied: " + ex.getMessage());
+ logger.info("PermissionDenied: {}", ex.getMessage());
}
throw new ServerApiException(ApiErrorCode.ACCOUNT_ERROR,
ex.getMessage(), ex);
} catch (final AccountLimitException ex) {
@@ -747,7 +745,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
// BaseAsyncCmd: cmd is processed and submitted as an AsyncJob, job
related info is serialized and returned.
if (cmdObj instanceof BaseAsyncCmd) {
Long objectId = null;
- String objectUuid = null;
+ String objectUuid;
if (cmdObj instanceof BaseAsyncCreateCmd) {
final BaseAsyncCreateCmd createCmd =
(BaseAsyncCreateCmd)cmdObj;
dispatcher.dispatchCreateCmd(createCmd, params);
@@ -788,7 +786,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
}
params.put("ctxStartEventId", String.valueOf(startEventId));
- params.put("cmdEventType", asyncCmd.getEventType().toString());
+ params.put("cmdEventType", asyncCmd.getEventType());
params.put("ctxDetails",
ApiGsonHelper.getBuilder().create().toJson(ctx.getContextParameters()));
if (asyncCmd.getHttpMethod() != null) {
params.put(ApiConstants.HTTPMETHOD,
asyncCmd.getHttpMethod().toString());
@@ -851,9 +849,9 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
@SuppressWarnings("unchecked")
private void buildAsyncListResponse(final BaseListCmd command, final
Account account) {
- final List<ResponseObject> responses =
((ListResponse)command.getResponseObject()).getResponses();
- if (responses != null && responses.size() > 0) {
- List<? extends AsyncJob> jobs = null;
+ final List<ResponseObject> responses =
((ListResponse<ResponseObject>)command.getResponseObject()).getResponses();
+ if (responses != null && !responses.isEmpty()) {
+ List<? extends AsyncJob> jobs;
// list all jobs for ROOT admin
if (accountMgr.isRootAdmin(account.getId())) {
@@ -862,11 +860,11 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
jobs =
asyncMgr.findInstancePendingAsyncJobs(command.getApiResourceType().toString(),
account.getId());
}
- if (jobs.size() == 0) {
+ if (jobs.isEmpty()) {
return;
}
- final Map<String, AsyncJob> objectJobMap = new HashMap<String,
AsyncJob>();
+ final Map<String, AsyncJob> objectJobMap = new HashMap<>();
for (final AsyncJob job : jobs) {
if (job.getInstanceId() == null) {
continue;
@@ -903,7 +901,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
if (Boolean.TRUE.equals(apiKeyAccessEnabled)) {
return true;
} else {
- logger.info("Api-Key access is disabled for the User " +
user.toString());
+ logger.info("Api-Key access is disabled for the User {}",
user);
return false;
}
}
@@ -912,7 +910,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
if (Boolean.TRUE.equals(apiKeyAccessEnabled)) {
return true;
} else {
- logger.info("Api-Key access is disabled for the Account " +
account.toString());
+ logger.info("Api-Key access is disabled for the Account {}",
account);
return false;
}
}
@@ -929,7 +927,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
public boolean verifyRequest(final Map<String, Object[]>
requestParameters, final Long userId, InetAddress remoteAddress) throws
ServerApiException {
try {
String apiKey = null;
- String secretKey = null;
+ String secretKey;
String signature = null;
String unsignedRequest = null;
@@ -957,11 +955,9 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
// - build a request string with sorted params, make sure it's all
lowercase
// - sign the request, verify the signature is the same
- final List<String> parameterNames = new ArrayList<String>();
- for (final Object paramNameObj : requestParameters.keySet()) {
- parameterNames.add((String)paramNameObj); // put the name in a
list that we'll sort later
- }
+ // put the name in a list that we'll sort later
+ final List<String> parameterNames = new
ArrayList<>(requestParameters.keySet());
Collections.sort(parameterNames);
@@ -997,7 +993,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
return false; // no signature, bad request
}
- Date expiresTS = null;
+ Date expiresTS;
// FIXME: Hard coded signature, why not have an enum
if ("3".equals(signatureVersion)) {
// New signature authentication. Check for expire parameter
and its validity
@@ -1017,18 +1013,18 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
if (expiresTS.before(now)) {
signature = signature.replaceAll(SANITIZATION_REGEX, "_");
apiKey = apiKey.replaceAll(SANITIZATION_REGEX, "_");
- logger.debug(String.format("Request expired -- ignoring
...sig [%s], apiKey [%s].", signature, apiKey));
+ logger.debug("Request expired -- ignoring ...sig [{}],
apiKey [{}].", signature, apiKey);
return false;
}
}
final TransactionLegacy txn =
TransactionLegacy.open(TransactionLegacy.CLOUD_DB);
txn.close();
- User user = null;
+ User user;
// verify there is a user with this api key
final Pair<User, Account> userAcctPair =
accountMgr.findUserByApiKey(apiKey);
if (userAcctPair == null) {
- logger.debug("apiKey does not map to a valid user -- ignoring
request, apiKey: " + apiKey);
+ logger.debug("apiKey does not map to a valid user -- ignoring
request, apiKey: {}", apiKey);
return false;
}
@@ -1069,7 +1065,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
if (!equalSig) {
signature = signature.replaceAll(SANITIZATION_REGEX, "_");
- logger.info(String.format("User signature [%s] is not equaled
to computed signature [%s].", signature, computedSignature));
+ logger.info("User signature [{}] is not equaled to computed
signature [{}].", signature, computedSignature);
} else {
CallContext.register(user, account);
}
@@ -1128,10 +1124,10 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
session.removeAttribute("domain_UUID");
}
- final Enumeration attrNames = session.getAttributeNames();
+ final Enumeration<String> attrNames = session.getAttributeNames();
if (attrNames != null) {
while (attrNames.hasMoreElements()) {
- final String attrName = (String) attrNames.nextElement();
+ final String attrName = attrNames.nextElement();
final Object attrObj = session.getAttribute(attrName);
if (ApiConstants.USERNAME.equalsIgnoreCase(attrName)) {
response.setUsername(attrObj.toString());
@@ -1202,7 +1198,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
final long longDate = date.getTime();
final float offsetInMs = (t.getOffset(longDate));
offsetInHrs = offsetInMs / (1000 * 60 * 60);
- logger.info("Timezone offset from UTC is: " + offsetInHrs);
+ logger.info("Timezone offset from UTC is: {}", offsetInHrs);
}
final Account account =
accountMgr.getAccount(userAcct.getAccountId());
@@ -1253,7 +1249,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
// (bug 5483) generate a session key that the user must submit on
every request to prevent CSRF, add that
// to the login response so that session-based authenticators know
to send the key back
final SecureRandom sesssionKeyRandom = new SecureRandom();
- final byte sessionKeyBytes[] = new byte[20];
+ final byte[] sessionKeyBytes = new byte[20];
sesssionKeyRandom.nextBytes(sessionKeyBytes);
final String sessionKey =
Base64.encodeBase64URLSafeString(sessionKeyBytes);
session.setAttribute(ApiConstants.SESSIONKEY, sessionKey);
@@ -1266,7 +1262,6 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
@Override
public void logoutUser(final long userId) {
accountMgr.logoutUser(userId);
- return;
}
@Override
@@ -1294,30 +1289,26 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
throw new CloudRuntimeException(errorMessage);
}
if (StringUtils.isBlank(userAccount.getEmail())) {
- logger.error(String.format(
- "Email is not set. username: %s account id: %d domain id:
%d",
- userAccount.getUsername(), userAccount.getAccountId(),
userAccount.getDomainId()));
+ logger.error("Email is not set. username: {} account id: {} domain
id: {}",
+ userAccount.getUsername(), userAccount.getAccountId(),
userAccount.getDomainId());
throw new CloudRuntimeException("Email is not set for the user.");
}
if (!EnumUtils.getEnumIgnoreCase(Account.State.class,
userAccount.getState()).equals(Account.State.ENABLED)) {
- logger.error(String.format(
- "User is not enabled. username: %s account id: %d domain
id: %s",
- userAccount.getUsername(), userAccount.getAccountId(),
domain.getUuid()));
+ logger.error("User is not enabled. username: {} account id: {}
domain id: {}",
+ userAccount.getUsername(), userAccount.getAccountId(),
domain.getUuid());
throw new CloudRuntimeException("User is not enabled.");
}
if (!EnumUtils.getEnumIgnoreCase(Account.State.class,
userAccount.getAccountState()).equals(Account.State.ENABLED)) {
- logger.error(String.format(
- "Account is not enabled. username: %s account id: %d
domain id: %s",
- userAccount.getUsername(), userAccount.getAccountId(),
domain.getUuid()));
+ logger.error("Account is not enabled. username: {} account id: {}
domain id: {}",
+ userAccount.getUsername(), userAccount.getAccountId(),
domain.getUuid());
throw new CloudRuntimeException("Account is not enabled.");
}
if (!domain.getState().equals(Domain.State.Active)) {
- logger.error(String.format(
- "Domain is not active. username: %s account id: %d domain
id: %s",
- userAccount.getUsername(), userAccount.getAccountId(),
domain.getUuid()));
+ logger.error("Domain is not active. username: {} account id: {}
domain id: {}",
+ userAccount.getUsername(), userAccount.getAccountId(),
domain.getUuid());
throw new CloudRuntimeException("Domain is not active.");
}
@@ -1425,7 +1416,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
// code to be very specific to our needs
static class ListenerThread extends Thread {
- private static Logger LOGGER =
LogManager.getLogger(ListenerThread.class);
+ private static final Logger LOGGER =
LogManager.getLogger(ListenerThread.class);
private HttpService _httpService = null;
private ServerSocket _serverSocket = null;
private HttpParams _params = null;
@@ -1464,7 +1455,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
@Override
public void run() {
- LOGGER.info("ApiServer listening on port " +
_serverSocket.getLocalPort());
+ LOGGER.info("ApiServer listening on port {}",
_serverSocket.getLocalPort());
while (!Thread.interrupted()) {
try {
// Set up HTTP connection
@@ -1507,10 +1498,10 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
}
} catch (final IOException ex) {
if (logger.isTraceEnabled()) {
- logger.trace("ApiServer: IOException - " + ex);
+ logger.trace("ApiServer: IOException - {}",
ex.toString());
}
} catch (final HttpException ex) {
- logger.warn("ApiServer: Unrecoverable HTTP protocol
violation" + ex);
+ logger.warn("ApiServer: Unrecoverable HTTP protocol violation
{}", ex.toString());
} finally {
try {
_conn.shutdown();
@@ -1523,7 +1514,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
@Override
public String getSerializedApiError(final int errorCode, final String
errorText, final Map<String, Object[]> apiCommandParams, final String
responseType) {
String responseName = null;
- Class<?> cmdClass = null;
+ Class<?> cmdClass;
String responseText = null;
try {
@@ -1536,7 +1527,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
final String cmdName = ((String[])cmdObj)[0];
cmdClass = getCmdClass(cmdName);
if (cmdClass != null) {
- responseName =
((BaseCmd)cmdClass.newInstance()).getCommandName();
+ responseName =
((BaseCmd)cmdClass.getDeclaredConstructor().newInstance()).getCommandName();
} else {
responseName = "errorresponse";
}
@@ -1558,7 +1549,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
@Override
public String getSerializedApiError(final ServerApiException ex, final
Map<String, Object[]> apiCommandParams, final String responseType) {
String responseName = null;
- Class<?> cmdClass = null;
+ Class<?> cmdClass;
String responseText = null;
if (ex == null) {
@@ -1576,7 +1567,7 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
final String cmdName = ((String[])cmdObj)[0];
cmdClass = getCmdClass(cmdName);
if (cmdClass != null) {
- responseName =
((BaseCmd)cmdClass.newInstance()).getCommandName();
+ responseName =
((BaseCmd)cmdClass.getDeclaredConstructor().newInstance()).getCommandName();
} else {
responseName = "errorresponse";
}
@@ -1588,8 +1579,8 @@ public class ApiServer extends ManagerBase implements
HttpRequestHandler, ApiSer
apiResponse.setResponseName(responseName);
final ArrayList<ExceptionProxyObject> idList = ex.getIdProxyList();
if (idList != null) {
- for (int i = 0; i < idList.size(); i++) {
- apiResponse.addProxyObject(idList.get(i));
+ for (ExceptionProxyObject exceptionProxyObject : idList) {
+ apiResponse.addProxyObject(exceptionProxyObject);
}
}
// Also copy over the cserror code and the function/layer in which
diff --git a/server/src/main/java/com/cloud/api/ApiServlet.java
b/server/src/main/java/com/cloud/api/ApiServlet.java
index e2ff411f8f4..4994c42bb4d 100644
--- a/server/src/main/java/com/cloud/api/ApiServlet.java
+++ b/server/src/main/java/com/cloud/api/ApiServlet.java
@@ -21,7 +21,6 @@ import java.net.InetAddress;
import java.net.URLDecoder;
import java.net.UnknownHostException;
import java.util.Arrays;
-import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -76,9 +75,7 @@ import com.cloud.utils.net.NetUtils;
@Component("apiServlet")
public class ApiServlet extends HttpServlet {
protected static Logger LOGGER = LogManager.getLogger(ApiServlet.class);
- private final static List<String> s_clientAddressHeaders = Collections
- .unmodifiableList(Arrays.asList("X-Forwarded-For",
- "HTTP_CLIENT_IP", "HTTP_X_FORWARDED_FOR", "Remote_Addr"));
+ private static final Logger ACCESSLOGGER =
LogManager.getLogger("apiserver." + ApiServlet.class.getName());
private static final String REPLACEMENT = "_";
private static final String LOGGER_REPLACEMENTS = "[\n\r\t]";
@@ -374,7 +371,7 @@ public class ApiServlet extends HttpServlet {
LOGGER.error("unknown exception writing api response", ex);
auditTrailSb.append(" unknown exception writing api response");
} finally {
- LOGGER.info(auditTrailSb.toString());
+ ACCESSLOGGER.info(auditTrailSb.toString());
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("===END=== " + reqStr);
}