cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r1012255 - in /websites/production/cxf/content: cache/docs.pageCache docs/jax-rs-jose.html docs/swagger2feature.html
Date Mon, 15 May 2017 11:47:39 GMT
Author: buildbot
Date: Mon May 15 11:47:39 2017
New Revision: 1012255

Log:
Production update by buildbot for cxf

Modified:
    websites/production/cxf/content/cache/docs.pageCache
    websites/production/cxf/content/docs/jax-rs-jose.html
    websites/production/cxf/content/docs/swagger2feature.html

Modified: websites/production/cxf/content/cache/docs.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/cxf/content/docs/jax-rs-jose.html
==============================================================================
--- websites/production/cxf/content/docs/jax-rs-jose.html (original)
+++ websites/production/cxf/content/docs/jax-rs-jose.html Mon May 15 11:47:39 2017
@@ -119,11 +119,11 @@ Apache CXF -- JAX-RS JOSE
            <!-- Content -->
            <div class="wiki-content">
 <div id="ConfluenceContent"><p>&#160;</p><p>&#160;</p><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1494593227750 {padding: 0px;}
-div.rbtoc1494593227750 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1494593227750 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1494848822919 {padding: 0px;}
+div.rbtoc1494848822919 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1494848822919 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1494593227750">
+/*]]>*/</style></p><div class="toc-macro rbtoc1494848822919">
 <ul class="toc-indentation"><li><a shape="rect" href="#JAX-RSJOSE-Introduction">Introduction</a></li><li><a
shape="rect" href="#JAX-RSJOSE-MavenDependencies">Maven Dependencies</a></li><li><a
shape="rect" href="#JAX-RSJOSE-JavaandJCEPolicy">Java and JCE Policy&#160;</a></li><li><a
shape="rect" href="#JAX-RSJOSE-JOSEOverviewandImplementation">JOSE Overview and Implementation</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#JAX-RSJOSE-JWAAlgorithms">JWA
Algorithms</a></li><li><a shape="rect" href="#JAX-RSJOSE-JWKKeys">JWK
Keys</a></li><li><a shape="rect" href="#JAX-RSJOSE-JWSSignature">JWS
Signature</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#JAX-RSJOSE-SignatureandVerificationProviders">Signature
and Verification Providers</a></li><li><a shape="rect" href="#JAX-RSJOSE-JWSCompact">JWS
Compact</a></li><li><a shape="rect" href="#JAX-RSJOSE-JWSJSON">JWS
JSON</a></li><li><a shape="rect" href="#JAX-RSJOSE-JWSwithDetachedContent">JWS
with Detached Content</a></li><li><a shape="rect" href="#JAX-RSJOSE-JWSwithUnencodedPayload">JWS
with Unencoded Payload</a></li></ul>
@@ -492,7 +492,7 @@ Payload:
       }
    ]
 }</pre>
-</div></div><p>The client code and server configuration is nearly identical
to a code/configuration needed to set up JWS Compact filters as shown above, simply replace
JwsWriterInterceptor/JwsClientResponseFilter with JwsJsonWriterInterceptor/JwsJsonClientResponseFilter
in the client code, and JwsContainerRequestFilter/JwsContainerResponseFilter with JwsJsonContainerRequestFilter/JwsJsonContainerResponseFilter</p><h2
id="JAX-RSJOSE-SigningandVerificationofHTTPAttachments">Signing and Verification of HTTP
Attachments</h2><p>The signing and verification of HTTP request and response attachments
is supported starting from CXF 3.1.12.</p><p>This feature does not buffer the
request and response attachment data and is completely streaming-'friendly'.</p><p>It
depends on&#160;<a shape="rect" class="external-link" href="https://tools.ietf.org/html/rfc7515#appendix-F"
rel="nofollow">JWS with Detached Content</a> and&#160; <a shape="rect" class="external-link"
href="https://tools.ietf.org/html
 /rfc7797" rel="nofollow">JWS with Unencoded Payload</a> options as well as on the
newly introduced CXF <a shape="rect" href="http://cxf.apache.org/docs/jax-rs-multiparts.html#JAX-RSMultiparts-MultipartFilters">multipart
filters</a> and works as follows.</p><p>When request or response attachment
parts are about to be submitted to the Multipart serialization provider, JWS Multipart Output
Filter initializes a <a shape="rect" class="external-link" href="https://github.com/apache/cxf/blob/master/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsSignature.java"
rel="nofollow">JWSSignature</a> object. Next every parts's output stream is replaced
with the filtering output stream which updates the signature object on every write operation.
Finally this multipart filter adds one more attachment part to the list of the attachments
to be written - this part holds a reference to JWS Signature. When this last part is written,
JWSSignature produces the signature
  bytes which are encoded using either JWS Compact or JWS JSON format, with the detached and
unencoded content already being pushed to the output stream.</p><p>When the attachment
parts are about to be read by the Multipart deserialization provider, their signature carried
over in the last part will need to be verified. Just before the parts are about to be read
in order to be made available to the application code, JWS Multipart Input Filter checks the
last part and initializes a <a shape="rect" class="external-link" href="https://github.com/apache/cxf/blob/master/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsVerificationSignature.java"
rel="nofollow">JWSVerificationSignature</a> object. Next for every attachment but
the last one it replaces the input stream with the filtering input stream which updates the
signature verification object on every read operation. Once all the data have been read it
compares the calculated signature with the recei
 ved signature.</p><p>Note all of the multipart attachments parts can be secured
this way but by default, unless filters set a 'supportSinglePartOnly' property to 'false',
the attachments with more than one data part will be rejected. This is done to avoid some
possible security side-effects when the receiving side starts processing the parts as soon
as they become available, before all of the multipart payload has been read.</p><p>Here
is the example showing how a Book object (represented as an XML attachment on the wire) can
be secured.</p><p>Given this client code:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><p>The client code and server configuration is nearly identical
to a code/configuration needed to set up JWS Compact filters as shown above, simply replace
JwsWriterInterceptor/JwsClientResponseFilter with JwsJsonWriterInterceptor/JwsJsonClientResponseFilter
in the client code, and JwsContainerRequestFilter/JwsContainerResponseFilter with JwsJsonContainerRequestFilter/JwsJsonContainerResponseFilter</p><h2
id="JAX-RSJOSE-SigningandVerificationofHTTPAttachments">Signing and Verification of HTTP
Attachments</h2><p>The signing and verification of HTTP request and response attachments
is supported starting from CXF 3.1.12.</p><p>This feature does not buffer the
request and response attachment data and is completely streaming-'friendly'.</p><p>It
depends on&#160;<a shape="rect" class="external-link" href="https://tools.ietf.org/html/rfc7515#appendix-F"
rel="nofollow">JWS with Detached Content</a> and&#160; <a shape="rect" class="external-link"
href="https://tools.ietf.org/html
 /rfc7797" rel="nofollow">JWS with Unencoded Payload</a> options as well as on the
newly introduced CXF <a shape="rect" href="http://cxf.apache.org/docs/jax-rs-multiparts.html#JAX-RSMultiparts-MultipartFilters">multipart
filters</a> and works as follows.</p><p>When request or response attachment
parts are about to be submitted to the Multipart serialization provider, JWS Multipart Output
Filter (<a shape="rect" class="external-link" href="https://github.com/apache/cxf/blob/master/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartClientRequestFilter.java"
rel="nofollow">JwsMultipartClientRequestFilter</a> and/or <a shape="rect" class="external-link"
href="https://github.com/apache/cxf/blob/master/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartContainerResponseFilter.java"
rel="nofollow">JwsMultipartContainerResponseFilter</a>) initializes a <a shape="rect"
cla
 ss="external-link" href="https://github.com/apache/cxf/blob/master/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsSignature.java"
rel="nofollow">JWSSignature</a> object. Next every parts's output stream is replaced
with the filtering output stream which updates the signature object on every write operation.
Finally this multipart filter adds one more attachment part to the list of the attachments
to be written - this part holds a reference to JWS Signature. When this last part is written,
JWSSignature produces the signature bytes which are encoded using either JWS Compact or JWS
JSON format, with the detached and unencoded content already being pushed to the output stream.</p><p>When
the attachment parts are about to be read by the Multipart deserialization provider, their
signature carried over in the last part will need to be verified. Just before the parts are
about to be read in order to be made available to the application code, JWS Multipa
 rt Input Filter (<a shape="rect" class="external-link" href="https://github.com/apache/cxf/blob/master/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartContainerRequestFilter.java"
rel="nofollow">JwsMultipartContainerRequestFilter</a> and/or <a shape="rect" class="external-link"
href="https://github.com/apache/cxf/blob/master/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartClientResponseFilter.java"
rel="nofollow">JwsMultipartClientResponseFilter</a>) checks the last part and initializes
a <a shape="rect" class="external-link" href="https://github.com/apache/cxf/blob/master/rt/rs/security/jose-parent/jose/src/main/java/org/apache/cxf/rs/security/jose/jws/JwsVerificationSignature.java"
rel="nofollow">JWSVerificationSignature</a> object. Next for every attachment but
the last one it replaces the input stream with the filtering input stream which updates the
si
 gnature verification object on every read operation. Once all the data have been read it
compares the calculated signature with the received signature.</p><p>Note when
the attachments are accessed by the receiving application code, the read process will fail
to complete if the validation fails. For example, if the application code copies a given part's
InputStream to the disk then this copy operation will fail.</p><p>However, if
the receiver starts acting immediately on the attachment's InputStream, for example, the attachment
data returned from the service to the client are streamed to a UI display which can activate
a script then it is important that a '<strong>bufferPayload</strong>' property
is enabled on either <a shape="rect" class="external-link" href="https://github.com/apache/cxf/blob/master/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartContainerRequestFilter.java"
rel="nofollow">JwsMultipartContainerRequestF
 ilter</a> or <a shape="rect" class="external-link" href="https://github.com/apache/cxf/blob/master/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartClientResponseFilter.java"
rel="nofollow">JwsMultipartClientResponseFilter</a>. It will ensure that the data
streams are validated first before the application gets an access to them.&#160;</p><p>Here
is the example showing how a Book object (represented as an XML attachment on the wire) can
be secured.</p><p>Given this client code:</p><div class="code panel pdl"
style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">@Test
 public void testJwsJwkBookHMacMultipart() throws Exception {
     String address = "https://localhost:" + PORT + "/jwsjwkhmacSinglePart";

Modified: websites/production/cxf/content/docs/swagger2feature.html
==============================================================================
--- websites/production/cxf/content/docs/swagger2feature.html (original)
+++ websites/production/cxf/content/docs/swagger2feature.html Mon May 15 11:47:39 2017
@@ -118,11 +118,11 @@ Apache CXF -- Swagger2Feature
            <!-- Content -->
            <div class="wiki-content">
 <div id="ConfluenceContent"><h1 id="Swagger2Feature-Swagger2Feature">Swagger2Feature</h1><p><style
type="text/css">/*<![CDATA[*/
-div.rbtoc1478879222735 {padding: 0px;}
-div.rbtoc1478879222735 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1478879222735 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1494848821953 {padding: 0px;}
+div.rbtoc1494848821953 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1494848821953 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1478879222735">
+/*]]>*/</style></p><div class="toc-macro rbtoc1494848821953">
 <ul class="toc-indentation"><li><a shape="rect" href="#Swagger2Feature-Swagger2Feature">Swagger2Feature</a></li><li><a
shape="rect" href="#Swagger2Feature-Setup">Setup</a></li><li><a shape="rect"
href="#Swagger2Feature-Properties">Properties</a></li><li><a shape="rect"
href="#Swagger2Feature-ConfiguringProgramatically">Configuring Programatically</a></li><li><a
shape="rect" href="#Swagger2Feature-ConfiguringinSpring">Configuring in Spring</a></li><li><a
shape="rect" href="#Swagger2Feature-ConfiguringinBlueprint">Configuring in Blueprint</a></li><li><a
shape="rect" href="#Swagger2Feature-ConfiguringinCXFNonSpringJaxrsServlet">Configuring
in CXFNonSpringJaxrsServlet</a></li><li><a shape="rect" href="#Swagger2Feature-EnablinginSpringBoot">Enabling
in Spring Boot</a></li><li><a shape="rect" href="#Swagger2Feature-AccessingSwaggerDocuments">Accessing
Swagger Documents</a></li><li><a shape="rect" href="#Swagger2Feature-EnablingSwaggerUI">Enabling
Swagger UI</a>
 <ul class="toc-indentation"><li><a shape="rect" href="#Swagger2Feature-AutomaticUIActivation">Automatic
UI Activation</a></li><li><a shape="rect" href="#Swagger2Feature-UnpackingSwaggerUIresources">Unpacking
Swagger UI resources</a></li></ul>
 </li><li><a shape="rect" href="#Swagger2Feature-Samples">Samples</a></li></ul>
@@ -130,7 +130,7 @@ div.rbtoc1478879222735 li {margin-left:
 <pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;dependency&gt;
     &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt;
     &lt;artifactId&gt;cxf-rt-rs-service-description-swagger&lt;/artifactId&gt;
-    &lt;version&gt;3.1.7&lt;/version&gt;
+    &lt;version&gt;3.1.11&lt;/version&gt;
 &lt;/dependency&gt;
 
 </pre>
@@ -252,15 +252,15 @@ import org.apache.cxf.jaxrs.swagger.Swag
     &lt;/servlet-mapping&gt;
     
 &lt;/web-app&gt;</pre>
-</div></div><h1 id="Swagger2Feature-EnablinginSpringBoot">Enabling in Spring
Boot</h1><p>See <a shape="rect" class="external-link" href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/spring_boot"
rel="nofollow">samples/jax_rs/spring_boot</a> and on how to create Swagger2Feature
in a @Bean method and&#160;<a shape="rect" class="external-link" href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/spring_boot_scan"
rel="nofollow">samples/jax_rs/spring_boot_scan</a> on how to auto-enable it.</p><p>&#160;</p><h1
id="Swagger2Feature-AccessingSwaggerDocuments">Accessing Swagger Documents</h1><p>When
Swagger is enabled by Swagger feature, the Swagger documents will be available at the location
URL constructed of the service endpoint location followed by /swagger.json or /swagger.yaml.</p><p>For
example, lets assume a JAX-RS endpoint is published at 'http://host:port/context/services/'
where 'context' is a web ap
 plication context,&#160; "/services" is a servlet URL. In this case its Swagger documents
are available at 'http://host:port/context/services/swagger.json' and 'http://host:port/context/services/swagger.yaml'.</p><p>Starting
from CXF 3.1.7 the CXF Services page will link to Swagger documents if Swagger2Feature is
active.&#160;</p><p>In the above example, go to&#160;'<span>http://host:port/context/services/</span>services'
and follow a Swagger link which will return a Swagger JSON document.</p><h1 id="Swagger2Feature-EnablingSwaggerUI">Enabling
Swagger UI</h1><p>First one needs to add the following</p><div class="code
panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+</div></div><h1 id="Swagger2Feature-EnablinginSpringBoot">Enabling in Spring
Boot</h1><p>See <a shape="rect" class="external-link" href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/spring_boot"
rel="nofollow">samples/jax_rs/spring_boot</a> and on how to create Swagger2Feature
in a @Bean method and&#160;<a shape="rect" class="external-link" href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/spring_boot_scan"
rel="nofollow">samples/jax_rs/spring_boot_scan</a> on how to auto-enable it.</p><p>&#160;</p><h1
id="Swagger2Feature-AccessingSwaggerDocuments">Accessing Swagger Documents</h1><p>When
Swagger is enabled by Swagger feature, the Swagger documents will be available at the location
URL constructed of the service endpoint location followed by /swagger.json or /swagger.yaml.</p><p>For
example, lets assume a JAX-RS endpoint is published at 'http://host:port/context/services/'
where 'context' is a web ap
 plication context,&#160; "/services" is a servlet URL. In this case its Swagger documents
are available at 'http://host:port/context/services/swagger.json' and 'http://host:port/context/services/swagger.yaml'.</p><p>Starting
from CXF 3.1.7 the CXF Services page will link to Swagger documents if Swagger2Feature is
active.&#160;</p><p>In the above example, go to&#160;'<span>http://host:port/context/services/</span>services'
and follow a Swagger link which will return a Swagger JSON document.</p><p>If
<a shape="rect" class="external-link" href="https://github.com/swagger-api/swagger-ui/blob/master/README.md#cors-support"
rel="nofollow">CORS support</a> is needed to access the definition from a Swagger
UI on another host, the <a shape="rect" href="jax-rs-cors.html">CrossOriginResourceSharingFilter
from cxf-rt-rs-security-cors</a> can be added.</p><h1 id="Swagger2Feature-EnablingSwaggerUI">Enabling
Swagger UI</h1><p>First one needs to add the following</p><div class="code
panel pdl" styl
 e="border-width: 1px;"><div class="codeContent panelContent pdl">
 <pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;dependency&gt;
     &lt;groupId&gt;org.webjars&lt;/groupId&gt;
     &lt;artifactId&gt;swagger-ui&lt;/artifactId&gt;
-    &lt;version&gt;2.1.8-M1&lt;/version&gt;
+    &lt;version&gt;2.2.10-1&lt;/version&gt;
 &lt;/dependency&gt;
 
 </pre>
-</div></div><h2 id="Swagger2Feature-AutomaticUIActivation">Automatic UI
Activation</h2><p>This feature is available starting from CXF 3.1.7: Adding a
Swagger UI Maven dependency is all what is needed to start accessing Swagger documents with
the help of Swagger UI.</p><p>For example, lets assume a JAX-RS endpoint is published
at '<span>http://host:port/context/services/</span>'.</p><p>Open the
browser and go to '<span>http://host:port/context/services/</span>api-docs?/url=/swagger.json'
which will return a Swagger UI page.</p><p>CXF Services page will also link to
Swagger UI. Go to&#160;'<span>http://host:port/context/services/</span>services'
and follow a Swagger link which will return a Swagger UI page.</p><p>See <a
shape="rect" class="external-link" href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/description_swagger2"
rel="nofollow">samples/jax_rs/description_swagger2</a>,&#160;<a shape="rect"
class="external-link" href="https://github
 .com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/description_swagger2_web"
rel="nofollow">samples/jax_rs/description_swagger2_web</a>, <a shape="rect" class="external-link"
href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/spring_boot"
rel="nofollow">samples/jax_rs/spring_boot</a> and <a shape="rect" class="external-link"
href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/spring_boot_scan"
rel="nofollow">samples/jax_rs/spring_boot_scan</a>&#160;</p><p>Note
that CXF OSGI endpoints can only depend on this feature starting from CXF 3.1.8.</p><h2
id="Swagger2Feature-UnpackingSwaggerUIresources">Unpacking Swagger UI resources</h2><p>Up
until CXF 3.1.7 unpacking Swagger UI resources into the local folder was the only option.
It is demoed in <a shape="rect" class="external-link" href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/description_
 swagger2_spring" rel="nofollow">samples/jax_rs/description_swagger2_spring</a> and
<a shape="rect" class="external-link" href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/description_swagger2_osgi"
rel="nofollow">samples/jax_rs/description_swagger2_osgi</a>.</p><p>In
CXF 3.1.8: set Swagger2Feature 'supportSwaggerUi' property to 'false' to disable the automatic
UI activation described in the previous section</p><h1 id="Swagger2Feature-Samples">Samples</h1><p><span>CXF's
distribution contains the following samples.</span></p><ul><li><a
shape="rect" class="external-link" href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/description_swagger"
rel="nofollow">samples/jax_rs/description_swagger</a>: Swagger 1.2 sample using SwaggerFeature
programatically</li><li><a shape="rect" class="external-link" href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/description_swa
 gger2" rel="nofollow">samples/jax_rs/description_swagger2</a>:&#160;Swagger
2.0 standalone sample using Swagger2Feature programatically</li><li><a shape="rect"
class="external-link" href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/description_swagger2_spring"
rel="nofollow">samples/jax_rs/description_swagger2_spring</a>:&#160;Swagger 2.0
standalone sample using Swagger2Feature using Spring</li><li><a shape="rect"
class="external-link" href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/description_swagger2_web"
rel="nofollow">samples/jax_rs/description_swagger2_web</a>:&#160;Swagger 2.0
web application sample using Swagger2Feature using Spring</li><li><a shape="rect"
class="external-link" href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/description_swagger2_osgi"
rel="nofollow">samples/jax_rs/description_swagger2_osgi</a>:&#160;Swagger 2.0
OSGi application
  sample using Swagger2Feature using Blueprint<br clear="none"><br clear="none"></li></ul><p>&#160;</p></div>
+</div></div><p>The newest version 3.x of swagger-ui can also be used.</p><h2
id="Swagger2Feature-AutomaticUIActivation">Automatic UI Activation</h2><p>This
feature is available starting from CXF 3.1.7: Adding a Swagger UI Maven dependency is all
what is needed to start accessing Swagger documents with the help of Swagger UI.</p><p>For
example, lets assume a JAX-RS endpoint is published at '<span>http://host:port/context/services/</span>'.</p><p>Open
the browser and go to '<span>http://host:port/context/services/</span>api-docs?/url=/swagger.json'
which will return a Swagger UI page.</p><p>CXF Services page will also link to
Swagger UI. Go to&#160;'<span>http://host:port/context/services/</span>services'
and follow a Swagger link which will return a Swagger UI page.</p><p>See <a
shape="rect" class="external-link" href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/description_swagger2"
rel="nofollow">samples/jax_rs/description_swagger2</a>,&#1
 60;<a shape="rect" class="external-link" href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/description_swagger2_web"
rel="nofollow">samples/jax_rs/description_swagger2_web</a>, <a shape="rect" class="external-link"
href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/spring_boot"
rel="nofollow">samples/jax_rs/spring_boot</a> and <a shape="rect" class="external-link"
href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/spring_boot_scan"
rel="nofollow">samples/jax_rs/spring_boot_scan</a>&#160;</p><p>Note
that CXF OSGI endpoints can only depend on this feature starting from CXF 3.1.8.</p><h2
id="Swagger2Feature-UnpackingSwaggerUIresources">Unpacking Swagger UI resources</h2><p>Up
until CXF 3.1.7 unpacking Swagger UI resources into the local folder was the only option.
It is demoed in <a shape="rect" class="external-link" href="https://github.com/apache/cxf/tree/mas
 ter/distribution/src/main/release/samples/jax_rs/description_swagger2_spring" rel="nofollow">samples/jax_rs/description_swagger2_spring</a>
and <a shape="rect" class="external-link" href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/description_swagger2_osgi"
rel="nofollow">samples/jax_rs/description_swagger2_osgi</a>.</p><p>In
CXF 3.1.8: set Swagger2Feature 'supportSwaggerUi' property to 'false' to disable the automatic
UI activation described in the previous section</p><h1 id="Swagger2Feature-Samples">Samples</h1><p><span>CXF's
distribution contains the following samples.</span></p><ul><li><a
shape="rect" class="external-link" href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/description_swagger"
rel="nofollow">samples/jax_rs/description_swagger</a>: Swagger 1.2 sample using SwaggerFeature
programatically</li><li><a shape="rect" class="external-link" href="https://github.com/apache/cxf/tree/master
 /distribution/src/main/release/samples/jax_rs/description_swagger2" rel="nofollow">samples/jax_rs/description_swagger2</a>:&#160;Swagger
2.0 standalone sample using Swagger2Feature programatically</li><li><a shape="rect"
class="external-link" href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/description_swagger2_spring"
rel="nofollow">samples/jax_rs/description_swagger2_spring</a>:&#160;Swagger 2.0
standalone sample using Swagger2Feature using Spring</li><li><a shape="rect"
class="external-link" href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/description_swagger2_web"
rel="nofollow">samples/jax_rs/description_swagger2_web</a>:&#160;Swagger 2.0
web application sample using Swagger2Feature using Spring</li><li><a shape="rect"
class="external-link" href="https://github.com/apache/cxf/tree/master/distribution/src/main/release/samples/jax_rs/description_swagger2_osgi"
rel="nofollow">samples/jax_rs/des
 cription_swagger2_osgi</a>:&#160;Swagger 2.0 OSGi application sample using Swagger2Feature
using Blueprint<br clear="none"><br clear="none"></li></ul><p>&#160;</p></div>
            </div>
            <!-- Content -->
          </td>



Mime
View raw message