Merge branch 'master' into jetty-embedded
diff --git a/kerby-kdc/pom.xml b/kerby-kdc/pom.xml
index ed222ec..97d50ab6 100644
--- a/kerby-kdc/pom.xml
+++ b/kerby-kdc/pom.xml
@@ -26,6 +26,11 @@
<description>Kerby KDC Server</description>
<packaging>jar</packaging>
+ <properties>
+ <jetty.version>9.3.6.v20151106</jetty.version>
+ <jersey.version>2.22.1</jersey.version>
+ </properties>
+
<dependencies>
<dependency>
<groupId>org.apache.kerby</groupId>
@@ -62,5 +67,42 @@
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
+
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-servlet</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-util</artifactId>
+ <version>${jetty.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.glassfish.jersey.core</groupId>
+ <artifactId>jersey-server</artifactId>
+ <version>${jersey.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.jersey.containers</groupId>
+ <artifactId>jersey-container-servlet-core</artifactId>
+ <version>${jersey.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.jersey.containers</groupId>
+ <artifactId>jersey-container-jetty-http</artifactId>
+ <version>${jersey.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.glassfish.jersey.media</groupId>
+ <artifactId>jersey-media-moxy</artifactId>
+ <version>${jersey.version}</version>
+ </dependency>
</dependencies>
</project>
diff --git a/kerby-kdc/src/main/java/org/apache/kerby/kerberos/kdc/KerbyKdcServer.java b/kerby-kdc/src/main/java/org/apache/kerby/kerberos/kdc/KerbyKdcServer.java
index ac789b5..bbc6951 100644
--- a/kerby-kdc/src/main/java/org/apache/kerby/kerberos/kdc/KerbyKdcServer.java
+++ b/kerby-kdc/src/main/java/org/apache/kerby/kerberos/kdc/KerbyKdcServer.java
@@ -20,11 +20,17 @@
package org.apache.kerby.kerberos.kdc;
import org.apache.kerby.kerberos.kdc.impl.NettyKdcServerImpl;
+import org.apache.kerby.kerberos.kdc.jetty.services.HelloJetty;
import org.apache.kerby.kerberos.kerb.KrbException;
import org.apache.kerby.kerberos.kerb.admin.Kadmin;
import org.apache.kerby.kerberos.kerb.server.KdcServer;
import org.apache.kerby.util.OSUtil;
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.servlet.ServletHolder;
+import org.glassfish.jersey.servlet.ServletContainer;
+
import java.io.File;
/**
@@ -89,5 +95,28 @@
server.start();
System.out.println("KDC started.");
+
+ initJettyServer();
+ }
+
+ private static void initJettyServer() {
+ ServletHolder servletHolder = new ServletHolder(ServletContainer.class);
+ servletHolder.setInitParameter("jersey.config.server.provider.classnames",
+ HelloJetty.class.getCanonicalName());
+
+ Server jettyServer = new Server(8080);
+ ServletContextHandler context = new ServletContextHandler(jettyServer, "/", ServletContextHandler.SESSIONS);
+ context.addServlet(servletHolder, "/*");
+
+ try {
+ jettyServer.start();
+ jettyServer.join();
+ System.out.println("Jetty server started.");
+ } catch (Exception e) {
+ System.out.println("Errors occurred when start jetty server: " + e.getMessage());
+ System.exit(5);
+ } finally {
+ jettyServer.destroy();
+ }
}
}
\ No newline at end of file
diff --git a/kerby-kdc/src/main/java/org/apache/kerby/kerberos/kdc/jetty/services/HelloJetty.java b/kerby-kdc/src/main/java/org/apache/kerby/kerberos/kdc/jetty/services/HelloJetty.java
new file mode 100644
index 0000000..f70f18e
--- /dev/null
+++ b/kerby-kdc/src/main/java/org/apache/kerby/kerberos/kdc/jetty/services/HelloJetty.java
@@ -0,0 +1,36 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p/>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p/>
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.kerby.kerberos.kdc.jetty.services;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+@Path("/hello")
+public class HelloJetty {
+
+ @GET
+ @Produces(MediaType.TEXT_PLAIN)
+ public String getHello() {
+ return "Hello Kerby KDC!";
+ }
+
+
+}