summaryrefslogtreecommitdiffstats
path: root/base/server
diff options
context:
space:
mode:
authorEndi S. Dewata <edewata@redhat.com>2017-02-15 17:50:26 +0100
committerEndi S. Dewata <edewata@redhat.com>2017-02-23 22:46:17 +0100
commit8bd37a1ff3fd14248e65b86ed35f5f6d12e4468f (patch)
tree4322b346d79708efa97954b5c56e8beb64e0ee6a /base/server
parentf5293bac716a11721ab601ff027ce141230fd501 (diff)
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
Diffstat (limited to 'base/server')
-rw-r--r--base/server/CMakeLists.txt22
-rw-r--r--base/server/cms/src/org/dogtagpki/server/rest/PKIApplication.java50
-rw-r--r--base/server/share/webapps/pki/WEB-INF/web.xml30
3 files changed, 102 insertions, 0 deletions
diff --git a/base/server/CMakeLists.txt b/base/server/CMakeLists.txt
index e0669ca5c..d4aa94a9b 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 /usr/bin/ln -sf /usr/share/java/pki/pki-nsutil.jar ${CMAKE_CURRENT_BINARY_DIR}/webapp/lib/pki-nsutil.jar
+ COMMAND /usr/bin/ln -sf /usr/share/java/pki/pki-cmsutil.jar ${CMAKE_CURRENT_BINARY_DIR}/webapp/lib/pki-cmsutil.jar
+ COMMAND /usr/bin/ln -sf /usr/share/java/pki/pki-certsrv.jar ${CMAKE_CURRENT_BINARY_DIR}/webapp/lib/pki-certsrv.jar
+ COMMAND /usr/bin/ln -sf /usr/share/java/pki/pki-cms.jar ${CMAKE_CURRENT_BINARY_DIR}/webapp/lib/pki-cms.jar
+ COMMAND /usr/bin/ln -sf /usr/share/java/pki/pki-cmscore.jar ${CMAKE_CURRENT_BINARY_DIR}/webapp/lib/pki-cmscore.jar
+ COMMAND /usr/bin/ln -sf /usr/share/java/pki/pki-cmsbundle.jar ${CMAKE_CURRENT_BINARY_DIR}/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 000000000..d6ac7939c
--- /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 9afb41825..aacdffaee 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>