diff options
author | Endi S. Dewata <edewata@redhat.com> | 2017-01-30 22:32:15 +0100 |
---|---|---|
committer | Endi S. Dewata <edewata@redhat.com> | 2017-02-15 23:26:19 +0100 |
commit | a850db6a1dee8ce32513d7d1e6d4eeecac48e8d2 (patch) | |
tree | 308a7be416edcc49130340448fa8d4b0e7899aab /base/server/cms/src/com/netscape/cms/servlet/base | |
parent | bc4efe021439ae064621aa511a446de2f0b421fb (diff) | |
download | pki-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.java | 86 | ||||
-rw-r--r-- | base/server/cms/src/com/netscape/cms/servlet/base/SubsystemService.java | 105 |
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); + } +} |