A new PKIApplication class has been added into /pki web application to define common PKI REST services such as access banner.
https://fedorahosted.org/pki/ticket/2582 -- Endi S. Dewata
>From 0aaf981af04e7f27bd444e8614b256bc37644e8a Mon Sep 17 00:00:00 2001 From: "Endi S. Dewata" <[email protected]> Date: Wed, 15 Feb 2017 17:50:26 +0100 Subject: [PATCH] Added PKIApplication. A new PKIApplication class has been added into /pki web application to define common PKI REST services such as access banner. https://fedorahosted.org/pki/ticket/2582 --- base/server/CMakeLists.txt | 22 ++++++++++ .../org/dogtagpki/server/rest/PKIApplication.java | 50 ++++++++++++++++++++++ base/server/share/webapps/pki/WEB-INF/web.xml | 30 +++++++++++++ 3 files changed, 102 insertions(+) create mode 100644 base/server/cms/src/org/dogtagpki/server/rest/PKIApplication.java diff --git a/base/server/CMakeLists.txt b/base/server/CMakeLists.txt index e0669ca5c0f7d990b8ab8a10f9babf96cf36e4a3..38907e4e313506310b5e63138f6e5e32fde01a27 100644 --- a/base/server/CMakeLists.txt +++ b/base/server/CMakeLists.txt @@ -63,6 +63,21 @@ add_custom_command( COMMAND ${CMAKE_COMMAND} -E create_symlink /usr/share/java/xml-commons-resolver.jar common/lib/xml-commons-resolver.jar ) +# Create /usr/share/pki/server/webapps/pki/WEB-INF/lib. This can be customized for different platforms in RPM spec. + +add_custom_target(pki-server-webapp-lib ALL) + +add_custom_command( + TARGET pki-server-webapp-lib + COMMAND ${CMAKE_COMMAND} -E make_directory webapp/lib + COMMAND ${CMAKE_COMMAND} -E create_symlink /usr/share/java/pki/pki-nsutil.jar webapp/lib/pki-nsutil.jar + COMMAND ${CMAKE_COMMAND} -E create_symlink /usr/share/java/pki/pki-cmsutil.jar webapp/lib/pki-cmsutil.jar + COMMAND ${CMAKE_COMMAND} -E create_symlink /usr/share/java/pki/pki-certsrv.jar webapp/lib/pki-certsrv.jar + COMMAND ${CMAKE_COMMAND} -E create_symlink /usr/share/java/pki/pki-cms.jar webapp/lib/pki-cms.jar + COMMAND ${CMAKE_COMMAND} -E create_symlink /usr/share/java/pki/pki-cmscore.jar webapp/lib/pki-cmscore.jar + COMMAND ${CMAKE_COMMAND} -E create_symlink /usr/share/java/pki/pki-cmsbundle.jar webapp/lib/pki-cmsbundle.jar +) + install( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/common/lib/ @@ -72,6 +87,13 @@ install( install( DIRECTORY + ${CMAKE_CURRENT_BINARY_DIR}/webapp/lib/ + DESTINATION + ${DATA_INSTALL_DIR}/server/webapps/pki/WEB-INF/lib +) + +install( + DIRECTORY man/ DESTINATION ${MAN_INSTALL_DIR} diff --git a/base/server/cms/src/org/dogtagpki/server/rest/PKIApplication.java b/base/server/cms/src/org/dogtagpki/server/rest/PKIApplication.java new file mode 100644 index 0000000000000000000000000000000000000000..d6ac7939c979d6d491f35094b689746558af1363 --- /dev/null +++ b/base/server/cms/src/org/dogtagpki/server/rest/PKIApplication.java @@ -0,0 +1,50 @@ +// --- 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 org.dogtagpki.server.rest; + +import java.util.LinkedHashSet; +import java.util.Set; + +import javax.ws.rs.core.Application; + +public class PKIApplication extends Application { + + private Set<Object> singletons = new LinkedHashSet<Object>(); + private Set<Class<?>> classes = new LinkedHashSet<Class<?>>(); + + public PKIApplication() { + + // services + + // exception mappers + classes.add(PKIExceptionMapper.class); + + // interceptors + singletons.add(new MessageFormatInterceptor()); + } + + public Set<Class<?>> getClasses() { + return classes; + } + + public Set<Object> getSingletons() { + return singletons; + } + +} diff --git a/base/server/share/webapps/pki/WEB-INF/web.xml b/base/server/share/webapps/pki/WEB-INF/web.xml index 9afb41825ed80bbd7c59acc8bdbdfe3edeb16f12..aacdffaee4348a36ee155e3d1b2ee989a9d6d1cf 100644 --- a/base/server/share/webapps/pki/WEB-INF/web.xml +++ b/base/server/share/webapps/pki/WEB-INF/web.xml @@ -5,6 +5,36 @@ <display-name>PKI</display-name> + <listener> + <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class> + </listener> + + <context-param> + <param-name>resteasy.servlet.mapping.prefix</param-name> + <param-value>/rest</param-value> + </context-param> + + <context-param> + <param-name>resteasy.resource.method-interceptors</param-name> + <param-value> + org.jboss.resteasy.core.ResourceMethodSecurityInterceptor + </param-value> + </context-param> + + <servlet> + <servlet-name>Resteasy</servlet-name> + <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class> + <init-param> + <param-name>javax.ws.rs.Application</param-name> + <param-value>org.dogtagpki.server.rest.PKIApplication</param-value> + </init-param> + </servlet> + + <servlet-mapping> + <servlet-name>Resteasy</servlet-name> + <url-pattern>/rest/*</url-pattern> + </servlet-mapping> + <security-constraint> <web-resource-collection> <web-resource-name>PKI UI</web-resource-name> -- 2.9.3
_______________________________________________ Pki-devel mailing list [email protected] https://www.redhat.com/mailman/listinfo/pki-devel
