this.pipConfigProperties = pips;
}
}
- public static volatile BlockingQueue<PutRequest> queue = null;
+ protected static volatile BlockingQueue<PutRequest> queue = null;
// For notification Delay.
private static int notificationDelay = 0;
public static int getNotificationDelay(){
logger.info("Creating IntegrityMonitor");
im = IntegrityMonitor.getInstance(pdpResourceName, properties);
} catch (Exception e) {
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "Failed to create IntegrityMonitor");
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "Failed to create IntegrityMonitor" +e);
throw new ServletException(e);
}
PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message + e);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ try{
+ response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
return;
}
//
//
if (cache != null && request.getContentType().equals("text/x-java-properties")) {
loggingContext.setServiceName("PDP.putConfig");
- if (request.getContentLength() > Integer.parseInt(XACMLProperties.getProperty("MAX_CONTENT_LENGTH", DEFAULT_MAX_CONTENT_LENGTH))) {
- String message = "Content-Length larger than server will accept.";
- logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + message);
+ try{
+ if (request.getContentLength() > Integer.parseInt(XACMLProperties.getProperty("MAX_CONTENT_LENGTH", DEFAULT_MAX_CONTENT_LENGTH))) {
+ String message = "Content-Length larger than server will accept.";
+ logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + message);
+ loggingContext.transactionEnded();
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, message);
+ PolicyLogger.audit("Transaction Failed - See Error.log");
+ response.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ im.endTransaction();
+ return;
+ }
+ this.doPutConfig(cache, request, response, loggingContext);
loggingContext.transactionEnded();
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, message);
- PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ PolicyLogger.audit("Transaction ended");
+
im.endTransaction();
- return;
+ }catch(Exception e){
+ logger.error("Exception Occured while getting Max Content lenght"+e);
}
- this.doPutConfig(cache, request, response, loggingContext);
- loggingContext.transactionEnded();
- PolicyLogger.audit("Transaction ended");
-
- im.endTransaction();
} else {
String message = "Invalid cache: '" + cache + "' or content-type: '" + request.getContentType() + "'";
logger.error(XACMLErrorConstants.ERROR_SYSTEM_ERROR + message);
PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ try{
+ response.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
im.endTransaction();
return;
}
PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "Failed to process new configuration");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
+ try{
+ response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
return;
}
//No forward progress is being made
String message = "GET:/pdp/test called and PDP " + pdpResourceName + " is not making forward progress."
+ " Exception Message: " + fpe.getMessage();
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message );
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message + fpe);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- // PolicyLogger.audit(MessageCodes.ERROR_SYSTEM_ERROR, message );
- response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ try{
+ response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
return;
}catch (AdministrativeStateException ase){
//Administrative State is locked
String message = "GET:/pdp/test called and PDP " + pdpResourceName + " Administrative State is LOCKED "
+ " Exception Message: " + ase.getMessage();
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message );
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message + ase);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ try{
+ response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
return;
}catch (StandbyStatusException sse){
//Administrative State is locked
String message = "GET:/pdp/test called and PDP " + pdpResourceName + " Standby Status is NOT PROVIDING SERVICE "
+ " Exception Message: " + sse.getMessage();
- PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message );
+ PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message + sse);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ try{
+ response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
return;
} catch (Exception e) {
//A subsystem is not making progress or is not responding
failedNodeList = "UnknownSubSystem";
}
response.addHeader("X-ECOMP-SubsystemFailure", failedNodeList);
- response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ try{
+ response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
loggingContext.transactionEnded();
- PolicyLogger.audit("Transaction Failed - See Error.log");
+ PolicyLogger.audit("Transaction Failed - See Error.log" + e);
return;
}
}
String message = e.toString();
PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message);
loggingContext.transactionEnded();
- PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ PolicyLogger.audit("Transaction Failed - See Error.log" +e);
+ try{
+ response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
return;
}
//
PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, "Failed to copy property file");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(400, "Failed to copy Property file");
+ try{
+ response.sendError(400, "Failed to copy Property file");
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
}
} else if ("hb".equals(type)) {
// convert response object to JSON and include in the response
synchronized(pdpStatusLock) {
ObjectMapper mapper = new ObjectMapper();
- mapper.writeValue(response.getOutputStream(), status);
+ try{
+ mapper.writeValue(response.getOutputStream(), status);
+ }catch(Exception e1){
+ logger.error("Exception occured while writing output stream" +e1);
+ }
}
response.setStatus(HttpServletResponse.SC_OK);
loggingContext.transactionEnded();
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, "Invalid type value: " + type);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(HttpServletResponse.SC_BAD_REQUEST, "type not 'config' or 'hb'");
+ try{
+ response.sendError(HttpServletResponse.SC_BAD_REQUEST, "type not 'config' or 'hb'");
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
}
if (returnHB) {
synchronized(pdpStatusLock) {
ECOMPLoggingContext loggingContext = ECOMPLoggingUtils.getLoggingContextForRequest(request, baseLoggingContext);
loggingContext.transactionStarted();
loggingContext.setServiceName("PDP.decide");
- if ((loggingContext.getRequestID() == null) || (loggingContext.getRequestID() == "")){
+ if ((loggingContext.getRequestID() == null) || ("".equals(loggingContext.getRequestID()))){
UUID requestID = UUID.randomUUID();
loggingContext.setRequestID(requestID.toString());
PolicyLogger.info("requestID not provided in call to XACMLPdpSrvlet (doPost) so we generated one");
PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message + e);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ try{
+ response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
return;
}
//
PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, "Request from PEP at " + request.getRequestURI() + " for service when PDP has No Root Policies loaded");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE);
+ try{
+ response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE);
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
im.endTransaction();
return;
}
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, "Must specify a Content-Type");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(HttpServletResponse.SC_BAD_REQUEST, "no content-type given");
+ try{
+ response.sendError(HttpServletResponse.SC_BAD_REQUEST, "no content-type given");
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
im.endTransaction();
return;
}
//
// Limit the Content-Length to something reasonable
//
- if (request.getContentLength() > Integer.parseInt(XACMLProperties.getProperty("MAX_CONTENT_LENGTH", "32767"))) {
- String message = "Content-Length larger than server will accept.";
- logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + message);
- PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, message);
- loggingContext.transactionEnded();
- PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
- im.endTransaction();
- return;
+ try{
+ if (request.getContentLength() > Integer.parseInt(XACMLProperties.getProperty("MAX_CONTENT_LENGTH", "32767"))) {
+ String message = "Content-Length larger than server will accept.";
+ logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + message);
+ PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, message);
+ loggingContext.transactionEnded();
+ PolicyLogger.audit("Transaction Failed - See Error.log");
+ response.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ im.endTransaction();
+ return;
+ }
+ }catch(Exception e){
+ logger.error("Exception occured while getting max content length"+e);
}
+
if (request.getContentLength() <= 0) {
String message = "Content-Length is negative";
logger.error(XACMLErrorConstants.ERROR_DATA_ISSUE + message);
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ try{
+ response.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
im.endTransaction();
return;
}
loggingContext.transactionEnded();
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, message);
PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ try{
+ response.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
im.endTransaction();
return;
}
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, e, "Could not parse request");
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(HttpServletResponse.SC_BAD_REQUEST, e.getMessage());
+ try{
+ response.sendError(HttpServletResponse.SC_BAD_REQUEST, e.getMessage());
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
im.endTransaction();
return;
}
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ try{
+ response.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
im.endTransaction();
return;
}
PolicyLogger.error(MessageCodes.ERROR_DATA_ISSUE, message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ try{
+ response.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
im.endTransaction();
return;
}
PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ try{
+ response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
im.endTransaction();
return;
}
//
if (pdpResponse == null) {
requestLogger.info(lTimeStart + "=" + "{}");
- throw new PDPException("Failed to get response from PDP engine.");
+ try{
+ throw new PDPException("Failed to get response from PDP engine.");
+ }catch(Exception e1){
+ logger.error("Exception occured while throwing Exception" +e1);
+ }
}
//
// Set our content-type
// return to our caller as well as dump to our loggers.
//
String outgoingResponseString = "";
- if (contentType.getMimeType().equalsIgnoreCase(ContentType.APPLICATION_JSON.getMimeType())) {
- //
- // Get it as a String. This is not very efficient but we need to log our
- // results for auditing.
- //
- outgoingResponseString = JSONResponse.toString(pdpResponse, logger.isDebugEnabled());
- if (logger.isDebugEnabled()) {
- logger.debug(outgoingResponseString);
+ try{
+ if (contentType.getMimeType().equalsIgnoreCase(ContentType.APPLICATION_JSON.getMimeType())) {
//
- // Get rid of whitespace
+ // Get it as a String. This is not very efficient but we need to log our
+ // results for auditing.
//
- outgoingResponseString = JSONResponse.toString(pdpResponse, false);
- }
- } else if ( contentType.getMimeType().equalsIgnoreCase(ContentType.APPLICATION_XML.getMimeType()) ||
- contentType.getMimeType().equalsIgnoreCase("application/xacml+xml")) {
- //
- // Get it as a String. This is not very efficient but we need to log our
- // results for auditing.
- //
- outgoingResponseString = DOMResponse.toString(pdpResponse, logger.isDebugEnabled());
- if (logger.isDebugEnabled()) {
- logger.debug(outgoingResponseString);
+ outgoingResponseString = JSONResponse.toString(pdpResponse, logger.isDebugEnabled());
+ if (logger.isDebugEnabled()) {
+ logger.debug(outgoingResponseString);
+ //
+ // Get rid of whitespace
+ //
+ outgoingResponseString = JSONResponse.toString(pdpResponse, false);
+ }
+ } else if ( contentType.getMimeType().equalsIgnoreCase(ContentType.APPLICATION_XML.getMimeType()) ||
+ contentType.getMimeType().equalsIgnoreCase("application/xacml+xml")) {
//
- // Get rid of whitespace
+ // Get it as a String. This is not very efficient but we need to log our
+ // results for auditing.
//
- outgoingResponseString = DOMResponse.toString(pdpResponse, false);
+ outgoingResponseString = DOMResponse.toString(pdpResponse, logger.isDebugEnabled());
+ if (logger.isDebugEnabled()) {
+ logger.debug(outgoingResponseString);
+ //
+ // Get rid of whitespace
+ //
+ outgoingResponseString = DOMResponse.toString(pdpResponse, false);
+ }
+ }
+ // adding the jmx values for NA, Permit and Deny
+ //
+ if (outgoingResponseString.contains("NotApplicable") || outgoingResponseString.contains("Decision not a Permit")){
+ monitor.pdpEvaluationNA();
}
- }
- // adding the jmx values for NA, Permit and Deny
- //
- if (outgoingResponseString.contains("NotApplicable") || outgoingResponseString.contains("Decision not a Permit")){
- monitor.pdpEvaluationNA();
- }
- if (outgoingResponseString.contains("Permit") && !outgoingResponseString.contains("Decision not a Permit")){
- monitor.pdpEvaluationPermit();
- }
+ if (outgoingResponseString.contains("Permit") && !outgoingResponseString.contains("Decision not a Permit")){
+ monitor.pdpEvaluationPermit();
+ }
- if (outgoingResponseString.contains("Deny")){
- monitor.pdpEvaluationDeny();
+ if (outgoingResponseString.contains("Deny")){
+ monitor.pdpEvaluationDeny();
+ }
+ //
+ // lTimeStart is used as an ID within the requestLogger to match up
+ // request's with responses.
+ //
+ requestLogger.info(lTimeStart + "=" + outgoingResponseString);
+ response.getWriter().print(outgoingResponseString);
+ }catch(Exception e){
+ logger.error("Exception Occured"+e );
}
- //
- // lTimeStart is used as an ID within the requestLogger to match up
- // request's with responses.
- //
- requestLogger.info(lTimeStart + "=" + outgoingResponseString);
- response.getWriter().print(outgoingResponseString);
}
catch (Exception e) {
String message = "Exception executing request: " + e;
PolicyLogger.error(MessageCodes.ERROR_SYSTEM_ERROR, e, message);
loggingContext.transactionEnded();
PolicyLogger.audit("Transaction Failed - See Error.log");
- response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ try{
+ response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, message);
+ }catch(Exception e1){
+ logger.error("Exception occured while sending error in response" +e1);
+ }
return;
}
Class<?> createUpdateclass = Class.forName(createUpdateResourceName);
createUpdatePolicyConstructor = createUpdateclass.getConstructor(PolicyParameters.class, String.class, boolean.class);
}catch(Exception e){
- PolicyLogger.error(MessageCodes.MISS_PROPERTY_ERROR, "createUpdatePolicy.impl.className", "xacml.pdp.init");
+ PolicyLogger.error(MessageCodes.MISS_PROPERTY_ERROR, "createUpdatePolicy.impl.className", "xacml.pdp.init" +e);
throw new ServletException("Could not find the Class name : " +createUpdateResourceName + "\n" +e.getMessage());
}
}