You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2017/09/05 11:55:44 UTC

cxf git commit: [CXF-7492] Adding a namePassword wadltojava option

Repository: cxf
Updated Branches:
  refs/heads/master c8e00b1c2 -> 84657fd63


[CXF-7492] Adding a namePassword wadltojava option


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/84657fd6
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/84657fd6
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/84657fd6

Branch: refs/heads/master
Commit: 84657fd6342b1e7d578ffbe27fa025d9c889ecfc
Parents: c8e00b1
Author: Sergey Beryozkin <sb...@gmail.com>
Authored: Tue Sep 5 12:55:28 2017 +0100
Committer: Sergey Beryozkin <sb...@gmail.com>
Committed: Tue Sep 5 12:55:28 2017 +0100

----------------------------------------------------------------------
 .../cxf/tools/wadlto/WadlToolConstants.java     |  1 +
 .../cxf/tools/wadlto/jaxrs/JAXRSContainer.java  |  1 +
 .../cxf/tools/wadlto/jaxrs/SourceGenerator.java | 20 ++++++++++++++++++--
 .../cxf/tools/wadlto/jaxrs/jaxrs-toolspec.xml   | 10 ++++++++++
 4 files changed, 30 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/84657fd6/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/WadlToolConstants.java
----------------------------------------------------------------------
diff --git a/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/WadlToolConstants.java b/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/WadlToolConstants.java
index 8e81308..befadea 100644
--- a/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/WadlToolConstants.java
+++ b/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/WadlToolConstants.java
@@ -47,6 +47,7 @@ public final class WadlToolConstants {
 
     public static final String CFG_CATALOG = ToolConstants.CFG_CATALOG;
     public static final String CFG_BINDING = ToolConstants.CFG_BINDING;
+    public static final String CFG_NAME_PASSWORD = "namePassword";
 
     public static final String CFG_NO_TYPES = ToolConstants.CFG_NO_TYPES;
     public static final String CFG_NO_VOID_FOR_EMPTY_RESPONSES = "noVoidForEmptyResponses";

http://git-wip-us.apache.org/repos/asf/cxf/blob/84657fd6/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainer.java
----------------------------------------------------------------------
diff --git a/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainer.java b/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainer.java
index 639cb35..8e7cc56 100644
--- a/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainer.java
+++ b/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/JAXRSContainer.java
@@ -127,6 +127,7 @@ public class JAXRSContainer extends AbstractCXFToolContainer {
         sg.setPackageName((String)context.get(WadlToolConstants.CFG_PACKAGENAME));
         sg.setResourceName((String)context.get(WadlToolConstants.CFG_RESOURCENAME));
         sg.setEncoding((String)context.get(WadlToolConstants.CFG_ENCODING));
+        sg.setNamePassword((String)context.get(WadlToolConstants.CFG_NAME_PASSWORD));
 
         String wadlNs = (String)context.get(WadlToolConstants.CFG_WADL_NAMESPACE);
         if (wadlNs != null) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/84657fd6/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java
----------------------------------------------------------------------
diff --git a/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java b/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java
index 5924713..9cdd5eb 100644
--- a/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java
+++ b/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/SourceGenerator.java
@@ -28,6 +28,7 @@ import java.io.OutputStreamWriter;
 import java.io.Reader;
 import java.io.StringReader;
 import java.io.Writer;
+import java.net.HttpURLConnection;
 import java.net.URI;
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
@@ -92,6 +93,7 @@ import org.apache.cxf.common.jaxb.JAXBUtils.JCodeModel;
 import org.apache.cxf.common.jaxb.JAXBUtils.S2JJAXBModel;
 import org.apache.cxf.common.jaxb.JAXBUtils.SchemaCompiler;
 import org.apache.cxf.common.logging.LogUtils;
+import org.apache.cxf.common.util.Base64Utility;
 import org.apache.cxf.common.util.PackageUtils;
 import org.apache.cxf.common.util.ReflectionInvokationHandler;
 import org.apache.cxf.common.util.StringUtils;
@@ -225,6 +227,7 @@ public class SourceGenerator {
     private boolean validateWadl;
     private SchemaCollection schemaCollection = new SchemaCollection();
     private String encoding;
+    private String namePassword;
     private boolean createJavaDocs;
 
     public SourceGenerator() {
@@ -1855,9 +1858,18 @@ public class SourceGenerator {
             InputStream is = null;
             if (!href.startsWith("http")) {
                 is = ResourceUtils.getResourceStream(href, bus);
-            }
+            } 
             if (is == null) {
-                is = URI.create(href).toURL().openStream();
+                URL url = URI.create(href).toURL();
+                if (namePassword != null) {
+                    HttpURLConnection conn = (HttpURLConnection)url.openConnection();
+                    conn.setRequestMethod("GET");
+                    String encodedAuth = "Basic " + Base64Utility.encode(namePassword.getBytes());
+                    conn.setRequestProperty("Authorization", encodedAuth);
+                    is = conn.getInputStream();
+                } else {
+                    is = url.openStream();
+                }
             }
             return readXmlDocument(new InputStreamReader(is, StandardCharsets.UTF_8));
         } catch (Exception ex) {
@@ -2023,6 +2035,10 @@ public class SourceGenerator {
         this.supportBeanValidation = supportBeanValidation;
     }
 
+    public void setNamePassword(String namePassword) {
+        this.namePassword = namePassword;
+    }
+
     private static class GrammarInfo {
         private Map<String, String> nsMap = new HashMap<>();
         private Map<String, String> elementTypeMap = new HashMap<>();

http://git-wip-us.apache.org/repos/asf/cxf/blob/84657fd6/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/jaxrs-toolspec.xml
----------------------------------------------------------------------
diff --git a/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/jaxrs-toolspec.xml b/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/jaxrs-toolspec.xml
index 6bec5ba..784d978 100644
--- a/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/jaxrs-toolspec.xml
+++ b/tools/wadlto/jaxrs/src/main/java/org/apache/cxf/tools/wadlto/jaxrs/jaxrs-toolspec.xml
@@ -259,6 +259,16 @@ Examples:
                 <annotation>Convert WADL doc elements to JavaDocs</annotation>
                 <switch>javaDocs</switch>
             </option>
+            <option id="namePassword" maxOccurs="1">
+                <annotation>
+                    Specifies a colon separated user name and password for retrieving the
+                    remote WADL content from the servers requiring Basic authentication                      
+                </annotation>
+                <associatedArgument placement="afterSpace">
+                    <annotation>namePassword</annotation>
+                </associatedArgument>
+                <switch>namePassword</switch>
+            </option>
         </optionGroup>
         <optionGroup id="common_options">
             <option id="help" maxOccurs="1">