summaryrefslogtreecommitdiffstats
path: root/base/server/cms/src/com/netscape/cms/servlet/base
diff options
context:
space:
mode:
authorEndi S. Dewata <edewata@redhat.com>2017-01-30 22:32:15 +0100
committerEndi S. Dewata <edewata@redhat.com>2017-02-15 23:26:19 +0100
commita850db6a1dee8ce32513d7d1e6d4eeecac48e8d2 (patch)
tree308a7be416edcc49130340448fa8d4b0e7899aab /base/server/cms/src/com/netscape/cms/servlet/base
parentbc4efe021439ae064621aa511a446de2f0b421fb (diff)
downloadpki-a850db6a1dee8ce32513d7d1e6d4eeecac48e8d2.tar.gz
pki-a850db6a1dee8ce32513d7d1e6d4eeecac48e8d2.tar.xz
pki-a850db6a1dee8ce32513d7d1e6d4eeecac48e8d2.zip
Refactored PKIService class.
The subsystem-based methods and fields in PKIService class have been moved into a new SubsystemService class to allow creating more generic non-subsystem-based services. The classes that use these methods and fields have been updated accordingly.
Diffstat (limited to 'base/server/cms/src/com/netscape/cms/servlet/base')
-rw-r--r--base/server/cms/src/com/netscape/cms/servlet/base/PKIService.java86
-rw-r--r--base/server/cms/src/com/netscape/cms/servlet/base/SubsystemService.java105
2 files changed, 105 insertions, 86 deletions
diff --git a/base/server/cms/src/com/netscape/cms/servlet/base/PKIService.java b/base/server/cms/src/com/netscape/cms/servlet/base/PKIService.java
index d8d9cee5d..3ed4b91b7 100644
--- a/base/server/cms/src/com/netscape/cms/servlet/base/PKIService.java
+++ b/base/server/cms/src/com/netscape/cms/servlet/base/PKIService.java
@@ -17,17 +17,13 @@
// --- END COPYRIGHT BLOCK ---
package com.netscape.cms.servlet.base;
-import java.io.File;
import java.lang.reflect.Method;
import java.net.URI;
-import java.net.URL;
-import java.net.URLClassLoader;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
-import java.util.ResourceBundle;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
@@ -42,11 +38,7 @@ import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;
import javax.ws.rs.core.UriInfo;
-import com.netscape.certsrv.apps.CMS;
-import com.netscape.certsrv.authorization.IAuthzSubsystem;
import com.netscape.certsrv.base.PKIException;
-import com.netscape.certsrv.logging.IAuditor;
-import com.netscape.certsrv.logging.ILogger;
/**
* Base class for CMS RESTful resources
@@ -86,45 +78,10 @@ public class PKIService {
@Context
protected ServletContext servletContext;
- protected IAuthzSubsystem authz = (IAuthzSubsystem) CMS.getSubsystem(CMS.SUBSYSTEM_AUTHZ);
-
- public ILogger logger = CMS.getLogger();
- public IAuditor auditor = CMS.getAuditor();
-
public String getInstanceDir() {
return System.getProperty("catalina.base");
}
- public String getSubsystemName() {
- // get web application path: /<subsystem>
- String path = servletContext.getContextPath();
-
- // get subsystem name by removing the / prefix from the path
- return path.startsWith("/") ? path.substring(1) : path;
- }
-
- public String getSubsystemConfDir() {
- return getInstanceDir() + File.separator + getSubsystemName() + File.separator + "conf";
- }
-
- public String getSharedSubsystemConfDir() {
- return File.separator + "usr" + File.separator + "share" + File.separator + "pki" +
- File.separator + getSubsystemName() + File.separator + "conf";
- }
-
- public ResourceBundle getResourceBundle(String name) throws Exception {
-
- // Look in <instance>/<subsystem>/conf first,
- // then fallback to /usr/share/pki/<subsystem>/conf.
- URL[] urls = {
- new File(getSubsystemConfDir()).toURI().toURL(),
- new File(getSharedSubsystemConfDir()).toURI().toURL()
- };
-
- ClassLoader loader = new URLClassLoader(urls);
- return ResourceBundle.getBundle(name, servletRequest.getLocale(), loader);
- }
-
public static MediaType resolveFormat(MediaType format) {
if (format == null) return null;
@@ -234,49 +191,6 @@ public class PKIService {
return locales.get(0);
}
- public String getUserMessage(String messageId, HttpHeaders headers, String... params) {
- return CMS.getUserMessage(getLocale(headers), messageId, params);
- }
-
- public void log(int source, int level, String message) {
-
- if (logger == null) return;
-
- logger.log(ILogger.EV_SYSTEM,
- null,
- source,
- level,
- getClass().getSimpleName() + ": " + message);
- }
-
- public void audit(String message, String scope, String type, String id, Map<String, String> params, String status) {
-
- if (auditor == null) return;
-
- String auditMessage = CMS.getLogMessage(
- message,
- auditor.getSubjectID(),
- status,
- auditor.getParamString(scope, type, id, params));
-
- auditor.log(auditMessage);
- }
-
- public void auditConfigTokenGeneral(String status, String service, Map<String, String> params, String info) {
- CMS.debug("PKIService.auditConfigTokenGeneral begins");
-
- String msg = CMS.getLogMessage(
- "LOGGING_SIGNED_AUDIT_CONFIG_TOKEN_GENERAL_5",
- servletRequest.getUserPrincipal().getName(),
- status,
- service,
- auditor.getParamString(null, params),
- info);
- auditor.log(msg);
-
- CMS.debug("PKIService.auditConfigTokenGeneral ends");
- }
-
/**
* Get the values of the fields annotated with @FormParam.
*/
diff --git a/base/server/cms/src/com/netscape/cms/servlet/base/SubsystemService.java b/base/server/cms/src/com/netscape/cms/servlet/base/SubsystemService.java
new file mode 100644
index 000000000..48c985c76
--- /dev/null
+++ b/base/server/cms/src/com/netscape/cms/servlet/base/SubsystemService.java
@@ -0,0 +1,105 @@
+// --- BEGIN COPYRIGHT BLOCK ---
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with this program; if not, write to the Free Software Foundation, Inc.,
+// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+//
+// (C) 2017 Red Hat, Inc.
+// All rights reserved.
+// --- END COPYRIGHT BLOCK ---
+
+package com.netscape.cms.servlet.base;
+
+import java.io.File;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.Map;
+import java.util.ResourceBundle;
+
+import javax.ws.rs.core.HttpHeaders;
+
+import com.netscape.certsrv.apps.CMS;
+import com.netscape.certsrv.authorization.IAuthzSubsystem;
+import com.netscape.certsrv.logging.IAuditor;
+import com.netscape.certsrv.logging.ILogger;
+
+public class SubsystemService extends PKIService {
+
+ protected IAuthzSubsystem authz = (IAuthzSubsystem) CMS.getSubsystem(CMS.SUBSYSTEM_AUTHZ);
+ protected IAuditor auditor = CMS.getAuditor();
+ protected ILogger logger = CMS.getLogger();
+
+ public String getSubsystemName() {
+ // get web application path: /<subsystem>
+ String path = servletContext.getContextPath();
+
+ // get subsystem name by removing the / prefix from the path
+ return path.startsWith("/") ? path.substring(1) : path;
+ }
+
+ public String getSubsystemConfDir() {
+ return getInstanceDir() + File.separator + getSubsystemName() + File.separator + "conf";
+ }
+
+ public String getSharedSubsystemConfDir() {
+ return File.separator + "usr" + File.separator + "share" + File.separator + "pki" +
+ File.separator + getSubsystemName() + File.separator + "conf";
+ }
+
+ public ResourceBundle getResourceBundle(String name) throws Exception {
+
+ // Look in <instance>/<subsystem>/conf first,
+ // then fallback to /usr/share/pki/<subsystem>/conf.
+ URL[] urls = {
+ new File(getSubsystemConfDir()).toURI().toURL(),
+ new File(getSharedSubsystemConfDir()).toURI().toURL()
+ };
+
+ ClassLoader loader = new URLClassLoader(urls);
+ return ResourceBundle.getBundle(name, servletRequest.getLocale(), loader);
+ }
+
+ public String getUserMessage(String messageId, HttpHeaders headers, String... params) {
+ return CMS.getUserMessage(getLocale(headers), messageId, params);
+ }
+
+ public void log(int source, int level, String message) {
+
+ logger.log(ILogger.EV_SYSTEM,
+ null,
+ source,
+ level,
+ getClass().getSimpleName() + ": " + message);
+ }
+
+ public void audit(String message, String scope, String type, String id, Map<String, String> params, String status) {
+
+ String auditMessage = CMS.getLogMessage(
+ message,
+ auditor.getSubjectID(),
+ status,
+ auditor.getParamString(scope, type, id, params));
+
+ auditor.log(auditMessage);
+ }
+
+ public void auditConfigTokenGeneral(String status, String service, Map<String, String> params, String info) {
+
+ String msg = CMS.getLogMessage(
+ "LOGGING_SIGNED_AUDIT_CONFIG_TOKEN_GENERAL_5",
+ servletRequest.getUserPrincipal().getName(),
+ status,
+ service,
+ auditor.getParamString(null, params),
+ info);
+ auditor.log(msg);
+ }
+}