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 | |
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')
15 files changed, 132 insertions, 113 deletions
diff --git a/base/ca/src/org/dogtagpki/server/ca/rest/AuthorityService.java b/base/ca/src/org/dogtagpki/server/ca/rest/AuthorityService.java index 18542d379..c734fbf46 100644 --- a/base/ca/src/org/dogtagpki/server/ca/rest/AuthorityService.java +++ b/base/ca/src/org/dogtagpki/server/ca/rest/AuthorityService.java @@ -61,13 +61,13 @@ import com.netscape.certsrv.ca.IssuerUnavailableException; import com.netscape.certsrv.common.OpDef; import com.netscape.certsrv.common.ScopeDef; import com.netscape.certsrv.logging.ILogger; -import com.netscape.cms.servlet.base.PKIService; +import com.netscape.cms.servlet.base.SubsystemService; import com.netscape.cmsutil.util.Utils; /** * @author ftweedal */ -public class AuthorityService extends PKIService implements AuthorityResource { +public class AuthorityService extends SubsystemService implements AuthorityResource { ICertificateAuthority hostCA; diff --git a/base/ca/src/org/dogtagpki/server/ca/rest/ProfileService.java b/base/ca/src/org/dogtagpki/server/ca/rest/ProfileService.java index 41d009b9d..ba648a463 100644 --- a/base/ca/src/org/dogtagpki/server/ca/rest/ProfileService.java +++ b/base/ca/src/org/dogtagpki/server/ca/rest/ProfileService.java @@ -78,17 +78,17 @@ import com.netscape.certsrv.profile.ProfileResource; import com.netscape.certsrv.property.EPropertyException; import com.netscape.certsrv.registry.IPluginInfo; import com.netscape.certsrv.registry.IPluginRegistry; -import com.netscape.cms.servlet.base.PKIService; +import com.netscape.cms.servlet.base.SubsystemService; import com.netscape.cms.servlet.profile.PolicyConstraintFactory; import com.netscape.cms.servlet.profile.PolicyDefaultFactory; -import com.netscape.cmscore.base.SimpleProperties; import com.netscape.cmscore.base.PropConfigStore; +import com.netscape.cmscore.base.SimpleProperties; /** * @author alee * */ -public class ProfileService extends PKIService implements ProfileResource { +public class ProfileService extends SubsystemService implements ProfileResource { @Context private UriInfo uriInfo; diff --git a/base/kra/src/org/dogtagpki/server/kra/rest/KeyRequestService.java b/base/kra/src/org/dogtagpki/server/kra/rest/KeyRequestService.java index f6918509a..4138b3896 100644 --- a/base/kra/src/org/dogtagpki/server/kra/rest/KeyRequestService.java +++ b/base/kra/src/org/dogtagpki/server/kra/rest/KeyRequestService.java @@ -57,7 +57,7 @@ import com.netscape.certsrv.logging.ILogger; import com.netscape.certsrv.request.RequestId; import com.netscape.certsrv.request.RequestNotFoundException; import com.netscape.cms.realm.PKIPrincipal; -import com.netscape.cms.servlet.base.PKIService; +import com.netscape.cms.servlet.base.SubsystemService; import com.netscape.cms.servlet.key.KeyRequestDAO; import com.netscape.cmsutil.ldap.LDAPUtil; @@ -65,7 +65,7 @@ import com.netscape.cmsutil.ldap.LDAPUtil; * @author alee * */ -public class KeyRequestService extends PKIService implements KeyRequestResource { +public class KeyRequestService extends SubsystemService implements KeyRequestResource { @Context private UriInfo uriInfo; diff --git a/base/kra/src/org/dogtagpki/server/kra/rest/KeyService.java b/base/kra/src/org/dogtagpki/server/kra/rest/KeyService.java index d2c24c888..a8b895fec 100644 --- a/base/kra/src/org/dogtagpki/server/kra/rest/KeyService.java +++ b/base/kra/src/org/dogtagpki/server/kra/rest/KeyService.java @@ -71,7 +71,7 @@ import com.netscape.certsrv.request.IRequestQueue; import com.netscape.certsrv.request.RequestId; import com.netscape.certsrv.request.RequestStatus; import com.netscape.cms.realm.PKIPrincipal; -import com.netscape.cms.servlet.base.PKIService; +import com.netscape.cms.servlet.base.SubsystemService; import com.netscape.cms.servlet.key.KeyRequestDAO; import com.netscape.cmsutil.ldap.LDAPUtil; import com.netscape.cmsutil.util.Utils; @@ -80,7 +80,7 @@ import com.netscape.cmsutil.util.Utils; * @author alee * */ -public class KeyService extends PKIService implements KeyResource { +public class KeyService extends SubsystemService implements KeyResource { @Context private UriInfo uriInfo; 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); + } +} diff --git a/base/server/cms/src/org/dogtagpki/server/rest/AuditService.java b/base/server/cms/src/org/dogtagpki/server/rest/AuditService.java index 273625e81..76a5396c2 100644 --- a/base/server/cms/src/org/dogtagpki/server/rest/AuditService.java +++ b/base/server/cms/src/org/dogtagpki/server/rest/AuditService.java @@ -44,12 +44,12 @@ import com.netscape.certsrv.base.PKIException; import com.netscape.certsrv.logging.AuditConfig; import com.netscape.certsrv.logging.AuditResource; import com.netscape.certsrv.logging.ILogger; -import com.netscape.cms.servlet.base.PKIService; +import com.netscape.cms.servlet.base.SubsystemService; /** * @author Endi S. Dewata */ -public class AuditService extends PKIService implements AuditResource { +public class AuditService extends SubsystemService implements AuditResource { @Context private UriInfo uriInfo; diff --git a/base/server/cms/src/org/dogtagpki/server/rest/GroupService.java b/base/server/cms/src/org/dogtagpki/server/rest/GroupService.java index 991a8b155..9d127c8db 100644 --- a/base/server/cms/src/org/dogtagpki/server/rest/GroupService.java +++ b/base/server/cms/src/org/dogtagpki/server/rest/GroupService.java @@ -51,12 +51,12 @@ import com.netscape.certsrv.usrgrp.IGroup; import com.netscape.certsrv.usrgrp.IGroupConstants; import com.netscape.certsrv.usrgrp.IUGSubsystem; import com.netscape.cms.servlet.admin.GroupMemberProcessor; -import com.netscape.cms.servlet.base.PKIService; +import com.netscape.cms.servlet.base.SubsystemService; /** * @author Endi S. Dewata */ -public class GroupService extends PKIService implements GroupResource { +public class GroupService extends SubsystemService implements GroupResource { @Context private UriInfo uriInfo; diff --git a/base/server/cms/src/org/dogtagpki/server/rest/UserService.java b/base/server/cms/src/org/dogtagpki/server/rest/UserService.java index 1f8e9fa31..529c47219 100644 --- a/base/server/cms/src/org/dogtagpki/server/rest/UserService.java +++ b/base/server/cms/src/org/dogtagpki/server/rest/UserService.java @@ -72,7 +72,7 @@ import com.netscape.certsrv.usrgrp.IGroup; import com.netscape.certsrv.usrgrp.IUGSubsystem; import com.netscape.certsrv.usrgrp.IUser; import com.netscape.cms.servlet.admin.GroupMemberProcessor; -import com.netscape.cms.servlet.base.PKIService; +import com.netscape.cms.servlet.base.SubsystemService; import com.netscape.cmsutil.util.Cert; import com.netscape.cmsutil.util.Utils; @@ -82,7 +82,7 @@ import netscape.security.x509.X509CertImpl; /** * @author Endi S. Dewata */ -public class UserService extends PKIService implements UserResource { +public class UserService extends SubsystemService implements UserResource { @Context private UriInfo uriInfo; diff --git a/base/tps/src/org/dogtagpki/server/tps/config/ConfigService.java b/base/tps/src/org/dogtagpki/server/tps/config/ConfigService.java index 9e1caaa86..8309a2f32 100644 --- a/base/tps/src/org/dogtagpki/server/tps/config/ConfigService.java +++ b/base/tps/src/org/dogtagpki/server/tps/config/ConfigService.java @@ -38,12 +38,12 @@ import com.netscape.certsrv.base.PKIException; import com.netscape.certsrv.logging.ILogger; import com.netscape.certsrv.tps.config.ConfigData; import com.netscape.certsrv.tps.config.ConfigResource; -import com.netscape.cms.servlet.base.PKIService; +import com.netscape.cms.servlet.base.SubsystemService; /** * @author Endi S. Dewata */ -public class ConfigService extends PKIService implements ConfigResource { +public class ConfigService extends SubsystemService implements ConfigResource { @Context private UriInfo uriInfo; diff --git a/base/tps/src/org/dogtagpki/server/tps/rest/AuthenticatorService.java b/base/tps/src/org/dogtagpki/server/tps/rest/AuthenticatorService.java index 65c159344..424cd1490 100644 --- a/base/tps/src/org/dogtagpki/server/tps/rest/AuthenticatorService.java +++ b/base/tps/src/org/dogtagpki/server/tps/rest/AuthenticatorService.java @@ -48,12 +48,12 @@ import com.netscape.certsrv.logging.ILogger; import com.netscape.certsrv.tps.authenticator.AuthenticatorCollection; import com.netscape.certsrv.tps.authenticator.AuthenticatorData; import com.netscape.certsrv.tps.authenticator.AuthenticatorResource; -import com.netscape.cms.servlet.base.PKIService; +import com.netscape.cms.servlet.base.SubsystemService; /** * @author Endi S. Dewata */ -public class AuthenticatorService extends PKIService implements AuthenticatorResource { +public class AuthenticatorService extends SubsystemService implements AuthenticatorResource { @Context private UriInfo uriInfo; diff --git a/base/tps/src/org/dogtagpki/server/tps/rest/ConnectorService.java b/base/tps/src/org/dogtagpki/server/tps/rest/ConnectorService.java index 769f00f57..c789f1472 100644 --- a/base/tps/src/org/dogtagpki/server/tps/rest/ConnectorService.java +++ b/base/tps/src/org/dogtagpki/server/tps/rest/ConnectorService.java @@ -48,12 +48,12 @@ import com.netscape.certsrv.logging.ILogger; import com.netscape.certsrv.tps.connector.ConnectorCollection; import com.netscape.certsrv.tps.connector.ConnectorData; import com.netscape.certsrv.tps.connector.ConnectorResource; -import com.netscape.cms.servlet.base.PKIService; +import com.netscape.cms.servlet.base.SubsystemService; /** * @author Endi S. Dewata */ -public class ConnectorService extends PKIService implements ConnectorResource { +public class ConnectorService extends SubsystemService implements ConnectorResource { @Context private UriInfo uriInfo; diff --git a/base/tps/src/org/dogtagpki/server/tps/rest/ProfileMappingService.java b/base/tps/src/org/dogtagpki/server/tps/rest/ProfileMappingService.java index 84c171f57..eca180358 100644 --- a/base/tps/src/org/dogtagpki/server/tps/rest/ProfileMappingService.java +++ b/base/tps/src/org/dogtagpki/server/tps/rest/ProfileMappingService.java @@ -48,12 +48,12 @@ import com.netscape.certsrv.logging.ILogger; import com.netscape.certsrv.tps.profile.ProfileMappingCollection; import com.netscape.certsrv.tps.profile.ProfileMappingData; import com.netscape.certsrv.tps.profile.ProfileMappingResource; -import com.netscape.cms.servlet.base.PKIService; +import com.netscape.cms.servlet.base.SubsystemService; /** * @author Endi S. Dewata */ -public class ProfileMappingService extends PKIService implements ProfileMappingResource { +public class ProfileMappingService extends SubsystemService implements ProfileMappingResource { @Context private UriInfo uriInfo; diff --git a/base/tps/src/org/dogtagpki/server/tps/rest/ProfileService.java b/base/tps/src/org/dogtagpki/server/tps/rest/ProfileService.java index bbcbfae32..b7691343e 100644 --- a/base/tps/src/org/dogtagpki/server/tps/rest/ProfileService.java +++ b/base/tps/src/org/dogtagpki/server/tps/rest/ProfileService.java @@ -48,12 +48,12 @@ import com.netscape.certsrv.logging.ILogger; import com.netscape.certsrv.tps.profile.ProfileCollection; import com.netscape.certsrv.tps.profile.ProfileData; import com.netscape.certsrv.tps.profile.ProfileResource; -import com.netscape.cms.servlet.base.PKIService; +import com.netscape.cms.servlet.base.SubsystemService; /** * @author Endi S. Dewata */ -public class ProfileService extends PKIService implements ProfileResource { +public class ProfileService extends SubsystemService implements ProfileResource { @Context private UriInfo uriInfo; diff --git a/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java b/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java index 920c5026b..a624e2aeb 100644 --- a/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java +++ b/base/tps/src/org/dogtagpki/server/tps/rest/TokenService.java @@ -55,14 +55,14 @@ import com.netscape.certsrv.tps.token.TokenData; import com.netscape.certsrv.tps.token.TokenData.TokenStatusData; import com.netscape.certsrv.tps.token.TokenResource; import com.netscape.certsrv.tps.token.TokenStatus; -import com.netscape.cms.servlet.base.PKIService; +import com.netscape.cms.servlet.base.SubsystemService; import netscape.ldap.LDAPException; /** * @author Endi S. Dewata */ -public class TokenService extends PKIService implements TokenResource { +public class TokenService extends SubsystemService implements TokenResource { @Context private UriInfo uriInfo; |