private static final String DEFAULT_PROVSRVR_NAME = "dmaap-dr-prov";
private static final String STATIC_ROUTING_NODES = ""; //Adding new param for static Routing - Rally:US664862-1610
+ //Common Errors
+ public static final String MISSING_ON_BEHALF = "Missing X-DMAAP-DR-ON-BEHALF-OF header.";
+ public static final String MISSING_FEED = "Missing or bad feed number.";
+ public static final String POLICY_ENGINE = "Policy Engine disallows access.";
+ public static final String UNAUTHORIZED = "Unauthorized.";
+ public static final String BAD_SUB = "Missing or bad subscription number.";
+ public static final String BAD_JSON = "Badly formed JSON";
+ public static final String BAD_URL = "Bad URL.";
+
+ public static final String API = "/api/";
+ public static final String LOGS = "/logs/";
+ public static final String TEXT_CT = "text/plain";
+ public static final String INGRESS = "/ingress/";
+ public static final String EGRESS = "/egress/";
+ public static final String NETWORK = "/network/";
+ public static final String GROUPID = "groupid";
+ public static final String FEEDID = "feedid";
+ public static final String FEEDIDS = "feedids";
+ public static final String SUBID = "subid";
+ public static final String EVENT_TYPE = "eventType";
+ public static final String OUTPUT_TYPE = "output_type";
+ public static final String START_TIME = "start_time";
+ public static final String END_TIME = "end_time";
+ public static final String REASON_SQL = "reasonSQL";
+
+
/**
* A boolean to trigger one time "provisioning changed" event on startup
*/
try {
thishost = InetAddress.getLocalHost();
loopback = InetAddress.getLoopbackAddress();
- //checkHttpsRelaxation(); //Data Router Subscriber HTTPS Relaxation feature USERSTORYID:US674047.
} catch (UnknownHostException e) {
intlogger.info("BaseServlet.init: " + e.getMessage(), e);
}
}
}
- /**
- * Data Router Subscriber HTTPS Relaxation feature USERSTORYID:US674047. Check if HTTPS Relexaction is enabled
- *
- * @author vs215k
- **/
- private void checkHttpsRelaxation() {
- if (!mailSendFlag) {
- Properties p = (new DB()).getProperties();
- intlogger.info("HTTPS relaxation: " + p.get("org.onap.dmaap.datarouter.provserver.https.relaxation"));
-
- if (p.get("org.onap.dmaap.datarouter.provserver.https.relaxation").equals("true")) {
- try {
- notifyPSTeam(p.get("org.onap.dmaap.datarouter.provserver.https.relax.notify").toString());
- } catch (Exception e) {
- intlogger.warn("Exception: " + e.getMessage(), e);
- }
- }
- mailSendFlag = true;
- }
- }
/**
* Data Router Subscriber HTTPS Relaxation feature USERSTORYID:US674047.
mp.addBodyPart(htmlPart);
msg.setContent(mp);
- System.out.println(mailprops.get("com.att.dmaap.datarouter.mail.body").toString()
+ intlogger.info(mailprops.get("com.att.dmaap.datarouter.mail.body").toString()
.replace("[SERVER]", InetAddress.getLocalHost().getHostName()));
Transport.send(msg);
private static boolean getBoolean(Map<String, String> map, String name) {
String s = map.get(name);
- return (s != null) && s.equalsIgnoreCase("true");
+ return (s != null) && "true".equalsIgnoreCase(s);
}
private static String getString(Map<String, String> map, String name, String dflt) {
default:
action = "*";
}
- if (aafInstance == null || aafInstance.equals("")) {
+ if (aafInstance == null || "".equals(aafInstance)) {
aafInstance = props.getProperty(AAF_INSTANCE, "org.onap.dmaap-dr.NoInstanceDefined");
}
return type + "|" + aafInstance + "|" + action;
default:
action = "*";
}
- if (aafInstance == null || aafInstance.equals("")) {
+ if (aafInstance == null || "".equals(aafInstance)) {
aafInstance = props.getProperty(AAF_INSTANCE, "org.onap.dmaap-dr.NoInstanceDefined");
}
return type + "|" + aafInstance + "|" + action;
}
// Note: I think this should be getPathInfo(), but that doesn't work (Jetty bug?)
String path = req.getRequestURI();
- if (path != null && !path.equals("/")) {
- message = "Bad URL.";
+ if (path != null && !"/".equals(path)) {
+ message = BAD_URL;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_NOT_FOUND);
eventlogger.error(elr.toString());
// Check with the Authorizer
AuthorizationResponse aresp = authz.decide(req);
if (!aresp.isAuthorized()) {
- message = "Policy Engine disallows access.";
+ message = POLICY_ENGINE;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.error(elr.toString());
}
// Note: I think this should be getPathInfo(), but that doesn't work (Jetty bug?)
String path = req.getRequestURI();
- if (path != null && !path.equals("/")) {
- message = "Bad URL.";
+ if (path != null && !"/".equals(path)) {
+ message = BAD_URL;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_NOT_FOUND);
eventlogger.error(elr.toString());
// check content type is FEED_CONTENT_TYPE, version 1.0
ContentHeader ch = getContentHeader(req);
String ver = ch.getAttribute("version");
- if (!ch.getType().equals(FEED_BASECONTENT_TYPE) || !(ver.equals("1.0") || ver.equals("2.0"))) {
+ if (!ch.getType().equals(FEED_BASECONTENT_TYPE) || !("1.0".equals(ver) || "2.0".equals(ver))) {
message = "Incorrect content-type";
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
}
JSONObject jo = getJSONfromInput(req);
if (jo == null) {
- message = "Badly formed JSON";
+ message = BAD_JSON;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.error(elr.toString());
*/
String aafInstance = feed.getAafInstance();
if (Boolean.parseBoolean(isCadiEnabled)) {
- if ((aafInstance == null || aafInstance.equals("") || (aafInstance.equalsIgnoreCase("legacy")) && req.getHeader(EXCLUDE_AAF_HEADER).equalsIgnoreCase("true"))) {
+ if ((aafInstance == null || "".equals(aafInstance) || ("legacy".equalsIgnoreCase(aafInstance)) && "true".equalsIgnoreCase(req.getHeader(EXCLUDE_AAF_HEADER)))) {
// Check with the Authorizer
AuthorizationResponse aresp = authz.decide(req);
if (!aresp.isAuthorized()) {
- message = "Policy Engine disallows access.";
+ message = POLICY_ENGINE;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.error(elr.toString());
return;
}
} else {
- if (req.getHeader(EXCLUDE_AAF_HEADER).equalsIgnoreCase("true")) {
+ if ("true".equalsIgnoreCase(req.getHeader(EXCLUDE_AAF_HEADER))) {
message = "DRFeedsServlet.doPost() -Invalid request exclude_AAF should not be true if passing AAF_Instance value= " + aafInstance;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
} else {
AuthorizationResponse aresp = authz.decide(req);
if (!aresp.isAuthorized()) {
- message = "Policy Engine disallows access.";
+ message = POLICY_ENGINE;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.error(elr.toString());
}
String bhdr = req.getHeader(BEHALF_HEADER);
if (bhdr == null) {
- message = "Missing "+BEHALF_HEADER+" header.";
+ message = MISSING_ON_BEHALF;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.error(elr.toString());
}
int feedid = getIdFromPath(req);
if (feedid < 0) {
- message = "Missing or bad feed number.";
+ message = MISSING_FEED;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.error(elr.toString());
}
Feed feed = Feed.getFeedById(feedid);
if (feed == null || feed.isDeleted()) {
- message = "Missing or bad feed number.";
+ message = MISSING_FEED;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_NOT_FOUND);
eventlogger.error(elr.toString());
* CADI code - check on permissions based on Legacy/AAF users to allow to delete/remove feed
*/
String aafInstance = feed.getAafInstance();
- if (aafInstance == null || aafInstance.equals("") || aafInstance.equalsIgnoreCase("legacy")) {
+ if (aafInstance == null || "".equals(aafInstance) || "legacy".equalsIgnoreCase(aafInstance)) {
AuthorizationResponse aresp = authz.decide(req);
if (! aresp.isAuthorized()) {
- message = "Policy Engine disallows access.";
+ message = POLICY_ENGINE;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.error(elr.toString());
}
String bhdr = req.getHeader(BEHALF_HEADER);
if (bhdr == null) {
- message = "Missing "+BEHALF_HEADER+" header.";
+ message = MISSING_ON_BEHALF;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.error(elr.toString());
}
int feedid = getIdFromPath(req);
if (feedid < 0) {
- message = "Missing or bad feed number.";
+ message = MISSING_FEED;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.error(elr.toString());
}
Feed feed = Feed.getFeedById(feedid);
if (feed == null || feed.isDeleted()) {
- message = "Missing or bad feed number.";
+ message = MISSING_FEED;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_NOT_FOUND);
eventlogger.error(elr.toString());
// Check with the Authorizer
AuthorizationResponse aresp = authz.decide(req);
if (! aresp.isAuthorized()) {
- message = "Policy Engine disallows access.";
+ message = POLICY_ENGINE;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.error(elr.toString());
}
String bhdr = req.getHeader(BEHALF_HEADER);
if (bhdr == null) {
- message = "Missing "+BEHALF_HEADER+" header.";
+ message = MISSING_ON_BEHALF;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.error(elr.toString());
}
int feedid = getIdFromPath(req);
if (feedid < 0) {
- message = "Missing or bad feed number.";
+ message = MISSING_FEED;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.error(elr.toString());
}
Feed oldFeed = Feed.getFeedById(feedid);
if (oldFeed == null || oldFeed.isDeleted()) {
- message = "Missing or bad feed number.";
+ message = MISSING_FEED;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_NOT_FOUND);
eventlogger.error(elr.toString());
// check content type is FEED_CONTENT_TYPE, version 1.0
ContentHeader ch = getContentHeader(req);
String ver = ch.getAttribute("version");
- if (!ch.getType().equals(FEED_BASECONTENT_TYPE) || !(ver.equals("1.0") || ver.equals("2.0"))) {
+ if (!ch.getType().equals(FEED_BASECONTENT_TYPE) || !("1.0".equals(ver) || "2.0".equals(ver))) {
message = "Incorrect content-type";
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
}
JSONObject jo = getJSONfromInput(req);
if (jo == null) {
- message = "Badly formed JSON";
+ message = BAD_JSON;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.error(elr.toString());
* CADI code - check on permissions based on Legacy/AAF users to allow feed edit/update/modify
*/
String aafInstance = feed.getAafInstance();
- if (aafInstance == null || aafInstance.equals("") || aafInstance.equalsIgnoreCase("legacy")) {
+ if (aafInstance == null || "".equals(aafInstance) || "legacy".equalsIgnoreCase(aafInstance)) {
// Check with the Authorizer
AuthorizationResponse aresp = authz.decide(req);
if (!aresp.isAuthorized()) {
- message = "Policy Engine disallows access.";
+ message = POLICY_ENGINE;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.error(elr.toString());
// Check with the Authorizer
/*AuthorizationResponse aresp = authz.decide(req);
if (! aresp.isAuthorized()) {
- message = "Policy Engine disallows access.";
+ message = POLICY_ENGINE;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.error(elr.toString());
eventlogger.error("PROV0121 GroupServlet.doGet: " + ioe.getMessage(), ioe);
}
- // Display a list of Groups
- /*Collection<Group> list = Group.getGroupById(groupid);
- String t = JSONUtilities.createJSONArray(list);
-
- // send response
- elr.setResult(HttpServletResponse.SC_OK);
- eventlogger.info(elr.toString());
- resp.setStatus(HttpServletResponse.SC_OK);
- resp.setContentType(GROUPLIST_CONTENT_TYPE);
- resp.getOutputStream().print(t);*/
}
/**
* PUT on the <GROUPS> -- not supported.
sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, message, eventlogger);
return;
}
- // Check with the Authorizer
- /*AuthorizationResponse aresp = authz.decide(req);
- if (! aresp.isAuthorized()) {
- message = "Policy Engine disallows access.";
- elr.setMessage(message);
- elr.setResult(HttpServletResponse.SC_FORBIDDEN);
- eventlogger.error(elr.toString());
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
- return;
- }*/
+
// check content type is SUB_CONTENT_TYPE, version 1.0
ContentHeader ch = getContentHeader(req);
String ver = ch.getAttribute("version");
- if (!ch.getType().equals(GROUP_BASECONTENT_TYPE) || !(ver.equals("1.0") || ver.equals("2.0"))) {
+ if (!ch.getType().equals(GROUP_BASECONTENT_TYPE) || !("1.0".equals(ver) || "2.0".equals(ver))) {
message = "Incorrect content-type";
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
}
JSONObject jo = getJSONfromInput(req);
if (jo == null) {
- message = "Badly formed JSON";
+ message = BAD_JSON;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.error(elr.toString());
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, message, eventlogger);
return;
}
- /*int feedid = getIdFromPath(req);
- if (feedid < 0) {
- message = "Missing or bad feed number.";
- elr.setMessage(message);
- elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
- eventlogger.info(elr.toString());
- resp.sendError(HttpServletResponse.SC_BAD_REQUEST, message);
- return;
- }
- Feed feed = Feed.getFeedById(feedid);
- if (feed == null || feed.isDeleted()) {
- message = "Missing or bad feed number.";
- elr.setMessage(message);
- elr.setResult(HttpServletResponse.SC_NOT_FOUND);
- eventlogger.info(elr.toString());
- resp.sendError(HttpServletResponse.SC_NOT_FOUND, message);
- return;
- }*/
- // Check with the Authorizer
- /*AuthorizationResponse aresp = authz.decide(req);
- if (! aresp.isAuthorized()) {
- message = "Policy Engine disallows access.";
- elr.setMessage(message);
- elr.setResult(HttpServletResponse.SC_FORBIDDEN);
- eventlogger.info(elr.toString());
- resp.sendError(HttpServletResponse.SC_FORBIDDEN, message);
- return;
- }*/
// check content type is SUB_CONTENT_TYPE, version 1.0
ContentHeader ch = getContentHeader(req);
}
JSONObject jo = getJSONfromInput(req);
if (jo == null) {
- message = "Badly formed JSON";
+ message = BAD_JSON;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.error(elr.toString());
@SuppressWarnings("serial")
public class InternalServlet extends ProxyServlet {
+
private static final Object lock = new Object();
private static Integer logseq = 0; // another piece of info to make log spool file names unique
//Adding EELF Logger Rally:US664892
eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");
EventLogRecord elr = new EventLogRecord(req);
if (!isAuthorizedForInternal(req)) {
- elr.setMessage("Unauthorized.");
+ elr.setMessage(UNAUTHORIZED);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.error(elr.toString());
- sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, "Unauthorized.", eventlogger);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, UNAUTHORIZED, eventlogger);
return;
}
String path = req.getPathInfo();
- if (path.startsWith("/api/")) {
+ if (path.startsWith(API)) {
if (isProxyOK(req) && isProxyServer()) {
super.doDelete(req, resp);
return;
}
}
}
- sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Bad URL.", eventlogger);
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, BAD_URL, eventlogger);
} finally {
eelfLogger.info(EelfMsgs.EXIT);
}
eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");
String path = req.getPathInfo();
Properties props = (new DB()).getProperties();
- if (path.equals("/halt") && !req.isSecure()) {
+ if ("/halt".equals(path) && !req.isSecure()) {
// request to halt the server - can ONLY come from localhost
String remote = req.getRemoteAddr();
if (remote.equals(props.getProperty("org.onap.dmaap.datarouter.provserver.localhost"))) {
EventLogRecord elr = new EventLogRecord(req);
if (!isAuthorizedForInternal(req)) {
- elr.setMessage("Unauthorized.");
+ elr.setMessage(UNAUTHORIZED);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.error(elr.toString());
- sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, "Unauthorized.", eventlogger);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, UNAUTHORIZED, eventlogger);
return;
}
- if (path.equals("/fetchProv") && !req.isSecure()) {
+ if ("/fetchProv".equals(path) && !req.isSecure()) {
// if request came from active_pod or standby_pod and it is not us, reload prov data
SynchronizerTask s = SynchronizerTask.getSynchronizer();
s.doFetch();
resp.setStatus(HttpServletResponse.SC_OK);
return;
}
- if (path.equals("/prov")) {
+ if ("/prov".equals(path)) {
if (isProxyOK(req) && isProxyServer()) {
if (super.doGetWithFallback(req, resp)) {
return;
}
return;
}
- if (path.equals("/logs") || path.equals("/logs/")) {
+ if ("/logs".equals(path) || LOGS.equals(path)) {
resp.setStatus(HttpServletResponse.SC_OK);
resp.setContentType("application/json");
try {
}
return;
}
- if (path.startsWith("/logs/")) {
+ if (path.startsWith(LOGS)) {
String logdir = props.getProperty("org.onap.dmaap.datarouter.provserver.accesslog.dir");
String logfile = path.substring(6);
if (logdir != null && logfile != null && logfile.indexOf('/') < 0) {
File log = new File(logdir + "/" + logfile);
if (log.exists() && log.isFile()) {
resp.setStatus(HttpServletResponse.SC_OK);
- resp.setContentType("text/plain");
+ resp.setContentType(TEXT_CT);
Path logpath = Paths.get(log.getAbsolutePath());
try {
Files.copy(logpath, resp.getOutputStream());
sendResponseError(resp, HttpServletResponse.SC_NO_CONTENT, "No file.", eventlogger);
return;
}
- if (path.startsWith("/api/")) {
+ if (path.startsWith(API)) {
if (isProxyOK(req) && isProxyServer()) {
super.doGet(req, resp);
return;
Parameters param = Parameters.getParameter(key);
if (param != null) {
resp.setStatus(HttpServletResponse.SC_OK);
- resp.setContentType("text/plain");
+ resp.setContentType(TEXT_CT);
try {
resp.getOutputStream().print(param.getValue() + "\n");
} catch (IOException ioe) {
}
}
}
- if (path.equals("/drlogs") || path.equals("/drlogs/")) {
+ if ("/drlogs".equals(path) || "/drlogs/".equals(path)) {
// Special POD <=> POD API to determine what log file records are loaded here
LogfileLoader lfl = LogfileLoader.getLoader();
resp.setStatus(HttpServletResponse.SC_OK);
- resp.setContentType("text/plain");
+ resp.setContentType(TEXT_CT);
try {
resp.getOutputStream().print(lfl.getBitSet().toString());
} catch (IOException ioe) {
}
return;
}
- sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Bad URL.", eventlogger);
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, BAD_URL, eventlogger);
} finally {
eelfLogger.info(EelfMsgs.EXIT);
}
eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF_AND_FEEDID, req.getHeader(BEHALF_HEADER), getIdFromPath(req) + "");
EventLogRecord elr = new EventLogRecord(req);
if (!isAuthorizedForInternal(req)) {
- elr.setMessage("Unauthorized.");
+ elr.setMessage(UNAUTHORIZED);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.error(elr.toString());
- sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, "Unauthorized.", eventlogger);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, UNAUTHORIZED, eventlogger);
return;
}
String path = req.getPathInfo();
- if (path.startsWith("/api/")) {
+ if (path.startsWith(API)) {
if (isProxyOK(req) && isProxyServer()) {
super.doPut(req, resp);
return;
}
}
}
- sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Bad URL.", eventlogger);
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, BAD_URL, eventlogger);
} finally {
eelfLogger.info(EelfMsgs.EXIT);
}
eelfLogger.info(EelfMsgs.MESSAGE_WITH_BEHALF, req.getHeader(BEHALF_HEADER));
EventLogRecord elr = new EventLogRecord(req);
if (!isAuthorizedForInternal(req)) {
- elr.setMessage("Unauthorized.");
+ elr.setMessage(UNAUTHORIZED);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.error(elr.toString());
- sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, "Unauthorized.", eventlogger);
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, UNAUTHORIZED, eventlogger);
return;
}
String path = req.getPathInfo();
- if (path.startsWith("/api/")) {
+ if (path.startsWith(API)) {
if (isProxyOK(req) && isProxyServer()) {
super.doPost(req, resp);
return;
}
}
- if (path.equals("/logs") || path.equals("/logs/")) {
+ if ("/logs".equals(path) || LOGS.equals(path)) {
String ctype = req.getHeader("Content-Type");
- if (ctype == null || !ctype.equals("text/plain")) {
+ if (ctype == null || !TEXT_CT.equals(ctype)) {
elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
elr.setMessage("Bad media type: " + ctype);
resp.setStatus(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
}
String encoding = req.getHeader("Content-Encoding");
if (encoding != null) {
- if (encoding.trim().equals("gzip")) {
+ if ("gzip".equals(encoding.trim())) {
spoolname += ".gz";
} else {
elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
return;
}
- if (path.equals("/drlogs") || path.equals("/drlogs/")) {
+ if ("/drlogs".equals(path) || "/drlogs/".equals(path)) {
// Receive post request and generate log entries
String ctype = req.getHeader("Content-Type");
- if (ctype == null || !ctype.equals("text/plain")) {
+ if (ctype == null || !TEXT_CT.equals(ctype)) {
elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
elr.setMessage("Bad media type: " + ctype);
resp.setStatus(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);
RLEBitSet bs = new RLEBitSet(bos.toString()); // The set of records to retrieve
elr.setResult(HttpServletResponse.SC_OK);
resp.setStatus(HttpServletResponse.SC_OK);
- resp.setContentType("text/plain");
+ resp.setContentType(TEXT_CT);
LogRecord.printLogRecords(resp.getOutputStream(), bs);
eventlogger.info(elr.toString());
} catch (IOException ioe) {
}
elr.setResult(HttpServletResponse.SC_NOT_FOUND);
- sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Bad URL.", eventlogger);
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, BAD_URL, eventlogger);
eventlogger.error(elr.toString());
} finally {
eelfLogger.info(EelfMsgs.EXIT);
private static final long TWENTYFOUR_HOURS = (24 * 60 * 60 * 1000L);\r
private static final String FMT_1 = "yyyy-MM-dd'T'HH:mm:ss'Z'";\r
private static final String FMT_2 = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";\r
+ private static final String PUBLISHSQL = "publishSQL";\r
+ private static final String STATUSSQL = "statusSQL";\r
+ private static final String RESULTSQL = "resultSQL";\r
+ private static final String FILENAMESQL = "filenameSQL";\r
+ private static final String TIMESQL = "timeSQL";\r
+ private static final String LOG_RECORDSSQL = "select * from LOG_RECORDS where FEEDID = ";\r
\r
private final boolean isfeedlog;\r
\r
Map<String, String> map = new HashMap<>();\r
String s = req.getParameter("type");\r
if (s != null) {\r
- if (s.equals("pub") || s.equals("del") || s.equals("exp")) {\r
+ if ("pub".equals(s) || "del".equals(s) || "exp".equals(s)) {\r
map.put("type", s);\r
} else {\r
map.put("err", "bad type");\r
} else {\r
map.put("type", "all");\r
}\r
- map.put("publishSQL", "");\r
- map.put("statusSQL", "");\r
- map.put("resultSQL", "");\r
- map.put("reasonSQL", "");\r
- map.put("filenameSQL", "");\r
+ map.put(PUBLISHSQL, "");\r
+ map.put(STATUSSQL, "");\r
+ map.put(RESULTSQL, "");\r
+ map.put(REASON_SQL, "");\r
+ map.put(FILENAMESQL, "");\r
\r
s = req.getParameter("publishId");\r
if (s != null) {\r
map.put("err", "bad publishId");\r
return map;\r
}\r
- map.put("publishSQL", " AND PUBLISH_ID = '"+s+"'");\r
+ map.put(PUBLISHSQL, " AND PUBLISH_ID = '"+s+"'");\r
}\r
\r
s = req.getParameter("filename");\r
if (s != null) {\r
- map.put("filenameSQL", " AND FILENAME = '"+s+"'");\r
+ map.put(FILENAMESQL, " AND FILENAME = '"+s+"'");\r
}\r
\r
s = req.getParameter("statusCode");\r
if (s != null) {\r
String sql = null;\r
- if (s.equals("success")) {\r
+ if ("success".equals(s)) {\r
sql = " AND STATUS >= 200 AND STATUS < 300";\r
- } else if (s.equals("redirect")) {\r
+ } else if ("redirect".equals(s)) {\r
sql = " AND STATUS >= 300 AND STATUS < 400";\r
- } else if (s.equals("failure")) {\r
+ } else if ("failure".equals(s)) {\r
sql = " AND STATUS >= 400";\r
} else {\r
try {\r
map.put("err", "bad statusCode");\r
return map;\r
}\r
- map.put("statusSQL", sql);\r
- map.put("resultSQL", sql.replaceAll("STATUS", "RESULT"));\r
+ map.put(STATUSSQL, sql);\r
+ map.put(RESULTSQL, sql.replaceAll("STATUS", "RESULT"));\r
}\r
\r
s = req.getParameter("expiryReason");\r
if (s != null) {\r
map.put("type", "exp");\r
- if (s.equals("notRetryable")) {\r
- map.put("reasonSQL", " AND REASON = 'notRetryable'");\r
- } else if (s.equals("retriesExhausted")) {\r
- map.put("reasonSQL", " AND REASON = 'retriesExhausted'");\r
- } else if (s.equals("diskFull")) {\r
- map.put("reasonSQL", " AND REASON = 'diskFull'");\r
- } else if (s.equals("other")) {\r
- map.put("reasonSQL", " AND REASON = 'other'");\r
+ if ("notRetryable".equals(s)) {\r
+ map.put(REASON_SQL, " AND REASON = 'notRetryable'");\r
+ } else if ("retriesExhausted".equals(s)) {\r
+ map.put(REASON_SQL, " AND REASON = 'retriesExhausted'");\r
+ } else if ("diskFull".equals(s)) {\r
+ map.put(REASON_SQL, " AND REASON = 'diskFull'");\r
+ } else if ("other".equals(s)) {\r
+ map.put(REASON_SQL, " AND REASON = 'other'");\r
} else {\r
map.put("err", "bad expiryReason");\r
return map;\r
} else if (etime == 0) {\r
etime = stime + TWENTYFOUR_HOURS;\r
}\r
- map.put("timeSQL", String.format(" AND EVENT_TIME >= %d AND EVENT_TIME <= %d", stime, etime));\r
+ map.put(TIMESQL, String.format(" AND EVENT_TIME >= %d AND EVENT_TIME <= %d", stime, etime));\r
return map;\r
}\r
private long getTimeFromParam(final String s) {\r
}\r
try {\r
// Also allow a long (in ms); useful for testing\r
- long n = Long.parseLong(s);\r
- return n;\r
+ return Long.parseLong(s);\r
} catch (NumberFormatException numberFormatException) {\r
intlogger.error("Exception in getting Time :- "+numberFormatException.getMessage(),numberFormatException);\r
}\r
\r
private void getPublishRecordsForFeed(int feedid, RowHandler rh, Map<String, String> map) {\r
String type = map.get("type");\r
- if (type.equals("all") || type.equals("pub")) {\r
- String sql = "select * from LOG_RECORDS where FEEDID = "+feedid\r
+ if ("all".equals(type) || "pub".equals(type)) {\r
+ String sql = LOG_RECORDSSQL+feedid\r
+ " AND TYPE = 'pub'"\r
- + map.get("timeSQL") + map.get("publishSQL") + map.get("statusSQL") + map.get("filenameSQL");\r
+ + map.get(TIMESQL) + map.get(PUBLISHSQL) + map.get(STATUSSQL) + map.get(FILENAMESQL);\r
getRecordsForSQL(sql, rh);\r
}\r
}\r
private void getDeliveryRecordsForFeed(int feedid, RowHandler rh, Map<String, String> map) {\r
String type = map.get("type");\r
- if (type.equals("all") || type.equals("del")) {\r
- String sql = "select * from LOG_RECORDS where FEEDID = "+feedid\r
+ if ("all".equals(type) || "del".equals(type)) {\r
+ String sql = LOG_RECORDSSQL+feedid\r
+ " AND TYPE = 'del'"\r
- + map.get("timeSQL") + map.get("publishSQL") + map.get("resultSQL");\r
+ + map.get(TIMESQL) + map.get(PUBLISHSQL) + map.get(RESULTSQL);\r
getRecordsForSQL(sql, rh);\r
}\r
}\r
private void getDeliveryRecordsForSubscription(int subid, RowHandler rh, Map<String, String> map) {\r
String type = map.get("type");\r
- if (type.equals("all") || type.equals("del")) {\r
+ if ("all".equals(type) || "del".equals(type)) {\r
String sql = "select * from LOG_RECORDS where DELIVERY_SUBID = "+subid\r
+ " AND TYPE = 'del'"\r
- + map.get("timeSQL") + map.get("publishSQL") + map.get("resultSQL");\r
+ + map.get(TIMESQL) + map.get(PUBLISHSQL) + map.get(RESULTSQL);\r
getRecordsForSQL(sql, rh);\r
}\r
}\r
private void getExpiryRecordsForFeed(int feedid, RowHandler rh, Map<String, String> map) {\r
String type = map.get("type");\r
- if (type.equals("all") || type.equals("exp")) {\r
- String st = map.get("statusSQL");\r
+ if ("all".equals(type) || "exp".equals(type)) {\r
+ String st = map.get(STATUSSQL);\r
if (st == null || st.length() == 0) {\r
- String sql = "select * from LOG_RECORDS where FEEDID = "+feedid\r
+ String sql = LOG_RECORDSSQL+feedid\r
+ " AND TYPE = 'exp'"\r
- + map.get("timeSQL") + map.get("publishSQL") + map.get("reasonSQL");\r
+ + map.get(TIMESQL) + map.get(PUBLISHSQL) + map.get(REASON_SQL);\r
getRecordsForSQL(sql, rh);\r
}\r
}\r
}\r
private void getExpiryRecordsForSubscription(int subid, RowHandler rh, Map<String, String> map) {\r
String type = map.get("type");\r
- if (type.equals("all") || type.equals("exp")) {\r
- String st = map.get("statusSQL");\r
+ if ("all".equals(type) || "exp".equals(type)) {\r
+ String st = map.get(STATUSSQL);\r
if (st == null || st.length() == 0) {\r
String sql = "select * from LOG_RECORDS where DELIVERY_SUBID = "+subid\r
+ " AND TYPE = 'exp'"\r
- + map.get("timeSQL") + map.get("publishSQL") + map.get("reasonSQL");\r
+ + map.get(TIMESQL) + map.get(PUBLISHSQL) + map.get(REASON_SQL);\r
getRecordsForSQL(sql, rh);\r
}\r
}\r
private static final String POKE_URL_TEMPLATE = "http://%s/internal/fetchProv";\r
\r
private static final Object lock = new Object();\r
+ private static final String CARRIAGE_RETURN = "\n],\n";\r
\r
/**\r
* This is a singleton -- there is only one Poker object in the server\r
private EELFLogger logger;\r
private String provString;\r
\r
+\r
private Poker() {\r
timer1 = timer2 = 0;\r
Timer rolex = new Timer();\r
sb.append(f.asJSONObject().toString());\r
pfx = ",\n";\r
}\r
- sb.append("\n],\n");\r
+ sb.append(CARRIAGE_RETURN);\r
\r
//Append groups to the string - Rally:US708115 - 1610\r
pfx = "\n";\r
sb.append(s.asJSONObject().toString());\r
pfx = ",\n";\r
}\r
- sb.append("\n],\n");\r
+ sb.append(CARRIAGE_RETURN);\r
\r
// Append Subscriptions to the string\r
pfx = "\n";\r
}\r
pfx = ",\n";\r
}\r
- sb.append("\n],\n");\r
+ sb.append(CARRIAGE_RETURN);\r
\r
// Append Parameters to the string\r
pfx = "\n";\r
sb.append("\"parameters\": {");\r
Map<String, String> props = Parameters.getParameters();\r
- Set<String> ivals = new HashSet<String>();\r
+ Set<String> ivals = new HashSet<>();\r
String intv = props.get("_INT_VALUES");\r
if (intv != null) {\r
ivals.addAll(Arrays.asList(intv.split("\\|")));\r
sb.append(in.asJSONObject().toString());\r
pfx = ",\n";\r
}\r
- sb.append("\n],\n");\r
+ sb.append(CARRIAGE_RETURN);\r
\r
pfx = "\n";\r
sb.append("\"egress\": {");\r
if (t != null) {
t = t.replaceAll("&", "&");
for (String s : t.split("&")) {
- if (s.equals("noproxy") || s.startsWith("noproxy=")) {
+ if ("noproxy".equals(s) || s.startsWith("noproxy=")) {
return false;
}
}
// Copy request headers and request body
copyRequestHeaders(req, proxy);
- if (method.equals("POST") || method.equals("PUT")) {
+ if ("POST".equals(method) || "PUT".equals(method)) {
BasicHttpEntity body = new BasicHttpEntity();
body.setContent(req.getInputStream());
body.setContentLength(-1); // -1 = unknown
List<String> list = Collections.list(from.getHeaderNames());
for (String name : list) {
// Proxy code will add this one
- if (!name.equalsIgnoreCase("Content-Length")) {
+ if (!"Content-Length".equalsIgnoreCase(name)) {
to.addHeader(name, from.getHeader(name));
}
}
private void copyResponseHeaders(HttpResponse from, HttpServletResponse to) {
for (Header hdr : from.getAllHeaders()) {
// Don't copy Date: our Jetty will add another Date header
- if (!hdr.getName().equals("Date")) {
+ if (!"Date".equals(hdr.getName())) {
to.addHeader(hdr.getName(), hdr.getValue());
}
}
*/\r
@SuppressWarnings("serial")\r
public class RouteServlet extends ProxyServlet {\r
+\r
/**\r
* DELETE route table entries by deleting part of the route table tree.\r
*/\r
public void doDelete(HttpServletRequest req, HttpServletResponse resp) {\r
EventLogRecord elr = new EventLogRecord(req);\r
if (!isAuthorizedForInternal(req)) {\r
- elr.setMessage("Unauthorized.");\r
+ elr.setMessage(UNAUTHORIZED);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.error(elr.toString());\r
- sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, "Unauthorized.", eventlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, UNAUTHORIZED, eventlogger);\r
return;\r
}\r
if (isProxyOK(req) && isProxyServer()) {\r
String path = req.getPathInfo();\r
String[] parts = path.substring(1).split("/");\r
Deleteable[] d = null;\r
- if (parts[0].equals("ingress")) {\r
+ if ("ingress".equals(parts[0])) {\r
if (parts.length == 4) {\r
// /internal/route/ingress/<feed>/<user>/<subnet>\r
try {\r
sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Invalid number of arguments in 'delete ingress' command.", eventlogger);\r
return;\r
}\r
- } else if (parts[0].equals("egress")) {\r
+ } else if ("egress".equals(parts[0])) {\r
if (parts.length == 2) {\r
// /internal/route/egress/<sub>\r
try {\r
sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Invalid number of arguments in 'delete egress' command.", eventlogger);\r
return;\r
}\r
- } else if (parts[0].equals("network")) {\r
+ } else if ("network".equals(parts[0])) {\r
if (parts.length == 3) {\r
// /internal/route/network/<from>/<to>\r
try {//\r
}\r
}\r
if (d == null) {\r
- sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Bad URL.", eventlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, BAD_URL, eventlogger);\r
return;\r
}\r
boolean rv = true;\r
public void doGet(HttpServletRequest req, HttpServletResponse resp) {\r
EventLogRecord elr = new EventLogRecord(req);\r
if (!isAuthorizedForInternal(req)) {\r
- elr.setMessage("Unauthorized.");\r
+ elr.setMessage(UNAUTHORIZED);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.error(elr.toString());\r
- sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, "Unauthorized.", eventlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, UNAUTHORIZED, eventlogger);\r
return;\r
}\r
if (isProxyOK(req) && isProxyServer()) {\r
String path = req.getPathInfo();\r
if (!path.endsWith("/"))\r
path += "/";\r
- if (!path.equals("/") && !path.equals("/ingress/") && !path.equals("/egress/") && !path.equals("/network/")) {\r
- sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Bad URL.", eventlogger);\r
+ if (!"/".equals(path) && !INGRESS.equals(path) && !EGRESS.equals(path) && !NETWORK.equals(path)) {\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, BAD_URL, eventlogger);\r
return;\r
}\r
\r
StringBuilder sb = new StringBuilder("{\n");\r
String px2 = "";\r
- if (path.equals("/") || path.equals("/ingress/")) {\r
+ if ("/".equals(path) || INGRESS.equals(path)) {\r
String pfx = "\n";\r
sb.append("\"ingress\": [");\r
for (IngressRoute in : IngressRoute.getAllIngressRoutes()) {\r
px2 = ",\n";\r
}\r
\r
- if (path.equals("/") || path.equals("/egress/")) {\r
+ if ("/".equals(path) || EGRESS.equals(path)) {\r
String pfx = "\n";\r
sb.append(px2);\r
sb.append("\"egress\": {");\r
px2 = ",\n";\r
}\r
\r
- if (path.equals("/") || path.equals("/network/")) {\r
+ if ("/".equals(path) || NETWORK.equals(path)) {\r
String pfx = "\n";\r
sb.append(px2);\r
sb.append("\"routing\": [");\r
public void doPut(HttpServletRequest req, HttpServletResponse resp) {\r
EventLogRecord elr = new EventLogRecord(req);\r
if (!isAuthorizedForInternal(req)) {\r
- elr.setMessage("Unauthorized.");\r
+ elr.setMessage(UNAUTHORIZED);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.error(elr.toString());\r
- sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, "Unauthorized.", eventlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, UNAUTHORIZED, eventlogger);\r
return;\r
}\r
- sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Bad URL.", eventlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, BAD_URL, eventlogger);\r
}\r
/**\r
* POST - modify existing route table entries in the route table tree specified by the URL path.\r
public void doPost(HttpServletRequest req, HttpServletResponse resp) {\r
EventLogRecord elr = new EventLogRecord(req);\r
if (!isAuthorizedForInternal(req)) {\r
- elr.setMessage("Unauthorized.");\r
+ elr.setMessage(UNAUTHORIZED);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.error(elr.toString());\r
- sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, "Unauthorized.", eventlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_FORBIDDEN, UNAUTHORIZED, eventlogger);\r
return;\r
}\r
if (isProxyOK(req) && isProxyServer()) {\r
}\r
String path = req.getPathInfo();\r
Insertable[] ins = null;\r
- if (path.startsWith("/ingress/")) {\r
+ if (path.startsWith(INGRESS)) {\r
// /internal/route/ingress/?feed=%s&user=%s&subnet=%s&nodepatt=%s\r
try {\r
// Although it probably doesn't make sense, you can install two identical routes in the IRT\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Invalid arguments in 'add ingress' command.", intlogger);\r
return;\r
}\r
- } else if (path.startsWith("/egress/")) {\r
+ } else if (path.startsWith(EGRESS)) {\r
// /internal/route/egress/?sub=%s&node=%s\r
try {\r
int subid = Integer.parseInt(req.getParameter("sub"));\r
sendResponseError(resp, HttpServletResponse.SC_BAD_REQUEST, "Invalid arguments in 'add egress' command.", intlogger);\r
return;\r
}\r
- } else if (path.startsWith("/network/")) {\r
+ } else if (path.startsWith(NETWORK)) {\r
// /internal/route/network/?from=%s&to=%s&via=%s\r
try {\r
String nfrom = req.getParameter("from");\r
}\r
}\r
if (ins == null) {\r
- sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, "Bad URL.", intlogger);\r
+ sendResponseError(resp, HttpServletResponse.SC_NOT_FOUND, BAD_URL, intlogger);\r
return;\r
}\r
boolean rv = true;\r
public class StatisticsServlet extends BaseServlet {\r
\r
private static final long TWENTYFOUR_HOURS = (24 * 60 * 60 * 1000L);\r
- private static final String fmt1 = "yyyy-MM-dd'T'HH:mm:ss'Z'";\r
- private static final String fmt2 = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";\r
+ private static final String FMT1 = "yyyy-MM-dd'T'HH:mm:ss'Z'";\r
+ private static final String FMT2 = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";\r
+\r
\r
\r
/**\r
resp.setContentType(LOGLIST_CONTENT_TYPE);\r
\r
String outputType = "json";\r
- String feedids = null;\r
\r
- if (req.getParameter("feedid") == null && req.getParameter("groupid") == null) {\r
+ if (req.getParameter(FEEDID) == null && req.getParameter(GROUPID) == null) {\r
try {\r
resp.getOutputStream().print("Invalid request, Feedid or Group ID is required.");\r
} catch (IOException ioe) {\r
}\r
}\r
\r
- if (req.getParameter("feedid") != null && req.getParameter("groupid") == null) {\r
- map.put("feedids", req.getParameter("feedid").replace("|", ",").toString());\r
+ if (req.getParameter(FEEDID) != null && req.getParameter(GROUPID) == null) {\r
+ map.put(FEEDIDS, req.getParameter(FEEDID).replace("|", ","));\r
}\r
\r
- if (req.getParameter("groupid") != null && req.getParameter("feedid") == null) {\r
+ if (req.getParameter(GROUPID) != null && req.getParameter(FEEDID) == null) {\r
StringBuffer groupid1 = new StringBuffer();\r
\r
try {\r
- groupid1 = this.getFeedIdsByGroupId(Integer.parseInt(req.getParameter("groupid")));\r
- map.put("feedids", groupid1.toString());\r
+ groupid1 = this.getFeedIdsByGroupId(Integer.parseInt(req.getParameter(GROUPID)));\r
+ map.put(FEEDIDS, groupid1.toString());\r
} catch (NumberFormatException | SQLException e) {\r
eventlogger.error("PROV0172 StatisticsServlet.doGet: " + e.getMessage(), e);\r
}\r
}\r
- if (req.getParameter("groupid") != null && req.getParameter("feedid") != null) {\r
+ if (req.getParameter(GROUPID) != null && req.getParameter(FEEDID) != null) {\r
StringBuffer groupid1 = new StringBuffer();\r
\r
try {\r
- groupid1 = this.getFeedIdsByGroupId(Integer.parseInt(req.getParameter("groupid")));\r
+ groupid1 = this.getFeedIdsByGroupId(Integer.parseInt(req.getParameter(GROUPID)));\r
groupid1.append(",");\r
- groupid1.append(req.getParameter("feedid").replace("|", ",").toString());\r
- map.put("feedids", groupid1.toString());\r
+ groupid1.append(req.getParameter(FEEDID).replace("|", ","));\r
+ map.put(FEEDIDS, groupid1.toString());\r
} catch (NumberFormatException | SQLException e) {\r
eventlogger.error("PROV0173 StatisticsServlet.doGet: " + e.getMessage(), e);\r
}\r
}\r
\r
- if (req.getParameter("subid") != null && req.getParameter("feedid") != null) {\r
+ if (req.getParameter(SUBID) != null && req.getParameter(FEEDID) != null) {\r
StringBuffer subidstr = new StringBuffer();\r
subidstr.append("and e.DELIVERY_SUBID in(");\r
\r
- subidstr.append(req.getParameter("subid").replace("|", ",").toString());\r
+ subidstr.append(req.getParameter(SUBID).replace("|", ","));\r
subidstr.append(")");\r
- map.put("subid", subidstr.toString());\r
+ map.put(SUBID, subidstr.toString());\r
}\r
- if (req.getParameter("subid") != null && req.getParameter("groupid") != null) {\r
+ if (req.getParameter(SUBID) != null && req.getParameter(GROUPID) != null) {\r
StringBuffer subidstr = new StringBuffer();\r
subidstr.append("and e.DELIVERY_SUBID in(");\r
\r
- subidstr.append(req.getParameter("subid").replace("|", ",").toString());\r
+ subidstr.append(req.getParameter(SUBID).replace("|", ","));\r
subidstr.append(")");\r
- map.put("subid", subidstr.toString());\r
+ map.put(SUBID, subidstr.toString());\r
}\r
if (req.getParameter("type") != null) {\r
- map.put("eventType", req.getParameter("type").replace("|", ",").toString());\r
+ map.put(EVENT_TYPE, req.getParameter("type").replace("|", ","));\r
}\r
- if (req.getParameter("output_type") != null) {\r
- map.put("output_type", req.getParameter("output_type").toString());\r
+ if (req.getParameter(OUTPUT_TYPE) != null) {\r
+ map.put(OUTPUT_TYPE, req.getParameter(OUTPUT_TYPE));\r
}\r
- if (req.getParameter("start_time") != null) {\r
- map.put("start_time", req.getParameter("start_time").toString());\r
+ if (req.getParameter(START_TIME) != null) {\r
+ map.put(START_TIME, req.getParameter(START_TIME));\r
}\r
- if (req.getParameter("end_time") != null) {\r
- map.put("end_time", req.getParameter("end_time").toString());\r
+ if (req.getParameter(END_TIME) != null) {\r
+ map.put(END_TIME, req.getParameter(END_TIME));\r
}\r
\r
if (req.getParameter("time") != null) {\r
- map.put("start_time", req.getParameter("time").toString());\r
- map.put("end_time", null);\r
+ map.put(START_TIME, req.getParameter("time"));\r
+ map.put(END_TIME, null);\r
}\r
\r
- if (req.getParameter("output_type") != null) {\r
- outputType = req.getParameter("output_type");\r
+ if (req.getParameter(OUTPUT_TYPE) != null) {\r
+ outputType = req.getParameter(OUTPUT_TYPE);\r
}\r
try {\r
this.getRecordsForSQL(map, outputType, resp.getOutputStream(), resp);\r
*/\r
public void rsToJson(ResultSet rs, ServletOutputStream out) throws IOException, SQLException {\r
\r
- String fields[] = {"FEEDNAME", "FEEDID", "FILES_PUBLISHED", "PUBLISH_LENGTH", "FILES_DELIVERED",\r
+ String[] fields = {"FEEDNAME", "FEEDID", "FILES_PUBLISHED", "PUBLISH_LENGTH", "FILES_DELIVERED",\r
"DELIVERED_LENGTH", "SUBSCRIBER_URL", "SUBID", "PUBLISH_TIME", "DELIVERY_TIME",\r
"AverageDelay"};\r
StringBuffer line = new StringBuffer();\r
\r
DB db = null;\r
Connection conn = null;\r
- //PreparedStatement prepareStatement = null;\r
ResultSet resultSet = null;\r
String sqlGoupid = null;\r
StringBuffer feedIds = new StringBuffer();\r
String start_time = null;\r
String end_time = null;\r
String subid = " ";\r
- if (map.get("eventType") != null) {\r
- eventType = (String) map.get("eventType");\r
+ if (map.get(EVENT_TYPE) != null) {\r
+ eventType = map.get(EVENT_TYPE);\r
}\r
- if (map.get("feedids") != null) {\r
- feedids = (String) map.get("feedids");\r
+ if (map.get(FEEDIDS) != null) {\r
+ feedids = map.get(FEEDIDS);\r
}\r
- if (map.get("start_time") != null) {\r
- start_time = (String) map.get("start_time");\r
+ if (map.get(START_TIME) != null) {\r
+ start_time = map.get(START_TIME);\r
}\r
- if (map.get("end_time") != null) {\r
- end_time = (String) map.get("end_time");\r
+ if (map.get(END_TIME) != null) {\r
+ end_time = map.get(END_TIME);\r
}\r
if ("all".equalsIgnoreCase(eventType)) {\r
eventType = "PUB','DEL, EXP, PBF";\r
}\r
- if (map.get("subid") != null) {\r
- subid = (String) map.get("subid");\r
+ if (map.get(SUBID) != null) {\r
+ subid = map.get(SUBID);\r
}\r
\r
eventlogger.info("Generating sql query to get Statistics resultset. ");\r
}\r
\r
private Map<String, String> buildMapFromRequest(HttpServletRequest req) {\r
- Map<String, String> map = new HashMap<String, String>();\r
+ Map<String, String> map = new HashMap<>();\r
String s = req.getParameter("type");\r
if (s != null) {\r
- if (s.equals("pub") || s.equals("del") || s.equals("exp")) {\r
+ if ("pub".equals(s) || "del".equals(s) || "exp".equals(s)) {\r
map.put("type", s);\r
} else {\r
map.put("err", "bad type");\r
map.put("publishSQL", "");\r
map.put("statusSQL", "");\r
map.put("resultSQL", "");\r
- map.put("reasonSQL", "");\r
+ map.put(REASON_SQL, "");\r
\r
s = req.getParameter("publishId");\r
if (s != null) {\r
s = req.getParameter("statusCode");\r
if (s != null) {\r
String sql = null;\r
- if (s.equals("success")) {\r
+ if ("success".equals(s)) {\r
sql = " AND STATUS >= 200 AND STATUS < 300";\r
- } else if (s.equals("redirect")) {\r
+ } else if ("redirect".equals(s)) {\r
sql = " AND STATUS >= 300 AND STATUS < 400";\r
- } else if (s.equals("failure")) {\r
+ } else if ("failure".equals(s)) {\r
sql = " AND STATUS >= 400";\r
} else {\r
try {\r
s = req.getParameter("expiryReason");\r
if (s != null) {\r
map.put("type", "exp");\r
- if (s.equals("notRetryable")) {\r
- map.put("reasonSQL", " AND REASON = 'notRetryable'");\r
- } else if (s.equals("retriesExhausted")) {\r
- map.put("reasonSQL", " AND REASON = 'retriesExhausted'");\r
- } else if (s.equals("diskFull")) {\r
- map.put("reasonSQL", " AND REASON = 'diskFull'");\r
- } else if (s.equals("other")) {\r
- map.put("reasonSQL", " AND REASON = 'other'");\r
+ if ("notRetryable".equals(s)) {\r
+ map.put(REASON_SQL, " AND REASON = 'notRetryable'");\r
+ } else if ("retriesExhausted".equals(s)) {\r
+ map.put(REASON_SQL, " AND REASON = 'retriesExhausted'");\r
+ } else if ("diskFull".equals(s)) {\r
+ map.put(REASON_SQL, " AND REASON = 'diskFull'");\r
+ } else if ("other".equals("other")) {\r
+ map.put(REASON_SQL, " AND REASON = 'other'");\r
} else {\r
map.put("err", "bad expiryReason");\r
return map;\r
}\r
try {\r
// First, look for an RFC 3339 date\r
- String fmt = (s.indexOf('.') > 0) ? fmt2 : fmt1;\r
+ String fmt = (s.indexOf('.') > 0) ? FMT2 : FMT1;\r
SimpleDateFormat sdf = new SimpleDateFormat(fmt);\r
Date d = sdf.parse(s);\r
return d.getTime();\r
}\r
try {\r
// Also allow a long (in ms); useful for testing\r
- long n = Long.parseLong(s);\r
- return n;\r
+ return Long.parseLong(s);\r
} catch (NumberFormatException e) {\r
}\r
intlogger.info("Error parsing time=" + s);\r
DB db = new DB();\r
try (Connection conn = db.getConnection()) {\r
try (ResultSet rs = conn.prepareStatement(filterQuery).executeQuery()) {\r
- if (outputType.equals("csv")) {\r
+ if ("csv".equals(outputType)) {\r
resp.setContentType("application/octet-stream");\r
Date date = new Date();\r
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-YYYY HH:mm:ss");\r
}
int feedid = getIdFromPath(req);
if (feedid < 0) {
- message = "Missing or bad feed number.";
+ message = MISSING_FEED;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.error(elr.toString());
}
Feed feed = Feed.getFeedById(feedid);
if (feed == null || feed.isDeleted()) {
- message = "Missing or bad feed number.";
+ message = MISSING_FEED;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_NOT_FOUND);
eventlogger.error(elr.toString());
}
int feedid = getIdFromPath(req);
if (feedid < 0) {
- message = "Missing or bad feed number.";
+ message = MISSING_FEED;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.error(elr.toString());
}
Feed feed = Feed.getFeedById(feedid);
if (feed == null || feed.isDeleted()) {
- message = "Missing or bad feed number.";
+ message = MISSING_FEED;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_NOT_FOUND);
eventlogger.error(elr.toString());
// check content type is SUB_CONTENT_TYPE, version 1.0
ContentHeader ch = getContentHeader(req);
String ver = ch.getAttribute("version");
- if (!ch.getType().equals(SUB_BASECONTENT_TYPE) || !(ver.equals("1.0") || ver.equals("2.0"))) {
+ if (!ch.getType().equals(SUB_BASECONTENT_TYPE) || !("1.0".equals(ver) || "2.0".equals(ver))) {
intlogger.debug("Content-type is: " + req.getHeader("Content-Type"));
message = "Incorrect content-type";
elr.setMessage(message);
}
JSONObject jo = getJSONfromInput(req);
if (jo == null) {
- message = "Badly formed JSON";
+ message = BAD_JSON;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);
eventlogger.error(elr.toString());
*/
String feedAafInstance = feed.getAafInstance();
String subAafInstance = sub.getAafInstance();
- boolean subAafLegacyEmptyOrNull = (subAafInstance == null || subAafInstance.equals("") || subAafInstance.equalsIgnoreCase("legacy"));
+ boolean subAafLegacyEmptyOrNull = (subAafInstance == null || "".equals(subAafInstance) || "legacy".equalsIgnoreCase(subAafInstance));
// This extra check added to verify AAF feed with AAF subscriber having empty aaf instance check
- if (feedAafInstance == null || feedAafInstance.equals("") || feedAafInstance.equalsIgnoreCase("legacy")) {
+ if (feedAafInstance == null || "".equals(feedAafInstance) || "legacy".equalsIgnoreCase(feedAafInstance)) {
if (subAafLegacyEmptyOrNull) {
AuthorizationResponse aresp = authz.decide(req);
if (!aresp.isAuthorized()) {
- message = "Policy Engine disallows access";
+ message = POLICY_ENGINE;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.error(elr.toString());
if (subAafLegacyEmptyOrNull) {
AuthorizationResponse aresp = authz.decide(req);
if (!aresp.isAuthorized()) {
- message = "Policy Engine disallows access.";
+ message = POLICY_ENGINE;
elr.setMessage(message);
elr.setResult(HttpServletResponse.SC_FORBIDDEN);
eventlogger.error(elr.toString());
private static EELFLogger eelfLogger = EELFManager.getInstance()\r
.getLogger(SubscriptionServlet.class);\r
\r
+\r
+\r
+\r
+\r
/**\r
* DELETE on the <subscriptionUrl> -- delete a subscription. See the <i>Deleting a Subscription</i> section in\r
* the <b>Provisioning API</b> document for details on how this method should be invoked.\r
}\r
String bhdr = req.getHeader(BEHALF_HEADER);\r
if (bhdr == null) {\r
- message = "Missing " + BEHALF_HEADER + " header.";\r
+ message = MISSING_ON_BEHALF;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.error(elr.toString());\r
}\r
int subid = getIdFromPath(req);\r
if (subid < 0) {\r
- message = "Missing or bad subscription number.";\r
+ message = BAD_SUB;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.error(elr.toString());\r
}\r
Subscription sub = Subscription.getSubscriptionById(subid);\r
if (sub == null) {\r
- message = "Missing or bad subscription number.";\r
+ message = BAD_SUB;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_NOT_FOUND);\r
eventlogger.error(elr.toString());\r
* CADI code - check on permissions based on Legacy/AAF users to allow to delete/remove subscription\r
*/\r
String aafInstance = sub.getAafInstance();\r
- if (aafInstance == null || aafInstance.equals("") || aafInstance.equalsIgnoreCase("legacy")) {\r
+ if (aafInstance == null || "".equals(aafInstance) || "legacy".equalsIgnoreCase(aafInstance)) {\r
AuthorizationResponse aresp = authz.decide(req);\r
if (!aresp.isAuthorized()) {\r
- message = "Policy Engine disallows access.";\r
+ message = POLICY_ENGINE;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.error(elr.toString());\r
}\r
String bhdr = req.getHeader(BEHALF_HEADER);\r
if (bhdr == null) {\r
- message = "Missing " + BEHALF_HEADER + " header.";\r
+ message = MISSING_ON_BEHALF;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.error(elr.toString());\r
}\r
int subid = getIdFromPath(req);\r
if (subid < 0) {\r
- message = "Missing or bad subscription number.";\r
+ message = BAD_SUB;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.error(elr.toString());\r
}\r
Subscription sub = Subscription.getSubscriptionById(subid);\r
if (sub == null) {\r
- message = "Missing or bad subscription number.";\r
+ message = BAD_SUB;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_NOT_FOUND);\r
eventlogger.error(elr.toString());\r
// Check with the Authorizer\r
AuthorizationResponse aresp = authz.decide(req);\r
if (!aresp.isAuthorized()) {\r
- message = "Policy Engine disallows access.";\r
+ message = POLICY_ENGINE;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.error(elr.toString());\r
}\r
String bhdr = req.getHeader(BEHALF_HEADER);\r
if (bhdr == null) {\r
- message = "Missing " + BEHALF_HEADER + " header.";\r
+ message = MISSING_ON_BEHALF;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.error(elr.toString());\r
}\r
int subid = getIdFromPath(req);\r
if (subid < 0) {\r
- message = "Missing or bad subscription number.";\r
+ message = BAD_SUB;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.error(elr.toString());\r
}\r
Subscription oldsub = Subscription.getSubscriptionById(subid);\r
if (oldsub == null) {\r
- message = "Missing or bad subscription number.";\r
+ message = BAD_SUB;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_NOT_FOUND);\r
eventlogger.error(elr.toString());\r
// check content type is SUB_CONTENT_TYPE, version 1.0\r
ContentHeader ch = getContentHeader(req);\r
String ver = ch.getAttribute("version");\r
- if (!ch.getType().equals(SUB_BASECONTENT_TYPE) || !(ver.equals("1.0") || ver.equals("2.0"))) {\r
+ if (!ch.getType().equals(SUB_BASECONTENT_TYPE) || !("1.0".equals(ver) || "2.0".equals(ver))) {\r
message = "Incorrect content-type";\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);\r
}\r
JSONObject jo = getJSONfromInput(req);\r
if (jo == null) {\r
- message = "Badly formed JSON";\r
+ message = BAD_JSON;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.error(elr.toString());\r
* CADI code - check on permissions based on Legacy/AAF users to allow to delete/remove subscription\r
*/\r
String aafInstance = sub.getAafInstance();\r
- if (aafInstance == null || aafInstance.equals("") || aafInstance.equalsIgnoreCase("legacy")) {\r
+ if (aafInstance == null || "".equals(aafInstance) || "legacy".equalsIgnoreCase(aafInstance)) {\r
AuthorizationResponse aresp = authz.decide(req);\r
if (!aresp.isAuthorized()) {\r
- message = "Policy Engine disallows access.";\r
+ message = POLICY_ENGINE;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.error(elr.toString());\r
}\r
String bhdr = req.getHeader(BEHALF_HEADER);\r
if (bhdr == null) {\r
- message = "Missing " + BEHALF_HEADER + " header.";\r
+ message = MISSING_ON_BEHALF;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.error(elr.toString());\r
}\r
final int subid = getIdFromPath(req);\r
if (subid < 0 || Subscription.getSubscriptionById(subid) == null) {\r
- message = "Missing or bad subscription number.";\r
+ message = BAD_SUB;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.error(elr.toString());\r
// check content type is SUBCNTRL_CONTENT_TYPE, version 1.0\r
ContentHeader ch = getContentHeader(req);\r
String ver = ch.getAttribute("version");\r
- if (!ch.getType().equals(SUBCNTRL_CONTENT_TYPE) || !ver.equals("1.0")) {\r
+ if (!ch.getType().equals(SUBCNTRL_CONTENT_TYPE) || !"1.0".equals(ver)) {\r
message = "Incorrect content-type";\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE);\r
// Check with the Authorizer\r
AuthorizationResponse aresp = authz.decide(req);\r
if (!aresp.isAuthorized()) {\r
- message = "Policy Engine disallows access.";\r
+ message = POLICY_ENGINE;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_FORBIDDEN);\r
eventlogger.error(elr.toString());\r
}\r
JSONObject jo = getJSONfromInput(req);\r
if (jo == null) {\r
- message = "Badly formed JSON";\r
+ message = BAD_JSON;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.error(elr.toString());\r
eventlogger.info(elr.toString());\r
resp.setStatus(HttpServletResponse.SC_ACCEPTED);\r
} catch (JSONException e) {\r
- message = "Badly formed JSON";\r
+ message = BAD_JSON;\r
elr.setMessage(message);\r
elr.setResult(HttpServletResponse.SC_BAD_REQUEST);\r
eventlogger.error(elr.toString(), e);\r
public class SubscriberNotifyThread extends Thread {\r
\r
public static final String URL_TEMPLATE = "http://%s/internal/resetSubscription/%d";\r
- private List<String> urls = new Vector<String>();\r
+ private List<String> urls = new Vector<>();\r
\r
public SubscriberNotifyThread() {\r
setName("SubscriberNotifyThread");\r
}\r
}\r
\r
+ @Override\r
public void run() {\r
+\r
try {\r
while (!urls.isEmpty()) {\r
String u = urls.remove(0);\r
String url = URLUtilities.generatePeerLogsURL();
//Fixing if only one Prov is configured, not to give exception to fill logs, return empty bitset.
- if (url.equals("")) {
+ if ("".equals(url)) {
return bs;
}
//End of fix.
}
HttpEntity entity = response.getEntity();
String ctype = entity.getContentType().getValue().trim();
- if (!ctype.equals("text/plain")) {
+ if (!"text/plain".equals(ctype)) {
logger.warn("PROV5011: readRemoteLoglist failed, bad content type: " + ctype);
return bs;
}
}
HttpEntity entity = response.getEntity();
String ctype = entity.getContentType().getValue().trim();
- if (!ctype.equals("text/plain")) {
+ if (!"text/plain".equals(ctype)) {
logger.warn("PROV5011: replicateDRLogs failed, bad content type: " + ctype);
return;
}