You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by "Sergey Smith (JIRA)" <ji...@apache.org> on 2015/10/12 13:13:06 UTC
[jira] [Created] (WSS-558)
org.apache.ws.security.message.WSSecSignature can't support custom provider
Sergey Smith created WSS-558:
--------------------------------
Summary: org.apache.ws.security.message.WSSecSignature can't support custom provider
Key: WSS-558
URL: https://issues.apache.org/jira/browse/WSS-558
Project: WSS4J
Issue Type: Bug
Components: WSS4J Core
Affects Versions: 1.6.18
Reporter: Sergey Smith
Assignee: Colm O hEigeartaigh
Priority: Minor
WSSecSignature().init not flexible to use custom java.security.Provider
Which leads to the exceptions to use non-standard implementations of encryption algorithms
Current code:
{code:title=WSSecSignature.java|borderStyle=solid}
public WSSecSignature() {
super();
init();
}
public WSSecSignature(WSSConfig config) {
super(config);
init();
}
private void init() {
// Try to install the Santuario Provider - fall back to the JDK provider if this does
// not work
try {
signatureFactory = XMLSignatureFactory.getInstance("DOM", "ApacheXMLDSig");
} catch (NoSuchProviderException ex) {
signatureFactory = XMLSignatureFactory.getInstance("DOM");
}
try {
keyInfoFactory = KeyInfoFactory.getInstance("DOM", "ApacheXMLDSig");
} catch (NoSuchProviderException ex) {
keyInfoFactory = KeyInfoFactory.getInstance("DOM");
}
}
{code}
My example of solution:
{code:title=WSSecSignature.java|borderStyle=solid}
public CustomWSSecSignature() {
super();
init(null);
}
public CustomWSSecSignature(Provider povider) {
super();
init(povider);
}
private void init(Provider povider) {
if (povider == null)
try {
// Try to install the Santuario Provider - fall back to the JDK provider if this does
// not work
signatureFactory = XMLSignatureFactory.getInstance("DOM", "ApacheXMLDSig");
} catch (NoSuchProviderException ex) {
signatureFactory = XMLSignatureFactory.getInstance("DOM");
}
else
signatureFactory = XMLSignatureFactory.getInstance("DOM", povider);
KeyInfoFactory keyInfoFactory = signatureFactory.getKeyInfoFactory();
}
{code}
It will be very useful to use in vss4j
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@ws.apache.org
For additional commands, e-mail: dev-help@ws.apache.org