SignatureToken doesn't work for Symetricbinding
-----------------------------------------------
Key: RAMPART-139
URL: https://issues.apache.org/jira/browse/RAMPART-139
Project: Rampart
Issue Type: Bug
Components: rampart-policy
Affects Versions: 1.3
Environment: Apacha Rampart client implementation
Running on windows XP
Reporter: Thomas Vandierendonck
When invoking a ws-secured webservice with a policy that only includes a
SignatureToken (no EncryptionToken) a nullpointerException is raised in
RampartPolicyBuilder.java:288.
the reason that this happens is that the policybuilder tries to load an
encryption key while there is none provided.
Here's the snippet from the original policy.xml:
<sp:SignatureToken>
<wsp:Policy>
<sp:X509Token
sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
<wsp:Policy>
<sp:RequireDerivedKeys/>
<sp:RequireThumbprintReference/>
<sp:WssX509V3Token10/>
</wsp:Policy>
</sp:X509Token>
</wsp:Policy>
</sp:SignatureToken>
Than there is the error:
Exception in thread "main" java.lang.NullPointerException
at
org.apache.rampart.policy.RampartPolicyBuilder.symmetricBinding(RampartPolicyBuilder.java:288)
at
org.apache.rampart.policy.RampartPolicyBuilder.processSymmetricPolicyBinding(RampartPolicyBuilder.java:158)
at
org.apache.rampart.policy.RampartPolicyBuilder.build(RampartPolicyBuilder.java:77)
at
org.apache.rampart.RampartMessageData.<init>(RampartMessageData.java:206)
at org.apache.rampart.MessageBuilder.build(MessageBuilder.java:58)
at
org.apache.rampart.handler.RampartSender.invoke(RampartSender.java:64)
at org.apache.axis2.engine.Phase.invoke(Phase.java:292)
at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:377)
at
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:374)
at
org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211)
at
org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
....
and finally the code where all goes wrong:
private static void symmetricBinding(SymmetricBinding binding,
RampartPolicyData rpd) throws WSSPolicyException {
Assertion token = binding.getProtectionToken();
if (token != null) {
rpd.setProtectionToken(((ProtectionToken)token).getProtectionToken());
} else {
token = binding.getEncryptionToken();
Assertion token1 = binding.getSignatureToken();
if (token == null && token1 == null) {
// this is an error - throw something
}
/*
* THIS IS WHERE IT HAPPENS, AN ENCRYPTION TOKEN IS LOADED WHILE NONE IS PROVIDED
*/
rpd.setEncryptionToken(
((EncryptionToken) token).getEncryptionToken());
rpd.setSignatureToken(((SignatureToken) token).getSignatureToken());
}
}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.