[jira] [Commented] (CXF-7941) SamlValidator does not work with chain trust

2019-01-22 Thread Colm O hEigeartaigh (JIRA)


[ 
https://issues.apache.org/jira/browse/CXF-7941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16748582#comment-16748582
 ] 

Colm O hEigeartaigh commented on CXF-7941:
--

I fixed the constraint separator issue for the next WSS4J release: 
https://issues.apache.org/jira/browse/WSS-641

> SamlValidator does not work with chain trust
> 
>
> Key: CXF-7941
> URL: https://issues.apache.org/jira/browse/CXF-7941
> Project: CXF
>  Issue Type: Bug
>  Components: WS-* Components
>Affects Versions: 3.2.7
>Reporter: Tomas Vanhala
>Priority: Major
> Attachments: cxf7941.zip, obsolete-code.txt, 
> request-real-sanitised.xml, request-test-broken-sanitised.xml, 
> request-test-working-sanitised.xml, stacktrace-request-test-broken.txt
>
>
> As explained here 
> [http://coheigea.blogspot.com/2012/08/subject-dn-certificate-constraint.html,]
>  WSS4J supports specifying constraints on the subject DN of the certificate 
> used for signature validation.
> We have successfully applied "direct trust" when receiving SOAP requests 
> containing a signed SAML token.
> We attempted to migrate to "chain trust" by removing the certificate used to 
> sign the requests from the Merlin trust store, and setting an appropriate 
> Subject DN Cert Constraint.
> It did not work. Our analysis is that WSS4J's SamlValidator is not able to 
> handle a scenario where the certificate used to sign the requests is not in 
> the trust store. The problem seems to be in the method 
> findPublicKeyInKeyStore() of Merlin.java.
> We were able to make chain trust (and the Subject DN Cert Constraint) work by 
> including the needed PKI code in a customised SamlValidator, but we would 
> rather not go this route.
> Please fix chain trust in WSS4J SAML validation.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (CXF-7951) Async binding not JAX-WS compliant

2019-01-22 Thread Aritz Bastida (JIRA)


 [ 
https://issues.apache.org/jira/browse/CXF-7951?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aritz Bastida updated CXF-7951:
---
Description: 
According to JAX-WS 2.3 spec (section 2.3.4.3), the async binding differs from 
the sync binding in the handling of in-out and out parameters, namely:
 * No Holder class is used
 * Out parts or wrapper childs are gathered as properties in an entity called 
ResponseBean.

In our project we are deploying our services on Weblogic, which includes Metro 
(JAX-WS RI) as JAX-WS implementation. And that requires the above signature for 
the async binding to work.

However, CXF does not behave the same way: it expects the same input parameters 
in both cases: that means we still have the Holder class and no ResponseBean. 

As a result, we cannot have a portable JAX-WS client that can be used either 
with Metro or CXF.

Take for example, the following WSDL. Note that there are two in-out SOAP 
headers, along with the body.

{code:xml|title=WSDL|borderStyle=solid}
















http://schemas.xmlsoap.org/soap/http"/>

















{code}

...and, as described above, the mapping to Java differs with Metro and CXF:

{code:title=Java interface|borderStyle=solid} 
@WebMethod(action = "readFileRecord")
@WebResult(name = "ReadFileRecord_OUT", targetNamespace = 
"http://telefonica.com/gstr/srv/Bank/msg/readFileRecord-v3";, partName = 
"response")
public ReadFileRecord_OUT readFileRecord(
@WebParam(name = "ReadFileRecord_IN", targetNamespace = 
"http://telefonica.com/gstr/srv/Bank/msg/readFileRecord-v3";, partName = 
"request")
ReadFileRecord_IN request,
@WebParam(name = "TE_Cabecera", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/cabecera";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_header")
Holder teHeader,
@WebParam(name = "TE_Metadatos", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/metadatos-2.0";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_metadata")
Holder teMetadata)
throws TE_Excepcion
;

// CXF
@WebMethod(operationName = "readFileRecord", action = "readFileRecord")
public Response readFileRecordAsync(
@WebParam(name = "ReadFileRecord_IN", targetNamespace = 
"http://telefonica.com/gstr/srv/Bank/msg/readFileRecord-v3";, partName = 
"request")
ReadFileRecord_IN request,
@WebParam(name = "TE_Cabecera", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/cabecera";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_header")
Holder teHeader,
@WebParam(name = "TE_Metadatos", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/metadatos-2.0";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_metadata")
Holder teMetadata);

// METRO 
@WebMethod(operationName = "readFileRecord", action = "readFileRecord")
public Response readFileRecordAsync(
@WebParam(name = "ReadFileRecord_IN", targetNamespace = 
"http://telefonica.com/gstr/srv/Bank/msg/readFileRecord-v3";, partName = 
"request")
ReadFileRecord_IN request,
@WebParam(name = "TE_Cabecera", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/cabecera";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_header")
TE_Cabecera teHeader,
@WebParam(name = "TE_Metadatos", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/metadatos-2.0";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_metadata")
TE_Metadatos teMetadata);
{code}


 

 

  was:
According to JAX-WS 2.3 spec, section 2.3.4.3, the async binding differs from 
the sync binding in the handling of in-out and out parameters, namely:
 * No Holder class is used
 * Out parts or wrapper childs are gathered as properties in an entity called 
ResponseBean.

Personally, I don't understand the reason for this requirement because it 
produces a different method signature, not very convenient. But that' what the 
spec days...

In our project we are deploying our services in Weblogic, which includes Metro 
(JAX-WS RI) as JAX-WS implementation. And that requires the above signature for 
the async binding to work.

However, CXF does not behave the same way: it expects the exact same same 
signature in both cases, just differring in the response type and name ("Async" 
suffix).

To put you in context, we are using Document/Literal BARE style in our clients, 
with four parts in each @WebMethod:
 * "request": IN 
 * "response": OUT
 * "cabecera": IN-OUT header=true
 * "metadatos": IN-OUT header=true

So, for the sync binding we have three method parameters, the last two wrapped 
by Holders. That same signature works in tthe async style, but Weblogic/JAX-WS 
RI doesn't like it...


> Async binding 

[jira] [Updated] (CXF-7951) Async binding not JAX-WS compliant

2019-01-22 Thread Aritz Bastida (JIRA)


 [ 
https://issues.apache.org/jira/browse/CXF-7951?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aritz Bastida updated CXF-7951:
---
Description: 
According to JAX-WS 2.3 spec (section 2.3.4.3), the async binding differs from 
the sync binding in the handling of in-out and out parameters, namely:
 * Out: The part or wrapper child is mapped to a property of the response bean.
 * In/Out: The part or wrapper child is mapped to a method parameter (no holder 
class) and to a property of the response bean.

In our project we are deploying our services on Weblogic, which includes Metro 
(JAX-WS RI) as JAX-WS implementation. And that requires the above signature for 
the async binding to work.

However, CXF does not behave the same way: it expects the same input parameters 
in both bindings (sync and async); that means we still have the Holder class 
and no ResponseBean.

As a result, we cannot have the same, portable JAX-WS client that can be used 
either with Metro or CXF, which is what we are striving for...

Take for example, the following WSDL. Note that there are two In-Out SOAP 
headers, along with the body.

{code:xml|title=WSDL|borderStyle=solid}
















http://schemas.xmlsoap.org/soap/http"/>

















{code}

...and, as described above, the mapping to Java differs for Metro and CXF:

{code:title=Java interface|borderStyle=solid} 
@WebMethod(action = "readFileRecord")
@WebResult(name = "ReadFileRecord_OUT", targetNamespace = 
"http://telefonica.com/gstr/srv/Bank/msg/readFileRecord-v3";, partName = 
"response")
public ReadFileRecord_OUT readFileRecord(
@WebParam(name = "ReadFileRecord_IN", targetNamespace = 
"http://telefonica.com/gstr/srv/Bank/msg/readFileRecord-v3";, partName = 
"request")
ReadFileRecord_IN request,
@WebParam(name = "TE_Cabecera", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/cabecera";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_header")
Holder teHeader,
@WebParam(name = "TE_Metadatos", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/metadatos-2.0";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_metadata")
Holder teMetadata)
throws TE_Excepcion
;

// CXF
@WebMethod(operationName = "readFileRecord", action = "readFileRecord")
public Response readFileRecordAsync(
@WebParam(name = "ReadFileRecord_IN", targetNamespace = 
"http://telefonica.com/gstr/srv/Bank/msg/readFileRecord-v3";, partName = 
"request")
ReadFileRecord_IN request,
@WebParam(name = "TE_Cabecera", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/cabecera";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_header")
Holder teHeader,
@WebParam(name = "TE_Metadatos", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/metadatos-2.0";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_metadata")
Holder teMetadata);

// METRO 
@WebMethod(operationName = "readFileRecord", action = "readFileRecord")
public Response readFileRecordAsync(
@WebParam(name = "ReadFileRecord_IN", targetNamespace = 
"http://telefonica.com/gstr/srv/Bank/msg/readFileRecord-v3";, partName = 
"request")
ReadFileRecord_IN request,
@WebParam(name = "TE_Cabecera", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/cabecera";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_header")
TE_Cabecera teHeader,
@WebParam(name = "TE_Metadatos", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/metadatos-2.0";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_metadata")
TE_Metadatos teMetadata);
{code}

Am I missing something here? Shouldn't CXF implement this part of the JAX-WS 
spec? 

Thank you in advance.

 

  was:
According to JAX-WS 2.3 spec (section 2.3.4.3), the async binding differs from 
the sync binding in the handling of in-out and out parameters, namely:
 * No Holder class is used
 * Out parts or wrapper childs are gathered as properties in an entity called 
ResponseBean.

In our project we are deploying our services on Weblogic, which includes Metro 
(JAX-WS RI) as JAX-WS implementation. And that requires the above signature for 
the async binding to work.

However, CXF does not behave the same way: it expects the same input parameters 
in both cases: that means we still have the Holder class and no ResponseBean. 

As a result, we cannot have a portable JAX-WS client that can be used either 
with Metro or CXF.

Take for example, the following WSDL. Note that there are two in-out SOAP 
headers, along with the body.

{code:xml|title=WSDL|borderStyle=solid}













[jira] [Updated] (CXF-7951) Async binding not JAX-WS compliant

2019-01-22 Thread Aritz Bastida (JIRA)


 [ 
https://issues.apache.org/jira/browse/CXF-7951?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aritz Bastida updated CXF-7951:
---
Description: 
According to JAX-WS 2.3 spec (section 2.3.4.3), the async binding differs from 
the sync binding in the handling of in-out and out parameters, namely:
 * *Out:* The part or wrapper child is mapped to a property of the response 
bean.
 * *In/Out:* The part or wrapper child is mapped to a method parameter (no 
holder class) and to a property of the response bean.

In our project we are deploying our services on Weblogic, which includes Metro 
(JAX-WS RI) as JAX-WS implementation. And that requires the above signature for 
the async binding to work.

However, CXF does not behave the same way: it expects the same input parameters 
in both bindings (sync and async); that means we still have the _Holder_ class 
and no _ResponseBean_.

As a result, we cannot have the same, portable JAX-WS client that can be used 
either with Metro or CXF, which is what we are striving for...

Take for example, the following WSDL. Note that there are two In-Out SOAP 
headers, along with the body.
{code:xml|title=WSDL|borderStyle=solid}
















http://schemas.xmlsoap.org/soap/http"/>

















{code}
...and, as described above, the mapping to Java differs for Metro and CXF:
{code:java|title=Java interface|borderStyle=solid}
 
@WebMethod(action = "readFileRecord")
@WebResult(name = "ReadFileRecord_OUT", targetNamespace = 
"http://telefonica.com/gstr/srv/Bank/msg/readFileRecord-v3";, partName = 
"response")
public ReadFileRecord_OUT readFileRecord(
@WebParam(name = "ReadFileRecord_IN", targetNamespace = 
"http://telefonica.com/gstr/srv/Bank/msg/readFileRecord-v3";, partName = 
"request")
ReadFileRecord_IN request,
@WebParam(name = "TE_Cabecera", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/cabecera";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_header")
Holder teHeader,
@WebParam(name = "TE_Metadatos", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/metadatos-2.0";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_metadata")
Holder teMetadata)
throws TE_Excepcion
;

// CXF
@WebMethod(operationName = "readFileRecord", action = "readFileRecord")
public Response readFileRecordAsync(
@WebParam(name = "ReadFileRecord_IN", targetNamespace = 
"http://telefonica.com/gstr/srv/Bank/msg/readFileRecord-v3";, partName = 
"request")
ReadFileRecord_IN request,
@WebParam(name = "TE_Cabecera", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/cabecera";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_header")
Holder teHeader,
@WebParam(name = "TE_Metadatos", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/metadatos-2.0";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_metadata")
Holder teMetadata);

// METRO 
@WebMethod(operationName = "readFileRecord", action = "readFileRecord")
public Response readFileRecordAsync(
@WebParam(name = "ReadFileRecord_IN", targetNamespace = 
"http://telefonica.com/gstr/srv/Bank/msg/readFileRecord-v3";, partName = 
"request")
ReadFileRecord_IN request,
@WebParam(name = "TE_Cabecera", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/cabecera";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_header")
TE_Cabecera teHeader,
@WebParam(name = "TE_Metadatos", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/metadatos-2.0";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_metadata")
TE_Metadatos teMetadata);
{code}
Am I missing something here? Shouldn't CXF implement this part of the JAX-WS 
spec?

Thank you in advance.

 

  was:
According to JAX-WS 2.3 spec (section 2.3.4.3), the async binding differs from 
the sync binding in the handling of in-out and out parameters, namely:
 * Out: The part or wrapper child is mapped to a property of the response bean.
 * In/Out: The part or wrapper child is mapped to a method parameter (no holder 
class) and to a property of the response bean.

In our project we are deploying our services on Weblogic, which includes Metro 
(JAX-WS RI) as JAX-WS implementation. And that requires the above signature for 
the async binding to work.

However, CXF does not behave the same way: it expects the same input parameters 
in both bindings (sync and async); that means we still have the Holder class 
and no ResponseBean.

As a result, we cannot have the same, portable JAX-WS client that can be used 
either with Metro or CXF, which is what we are striving for...

Take for example, the following WSDL. Note that there are two In-Out SOAP 
head

[jira] [Updated] (CXF-7951) Async binding not JAX-WS compliant

2019-01-22 Thread Aritz Bastida (JIRA)


 [ 
https://issues.apache.org/jira/browse/CXF-7951?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aritz Bastida updated CXF-7951:
---
Description: 
According to JAX-WS 2.3 spec (section 2.3.4.3), the async binding differs from 
the sync binding in the handling of in-out and out parameters, namely:
 * *Out:* The part or wrapper child is mapped to a property of the response 
bean.
 * *In/Out:* The part or wrapper child is mapped to a method parameter (no 
holder class) and to a property of the response bean.

In our project we are deploying our services on Weblogic, which includes Metro 
(JAX-WS RI) as JAX-WS implementation. And that requires the above signature for 
the async binding to work. However, CXF does not behave the same way: it 
expects the same input parameters in both bindings (sync and async); that means 
we still have the _Holder_ class and no _ResponseBean_.

As a result, we cannot have the same, portable JAX-WS client that can be used 
either with Metro or CXF, which is what we are striving for...

Take for example, the following WSDL. Note that there are two In-Out SOAP 
headers, along with the body.
{code:xml|title=WSDL|borderStyle=solid}
















http://schemas.xmlsoap.org/soap/http"/>

















{code}
...and, as described above, the mapping to Java differs for Metro and CXF:
{code:java|title=Java interface|borderStyle=solid}
 
@WebMethod(action = "readFileRecord")
@WebResult(name = "ReadFileRecord_OUT", targetNamespace = 
"http://telefonica.com/gstr/srv/Bank/msg/readFileRecord-v3";, partName = 
"response")
public ReadFileRecord_OUT readFileRecord(
@WebParam(name = "ReadFileRecord_IN", targetNamespace = 
"http://telefonica.com/gstr/srv/Bank/msg/readFileRecord-v3";, partName = 
"request")
ReadFileRecord_IN request,
@WebParam(name = "TE_Cabecera", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/cabecera";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_header")
Holder teHeader,
@WebParam(name = "TE_Metadatos", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/metadatos-2.0";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_metadata")
Holder teMetadata)
throws TE_Excepcion
;

// CXF
@WebMethod(operationName = "readFileRecord", action = "readFileRecord")
public Response readFileRecordAsync(
@WebParam(name = "ReadFileRecord_IN", targetNamespace = 
"http://telefonica.com/gstr/srv/Bank/msg/readFileRecord-v3";, partName = 
"request")
ReadFileRecord_IN request,
@WebParam(name = "TE_Cabecera", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/cabecera";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_header")
Holder teHeader,
@WebParam(name = "TE_Metadatos", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/metadatos-2.0";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_metadata")
Holder teMetadata);

// METRO 
@WebMethod(operationName = "readFileRecord", action = "readFileRecord")
public Response readFileRecordAsync(
@WebParam(name = "ReadFileRecord_IN", targetNamespace = 
"http://telefonica.com/gstr/srv/Bank/msg/readFileRecord-v3";, partName = 
"request")
ReadFileRecord_IN request,
@WebParam(name = "TE_Cabecera", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/cabecera";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_header")
TE_Cabecera teHeader,
@WebParam(name = "TE_Metadatos", targetNamespace = 
"http://telefonica.com/tran/comarq/cc/metadatos-2.0";, header = true, mode = 
WebParam.Mode.INOUT, partName = "te_metadata")
TE_Metadatos teMetadata);
{code}
Am I missing something here? Shouldn't CXF implement this part of the JAX-WS 
spec?

Thank you in advance.

 

  was:
According to JAX-WS 2.3 spec (section 2.3.4.3), the async binding differs from 
the sync binding in the handling of in-out and out parameters, namely:
 * *Out:* The part or wrapper child is mapped to a property of the response 
bean.
 * *In/Out:* The part or wrapper child is mapped to a method parameter (no 
holder class) and to a property of the response bean.

In our project we are deploying our services on Weblogic, which includes Metro 
(JAX-WS RI) as JAX-WS implementation. And that requires the above signature for 
the async binding to work.

However, CXF does not behave the same way: it expects the same input parameters 
in both bindings (sync and async); that means we still have the _Holder_ class 
and no _ResponseBean_.

As a result, we cannot have the same, portable JAX-WS client that can be used 
either with Metro or CXF, which is what we are striving for...

Take for example, the following WSDL. Note that there are two In-Out SO

[jira] [Commented] (CXF-7926) MicroProfile Rest Client 1.2

2019-01-22 Thread Colm O hEigeartaigh (JIRA)


[ 
https://issues.apache.org/jira/browse/CXF-7926?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16748890#comment-16748890
 ] 

Colm O hEigeartaigh commented on CXF-7926:
--

[~andymc] ping!

> MicroProfile Rest Client 1.2
> 
>
> Key: CXF-7926
> URL: https://issues.apache.org/jira/browse/CXF-7926
> Project: CXF
>  Issue Type: New Feature
>  Components: JAX-RS
>Reporter: Andy McCright
>Assignee: Andy McCright
>Priority: Major
> Fix For: 3.3.0
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> MicroProfile Rest Client 1.2 adds a lot of new function that should improve 
> developer experience and third-party product integration.  
>  
> The complete list of issues in the new spec are available here:
> [https://github.com/eclipse/microprofile-rest-client/milestone/4?closed=1]
>  
> Some of the highlights are:
>  * the ability to specify the base URI in the `@RegisterRestClient` 
> annotation.
>  * `removeContext` method in `AsyncInvocationInterceptor` interface allowing 
> cleanup of contexts transferred from the calling thread.
>  * new `RestClientListener` SPI interface for intercepting Rest Client 
> instances.
>  * portable timeout properties.
>  
> The official release of MP Rest Client 1.2 will be some time in late January 
> or early February 2019.  There is a 1.2-m2 (milestone 2) early access release 
> of the API and TCK that we can build on for the CXF 3.3.0 release.  Once the 
> official release of the API/TCK occurs in early 2019, we can update the maven 
> dependencies to use the official release as part of 3.3.1 or 3.3.2.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)