neutron now works with jetty
authorEd Warnicke <eaw@cisco.com>
Wed, 10 Dec 2014 16:55:24 +0000 (10:55 -0600)
committerAndrew Grimberg <agrimberg@linuxfoundation.org>
Fri, 13 Feb 2015 16:05:05 +0000 (08:05 -0800)
This patch makes the feature neutron-northbound work with
jetty.

It also moves the adsal to port 8282, and the stock
karaf jetty to port 8080 (in additional to 8181).

GET, POST, and PUT for neutron network has been
tested:

GET:

curl -u admin:admin http://127.0.0.1:8080/controller/nb/v2/neutron/networks

POST:

curl -u admin:admin -H "Content-Type: application/json" -d @network.post http://127.0.0.1:8080/controller/nb/v2/neutron/networks

PUT:

curl -u admin:admin -H "Content-Type: application/json" -d @network2.post -X PUT  http://127.0.0.1:8080/controller/nb/v2/neutron/networks/d6220bbb-35f3-48ab-8eae-69c60aef3544

where:

cat network.post
{"network": {"status": "ACTIVE", "subnets": [], "name": "net-dedicated", "provider:physical_network": null, "admin_state_up": true, "tenant_id": "aa902936679e4ea29bfe1158e3450a13", "provider:network_type": "gre", "router:external": false, "shared": false, "id": "d6220bbb-35f3-48ab-8eae-69c60aef3544", "provider:segmentation_id": 1}}

cat network2.post
{"network": {"subnets": [], "name": "net-dedicated", "provider:physical_network": null, "admin_state_up": true, "provider:network_type": "gre", "router:external": true, "shared": false, "provider:segmentation_id": 1}}

This patch should not be merged before 2/1/2015 to allow time for discussion.

Change-Id: I6a003c2868adc5b060f05d228a56a744c092e963
Signed-off-by: Ed Warnicke <eaw@cisco.com>
northbound/src/main/resources/WEB-INF/web.xml

index dccd1332c9534edb76c9bda153e7c252b140fd93..08a314a42e2bb9c6daac6412a201b780497a993d 100644 (file)
@@ -9,6 +9,11 @@
       <param-name>javax.ws.rs.Application</param-name>\r
       <param-value>org.opendaylight.controller.networkconfig.neutron.northbound.NeutronNorthboundRSApplication</param-value>\r
     </init-param>\r
+    <!-- AAA Auth Filter -->\r
+    <init-param>\r
+      <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>\r
+      <param-value> org.opendaylight.aaa.sts.TokenAuthFilter</param-value>\r
+    </init-param>\r
     <load-on-startup>1</load-on-startup>\r
   </servlet>\r
 \r
     <servlet-name>JAXRSNeutron</servlet-name>\r
     <url-pattern>/*</url-pattern>\r
   </servlet-mapping>\r
-        <security-constraint>\r
-                <web-resource-collection>\r
-                        <web-resource-name>NB api</web-resource-name>\r
-                        <url-pattern>/*</url-pattern>\r
-                </web-resource-collection>\r
-                <auth-constraint>\r
-                        <role-name>System-Admin</role-name>\r
-                        <role-name>Network-Admin</role-name>\r
-                        <role-name>Network-Operator</role-name>\r
-                        <role-name>Container-User</role-name>\r
-                </auth-constraint>\r
-        </security-constraint>\r
-\r
-        <security-role>\r
-                <role-name>System-Admin</role-name>\r
-        </security-role>\r
-        <security-role>\r
-                <role-name>Network-Admin</role-name>\r
-        </security-role>\r
-        <security-role>\r
-                <role-name>Network-Operator</role-name>\r
-        </security-role>\r
-        <security-role>\r
-                <role-name>Container-User</role-name>\r
-        </security-role>\r
 \r
-        <login-config>\r
-                <auth-method>BASIC</auth-method>\r
-                <realm-name>opendaylight</realm-name>\r
-        </login-config>\r
+  <filter>\r
+    <filter-name>cross-origin-restconf</filter-name>\r
+    <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>\r
+    <init-param>\r
+      <param-name>allowedOrigins</param-name>\r
+      <param-value>*</param-value>\r
+    </init-param>\r
+    <init-param>\r
+      <param-name>allowedMethods</param-name>\r
+      <param-value>GET,POST,OPTIONS,DELETE,PUT,HEAD</param-value>\r
+    </init-param>\r
+    <init-param>\r
+      <param-name>allowedHeaders</param-name>\r
+      <param-value>origin, content-type, accept, authorization</param-value>\r
+    </init-param>\r
+  </filter>\r
+  <filter-mapping>\r
+    <filter-name>cross-origin-restconf</filter-name>\r
+    <url-pattern>/*</url-pattern>\r
+  </filter-mapping>\r
+  <security-constraint>\r
+    <web-resource-collection>\r
+      <web-resource-name>NB api</web-resource-name>\r
+      <url-pattern>/*</url-pattern>\r
+      <http-method>POST</http-method>\r
+      <http-method>GET</http-method>\r
+      <http-method>PUT</http-method>\r
+      <http-method>PATCH</http-method>\r
+      <http-method>DELETE</http-method>\r
+      <http-method>HEAD</http-method>\r
+    </web-resource-collection>\r
+  </security-constraint>\r
 </web-app>\r