From 20f9baaafb69d3cb3cc5fddbd1cc9d181492fed3 Mon Sep 17 00:00:00 2001 From: Madhu Venugopal Date: Thu, 21 Aug 2014 22:39:00 -0700 Subject: [PATCH] Resolving Karaf Northbound API issues with a few related fixes 1. Upgrading Apache Tomcat Patch version from 7.0.32 to 7.0.53 (https://git.opendaylight.org/gerrit/10110) 2. No impact to the legacy distribution. 3. Fixing the Jackson - Jersey binding by fixing the Classloader confusion where multiple bundles exports javax.ws.rs 4. Adding a temporary hack for the Http authentication by adding a karaf-tomcat-security bundle The existing security bundle is rift with dependencies into a lot of deeply chained AD-SAL NSF and needs a lot of pruning. Hence in order to make progress in Karaf testing and development, Have bypassed it temporarily and we will fix it soon. Change-Id: I132002c0b4e389f50968c7fd08521157900183d3 Signed-off-by: Madhu Venugopal --- features/base/src/main/resources/features.xml | 25 +++++----- opendaylight/commons/opendaylight/pom.xml | 23 +++++++-- .../resources/configuration/tomcat-server.xml | 3 +- opendaylight/karaf-tomcat-security/pom.xml | 49 +++++++++++++++++++ .../karafsecurity/ControllerCustomRealm.java | 42 ++++++++++++++++ pom.xml | 1 + 6 files changed, 124 insertions(+), 19 deletions(-) create mode 100644 opendaylight/karaf-tomcat-security/pom.xml create mode 100644 opendaylight/karaf-tomcat-security/src/main/java/org/opendaylight/controller/karafsecurity/ControllerCustomRealm.java diff --git a/features/base/src/main/resources/features.xml b/features/base/src/main/resources/features.xml index b9107b9f62..c335600e21 100644 --- a/features/base/src/main/resources/features.xml +++ b/features/base/src/main/resources/features.xml @@ -13,6 +13,7 @@ base-tomcat base-netty base-jersey + base-jackson base-spring-security @@ -44,7 +45,6 @@ mvn:com.sun.jersey/jersey-core/${jersey.version} mvn:com.sun.jersey/jersey-client/${jersey.version} mvn:com.sun.jersey/jersey-servlet/${jersey.version} - mvn:javax.ws.rs/javax.ws.rs-api/2.0 http @@ -110,20 +110,21 @@ mvn:orbit/javax.servlet.jsp.jstl/1.2.0.v201105211821 mvn:orbit/javax.servlet.jsp.jstl.impl/1.2.0.v201210211230 - + base-gemini-web base-eclipselink-persistence - mvn:orbit/org.apache.catalina/7.0.32.v201211201336 + mvn:orbit/org.apache.catalina/${commons.karaf.catalina} mvn:geminiweb/org.eclipse.gemini.web.tomcat/${geminiweb.version} - mvn:orbit/org.apache.catalina.ha/7.0.32.v201211201952 - mvn:orbit/org.apache.catalina.tribes/7.0.32.v201211201952 - mvn:orbit/org.apache.coyote/7.0.32.v201211201952 - mvn:orbit/org.apache.el/7.0.32.v201211081135 - mvn:orbit/org.apache.jasper/7.0.32.v201211201952 - mvn:orbit/org.apache.juli.extras/7.0.32.v201211081135 - mvn:orbit/org.apache.tomcat.api/7.0.32.v201211081135 - mvn:orbit/org.apache.tomcat.util/7.0.32.v201211201952 - wrap:mvn:virgomirror/org.eclipse.jdt.core.compiler.batch/3.8.0.I20120518-2145 + mvn:orbit/org.apache.catalina.ha/${commons.karaf.catalina.ha} + mvn:orbit/org.apache.catalina.tribes/${commons.karaf.catalina.tribes} + mvn:orbit/org.apache.coyote/${commons.karaf.coyote} + mvn:orbit/org.apache.el/${commons.karaf.el} + mvn:orbit/org.apache.jasper/${commons.karaf.jasper} + mvn:orbit/org.apache.juli.extras/${commons.karaf.juli.version} + mvn:orbit/org.apache.tomcat.api/${commons.karaf.tomcat.api} + mvn:orbit/org.apache.tomcat.util/${commons.karaf.tomcat.util} + mvn:org.opendaylight.controller/karaf-tomcat-security/${karaf.security.version} + wrap:mvn:virgomirror/org.eclipse.jdt.core.compiler.batch/${eclipse.jdt.core.compiler.batch.version} mvn:org.ow2.asm/asm-all/${asm.version} diff --git a/opendaylight/commons/opendaylight/pom.xml b/opendaylight/commons/opendaylight/pom.xml index 1064afd82d..5ead566d9d 100644 --- a/opendaylight/commons/opendaylight/pom.xml +++ b/opendaylight/commons/opendaylight/pom.xml @@ -42,14 +42,27 @@ 7.0.32.v201211201336 7.0.32.v201211201952 7.0.32.v201211201952 - 0.0.3-SNAPSHOT 7.0.32.v201211201952 7.0.32.v201211081135 + 7.0.32.v201211201952 + 7.0.32.v201211081135 + 7.0.32.v201211081135 + 7.0.32.v201211201952 + + 7.0.53.v201406061610 + 7.0.53.v201406070630 + 7.0.53.v201406070630 + 7.0.53.v201406070630 + 7.0.53.v201406060720 + 7.0.53.v201406070630 + 7.0.53.v201406060720 + 7.0.53.v201406060720 + 7.0.53.v201406070630 + + 0.0.3-SNAPSHOT 1.2.2 0.1.2-SNAPSHOT 2.4 - 7.0.32.v201211201952 - 7.0.32.v201211081135 3.1 0.0.2-SNAPSHOT 3.0.1 @@ -57,8 +70,6 @@ 0.5.2-SNAPSHOT 1.4.2-SNAPSHOT 1.0.2-SNAPSHOT - 7.0.32.v201211081135 - 7.0.32.v201211201952 2.3.2 0.1.2-SNAPSHOT 0.5.2-SNAPSHOT @@ -82,6 +93,7 @@ 0.4.2-SNAPSHOT 1.1.0-SNAPSHOT 2.5.0 + 3.8.0.I20120518-2145 1.3.1 1.28 @@ -162,6 +174,7 @@ 2.10 4 0.4.2-SNAPSHOT + 0.4.2-SNAPSHOT 1.2.4 dav:http://nexus.opendaylight.org/content/sites/site ${user.name}-private-view diff --git a/opendaylight/distribution/opendaylight-karaf-resources/src/main/resources/configuration/tomcat-server.xml b/opendaylight/distribution/opendaylight-karaf-resources/src/main/resources/configuration/tomcat-server.xml index f6f923e0d2..73a46f0f8a 100644 --- a/opendaylight/distribution/opendaylight-karaf-resources/src/main/resources/configuration/tomcat-server.xml +++ b/opendaylight/distribution/opendaylight-karaf-resources/src/main/resources/configuration/tomcat-server.xml @@ -48,9 +48,8 @@ - + + 4.0.0 + + org.opendaylight.controller + commons.opendaylight + 1.4.2-SNAPSHOT + ../commons/opendaylight + + + karaf-tomcat-security + 0.4.2-SNAPSHOT + bundle + + + orbit + org.apache.catalina + + + + + + org.apache.felix + maven-bundle-plugin + true + + + org.apache.catalina + org.slf4j, + javax.servlet, + org.apache.catalina, + org.apache.catalina.connector, + org.apache.catalina.valves, + org.apache.catalina.realm + + org.opendaylight.controller.karafsecurity + + ${project.basedir}/META-INF + + + + + + scm:git:ssh://git.opendaylight.org:29418/controller.git + scm:git:ssh://git.opendaylight.org:29418/controller.git + HEAD + https://wiki.opendaylight.org/view/OpenDaylight_Controller:Main + + diff --git a/opendaylight/karaf-tomcat-security/src/main/java/org/opendaylight/controller/karafsecurity/ControllerCustomRealm.java b/opendaylight/karaf-tomcat-security/src/main/java/org/opendaylight/controller/karafsecurity/ControllerCustomRealm.java new file mode 100644 index 0000000000..316067c3a6 --- /dev/null +++ b/opendaylight/karaf-tomcat-security/src/main/java/org/opendaylight/controller/karafsecurity/ControllerCustomRealm.java @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.controller.karafsecurity; + +import java.security.Principal; +import java.util.ArrayList; +import java.util.List; + +import org.apache.catalina.realm.GenericPrincipal; +import org.apache.catalina.realm.RealmBase; + +public class ControllerCustomRealm extends RealmBase { + + private static final String name = "ControllerCustomRealm"; + + @Override + protected String getName() { + return name; + } + + @Override + protected String getPassword(String username) { + return "admin"; + } + + @Override + protected Principal getPrincipal(String username) { + List controllerRoles = new ArrayList(); + controllerRoles.add("System-Admin"); + return new GenericPrincipal(username, "", controllerRoles); + } + + @Override + public Principal authenticate(String username, String credentials) { + return this.getPrincipal(username); + } +} diff --git a/pom.xml b/pom.xml index f3f777f857..b81378e33f 100644 --- a/pom.xml +++ b/pom.xml @@ -45,6 +45,7 @@ opendaylight/connectionmanager/api opendaylight/connectionmanager/implementation opendaylight/security + opendaylight/karaf-tomcat-security -- 2.36.6