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 <[email protected]> Authored: Tue Sep 5 12:55:28 2017 +0100 Committer: Sergey Beryozkin <[email protected]> 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">
