It's impossible to extend
org.apache.cxf.ws.security.policy.model.AlgorithmSuite with a custom
non-standad algorithms.
----------------------------------------------------------------------------------------------------------------------
Key: CXF-3705
URL: https://issues.apache.org/jira/browse/CXF-3705
Project: CXF
Issue Type: Improvement
Components: WS-* Components
Affects Versions: 2.4.1
Reporter: Sergey Zhemzhitsky
It's impossible to extend
org.apache.cxf.ws.security.policy.model.AlgorithmSuite with a custom
non-standad algorithms.
Sometimes it's needed to support non-standard algorithm suite. Now it's hardly
possible to do.
The possible solution is to refactor
org.apache.cxf.ws.security.policy.builders.AlgorithmSuiteBuilder to get all
algorithm suites using cxf extension mechanism, for example,
public class AlgorithmSuiteBuilder implements AssertionBuilder<Element> {
private Bus bus;
public AlgorithmSuiteBuilder(Bus bus) {
this.bus = bus;
}
public Assertion build(Element element, AssertionBuilderFactory factory)
throws IllegalArgumentException {
SPConstants consts =
SP11Constants.SP_NS.equals(element.getNamespaceURI())
? SP11Constants.INSTANCE : SP12Constants.INSTANCE;
Element policyElem = DOMUtils.getFirstElement(element);
String algoSuiteName =
DOMUtils.getFirstElement(policyElem).getLocalName();
AlgorithmSuiteLoader loader =
bus.getExtension(AlgorithmSuiteLoader.class);
AlgorithmSuite suite = loader.getAlgorithmSuite(algoSuiteName, consts);
if(suite == null) {
throw new IllegalArgumentException("Algorithm suite \"" +
algoSuiteName + "\" is not registered");
}
return suite;
}
public QName[] getKnownElements() {
return new QName[]{SP11Constants.ALGORITHM_SUITE,
SP12Constants.ALGORITHM_SUITE};
}
}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira