Well the thing is that WSS4J 1.6.16 was just released, and so the next
release won't happen for a couple of months probably. So if you want to see
a Rampart release before then, you could just submit a patch to check that
the Id isn't empty.

Colm.


On Wed, Jul 9, 2014 at 1:32 PM, <[email protected]> wrote:

> I can open a defect in Rampart, but I'm not sure what should be the
> proposed change there - I was thinking that it can check for empty id tag
> and skip the result, but if wss4j does not generate results with empty id
> anymore, this will not be required. Rampart uses the following code to
> identify the encryption key id from the request, for which a response in
> generated:
>
> for (WSSecurityEngineResult wsSecEngineResult : wsSecEngineResults) {
>     Integer actInt = (Integer)
> wsSecEngineResult.get(WSSecurityEngineResult.TAG_ACTION);
>     String encrKeyId = (String)
> wsSecEngineResult.get(WSSecurityEngineResult.TAG_ID);
>     if (actInt == WSConstants.ENCR && encrKeyId != null) {
>         return encrKeyId;
>     }
> }
>
> If you think the above is improper or can be improved, just let me know
> and I will follow up with Rampart devs.
>
> Detelin
>
>
> On Wed, Jul 9, 2014 at 12:45 PM, Colm O hEigeartaigh <[email protected]>
> wrote:
>
>>
>> Thanks for the investigation. It turns out Maven 3.0.x is required to
>> build Rampart.
>>
>> I've merged a "fix" for this issue in WSS4J, where we don't store the
>> token Id if it is an empty String. IMO Rampart should also be fixed.
>>
>> Colm.
>>
>>
>> On Tue, Jul 8, 2014 at 6:03 PM, <[email protected]> wrote:
>>
>>> I have not seen these, probably it is the "copy-mars" execution in the
>>> integration module that is causing them. It could be some dependency
>>> resolution problem for "mar" artifacts, I'm using Maven 3.0.4 and did not
>>> experience such issues.
>>>
>>> I have some more input on the problem - I think that the introduction of
>>> an "id" tag for reference list results is confusing Rampart, specifically
>>> the first change here:
>>>
>>>
>>> http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/processor/ReferenceListProcessor.java?r1=1294114&r2=1294113&pathrev=1294114
>>>
>>> In the example request that I attached, there is a ReferenceList element
>>> that looks like this:
>>>
>>> <xenc:ReferenceList 
>>> xmlns:xenc="http://www.w3.org/2001/04/xmlenc#";><xenc:DataReference
>>> URI="#ED-5"/></xenc:ReferenceList>
>>>
>>> When processing this, the ReferenceListProcessor with the mentioned
>>> change now creates a result instance, but with an empty "id" tag, since the
>>> ReferenceList element does not have "Id" attribute. The result object looks
>>> like this:
>>>
>>> {id=, data-ref-uris=[org.apache.ws.security.WSDataRef@3e9c6879],
>>> action=4, validated-token=false}
>>>
>>> When generating the response, Rampart's AssymetricBindingBuilder
>>> searches for the encrypted key by iterating over the results list and
>>> checking for a result with action=4 (ENCR) and a non-empty id tag, see
>>> AsymmetricBindingBuilder.setupEncryptedKey and
>>> RampartUtil.getRequestEncryptedKeyId methods:
>>>
>>>
>>> http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/builder/AsymmetricBindingBuilder.java?view=markup#l868
>>>
>>> http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java?view=markup#l1442
>>>
>>> Apparently, it now picks up the result of the ReferenceListProcessor
>>> since it has an "id" tag, but since it has empty value, the
>>> "AssymetricBindingBuilder.encryptedKeyId" field is also left out empty and
>>> this leads to missing token in response...
>>> Commenting out the line in the ReferenceListProcessor that adds the "id"
>>> tag fixes the issue - Rampart then properly finds the result of the
>>> DerivedKeyTokenProcessor and not the one of the ReferenceListProcessor.
>>>
>>> Now the question is whether this has to be fixed in Rampart or in WSS4J?
>>>
>>> Regards,
>>>    Detelin
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Tue, Jul 8, 2014 at 6:39 PM, Colm O hEigeartaigh <[email protected]
>>> > wrote:
>>>
>>>> I keep getting these "Could not find file
>>>> .../target/artifacts/addressing-1.6.3-SNAPSHOT.mar to copy" type errors on
>>>> the 1.6.x branch. How do I work around this?
>>>>
>>>> Colm.
>>>>
>>>>
>>>> On Tue, Jul 8, 2014 at 4:21 PM, <[email protected]> wrote:
>>>>
>>>>> Hi Colm,
>>>>>   What I did so far is to checkout Rampart (I have tried both trunk
>>>>> and 1.6 branches), increase the wss4j dependency to 1.6.5 and run "mvn
>>>>> clean package -Dtest=RampartTest". This fails on the "Testing WS-Sec:
>>>>> custom scenario 7" with the error I described. Switching the dependency
>>>>> back to 1.6.4 fixes this issue, but still there is one additional scenario
>>>>> (28) which is failing, however I presume it is not related with wss4j but
>>>>> probably with Axiom.
>>>>>
>>>>> I have checked out wss4j 1.6.x branch and build it locally, then
>>>>> switched Rampart to this version and re-executed the tests. The tests
>>>>> succeeded up until the point I switched to wss4j revision 1294114. With
>>>>> previous 1294094 revision, this scenario is working fine.
>>>>>
>>>>> I was thinking it might be related with changes of other dependencies,
>>>>> but I doubt this is the case, since this revision does not introduce
>>>>> dependency changes.
>>>>>
>>>>> I will continue with the investigation and let you know once I have
>>>>> more information.
>>>>>
>>>>> Thanks,
>>>>>    Detelin
>>>>>
>>>>>
>>>>> On Tue, Jul 8, 2014 at 4:51 PM, Colm O hEigeartaigh <
>>>>> [email protected]> wrote:
>>>>>
>>>>>>
>>>>>> Are you sure that the commit you referenced above is causing the
>>>>>> problem? Rampart trunk fails on that test for me with WSS4J 1.6.4. 
>>>>>> Rampart
>>>>>> 1.6.x branch fails on something else...
>>>>>>
>>>>>> If you have time to look into it, you could try checking out that
>>>>>> SNAPSHOT version of WSS4J (Before the commit) + check that it works + 
>>>>>> then
>>>>>> apply each change and see what change causes the failure. Ultimately, it
>>>>>> looks like Rampart might be at fault, as the response message is not
>>>>>> composed properly
>>>>>>
>>>>>> Colm.
>>>>>>
>>>>>>
>>>>>> On Tue, Jul 8, 2014 at 12:55 PM, <[email protected]> wrote:
>>>>>>
>>>>>>> Hi everyone,
>>>>>>>    Our team worked on new functionality that is to be released with
>>>>>>> upcoming wss4j 1.6.16 (WSS-500
>>>>>>> <https://issues.apache.org/jira/browse/WSS-500> & WSS-501
>>>>>>> <https://issues.apache.org/jira/browse/WSS-501>). We have managed
>>>>>>> to integrate this functionality within Apache Rampart 1.6.2 and are 
>>>>>>> willing
>>>>>>> to contribute the necessary pieces there as well. However, so far we 
>>>>>>> have
>>>>>>> been using wss4j 1.6.4 + the corresponding patches and they seem to work
>>>>>>> fine with Rampart 1.6.2.
>>>>>>> Once I saw the vote for releasing wss4j 1.6.16, I decided to try to
>>>>>>> build Rampart 1.6.2 against it, just to make sure it can adopt this new
>>>>>>> version in near future.
>>>>>>> However, I stumbled upon a test failure in Rampart integration
>>>>>>> module, which I managed to track down to a specific commit in wss4j. The
>>>>>>> commit is quite old, it is released in wss4j 1.6.5 (latest Rampart uses
>>>>>>> 1.6.4). The change that causes trouble is the following:
>>>>>>>
>>>>>>> http://svn.apache.org/viewvc?view=revision&revision=1294114
>>>>>>>
>>>>>>> Log message says "Only decrypt a Data Reference in the
>>>>>>> ReferenceListProcessor, if it hasn't already been decrypted by the
>>>>>>> EncryptedDataProcessor".
>>>>>>>
>>>>>>> The specific Rampart test that fails is
>>>>>>> "org.apache.rampart.RampartTest#testWithPolicy()" using the following
>>>>>>> security policy:
>>>>>>>
>>>>>>>
>>>>>>> http://svn.apache.org/repos/asf/axis/axis2/java/rampart/trunk/modules/rampart-integration/src/test/resources/rampart/policy/7.xml
>>>>>>>
>>>>>>> I'm attaching the SOAP request and response (request.xml and
>>>>>>> response.xml), the actual error message is on the client side, when
>>>>>>> processing the response from the service:
>>>>>>> java.lang.StringIndexOutOfBoundsException: String index out of
>>>>>>> range: 0
>>>>>>>     at java.lang.String.charAt(String.java:658)
>>>>>>>     at org.apache.ws.security.WSDocInfo.getResult(WSDocInfo.java:225)
>>>>>>>     at
>>>>>>> org.apache.ws.security.str.DerivedKeyTokenSTRParser.parseSecurityTokenReference(DerivedKeyTokenSTRParser.java:90)
>>>>>>>     at
>>>>>>> org.apache.ws.security.processor.DerivedKeyTokenProcessor.handleToken(DerivedKeyTokenProcessor.java:53)
>>>>>>>     at
>>>>>>> org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:398)
>>>>>>>     at
>>>>>>> org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:304)
>>>>>>>     at
>>>>>>> org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:249)
>>>>>>>     at
>>>>>>> org.apache.rampart.RampartEngine.process(RampartEngine.java:147)
>>>>>>>
>>>>>>> The stack trace is generated using wss4j revision 1294114.
>>>>>>>
>>>>>>> It can be seen that the response contains invalid references (URI
>>>>>>> not correctly set):
>>>>>>>
>>>>>>> <wsse:SecurityTokenReference ...
>>>>>>> wsu:Id="STR-AA4ACE8415228CCC8E140481886870110">
>>>>>>>     <wsse:Reference URI="#"  ValueType="
>>>>>>> http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#EncryptedKey";
>>>>>>> />
>>>>>>> </wsse:SecurityTokenReference>
>>>>>>>
>>>>>>> I'm now trying to figure out what is the root cause of this and
>>>>>>> whether the problem is on the wss4j side or on Rampart's side, but I 
>>>>>>> would
>>>>>>> be glad if anyone more experienced takes a look into this and provides 
>>>>>>> some
>>>>>>> feedback.
>>>>>>>
>>>>>>> Thanks!
>>>>>>>
>>>>>>>    Detelin
>>>>>>>
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: [email protected]
>>>>>>> For additional commands, e-mail: [email protected]
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Colm O hEigeartaigh
>>>>>>
>>>>>> Talend Community Coder
>>>>>> http://coders.talend.com
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Colm O hEigeartaigh
>>>>
>>>> Talend Community Coder
>>>> http://coders.talend.com
>>>>
>>>
>>>
>>
>>
>> --
>> Colm O hEigeartaigh
>>
>> Talend Community Coder
>> http://coders.talend.com
>>
>
>


-- 
Colm O hEigeartaigh

Talend Community Coder
http://coders.talend.com

Reply via email to