You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wss4j-dev@ws.apache.org by "Evan Leonard (JIRA)" <ji...@apache.org> on 2010/03/29 20:36:27 UTC
[jira] Created: (WSS-228) Encryption with a UsernameToken is
(almost) broken
Encryption with a UsernameToken is (almost) broken
--------------------------------------------------
Key: WSS-228
URL: https://issues.apache.org/jira/browse/WSS-228
Project: WSS4J
Issue Type: Bug
Components: WSS4J Core
Affects Versions: 1.5.8
Reporter: Evan Leonard
Assignee: Ruchith Udayanga Fernando
We just upgraded from 1.5.2 to 1.5.8 and our code for encryption w/ a username token broke.
Basically WSSecEncrypt now requires that prepare is called before getId. Our code was not calling prepare in this case so getId was returning "null" which obviously doesn't work.
Adding a call to prepare would be a simple fix if it didn't take an initialized crypto instance. In the case of using a UsernameToken there is no certificates involved, and we don't have any easily available in this code path. So I had to come up with this ugly work around:
WSSecEncrypt builder = new WSSecEncrypt();
...
KeyStore keystore = KeyStore.getInstance("JKS");
CustomCrypto crypto = new CustomCrypto(keystore); //custom class to allow dire
KeyStore store = CryptoUtils.loadCaCerts(); //loads the JVM cacerts keystore.
Enumeration<String> aliases = store.aliases();
String anAlias = aliases.nextElement();
crypto.setKeyStore(store);
builder.setUserInfo(anAlias);
builder.prepare(doc,crypto);
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org
[jira] Commented: (WSS-228) Encryption with a UsernameToken is
(almost) broken
Posted by "Colm O hEigeartaigh (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/WSS-228?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12869081#action_12869081 ]
Colm O hEigeartaigh commented on WSS-228:
-----------------------------------------
Could you attach a code snippet to show how you were using WSSecEncrypt in 1.5.2 to encrypt with a UsernameToken?
Colm.
> Encryption with a UsernameToken is (almost) broken
> --------------------------------------------------
>
> Key: WSS-228
> URL: https://issues.apache.org/jira/browse/WSS-228
> Project: WSS4J
> Issue Type: Bug
> Components: WSS4J Core
> Affects Versions: 1.5.8
> Reporter: Evan Leonard
> Assignee: Ruchith Udayanga Fernando
>
> We just upgraded from 1.5.2 to 1.5.8 and our code for encryption w/ a username token broke.
> Basically WSSecEncrypt now requires that prepare is called before getId. Our code was not calling prepare in this case so getId was returning "null" which obviously doesn't work.
> Adding a call to prepare would be a simple fix if it didn't take an initialized crypto instance. In the case of using a UsernameToken there is no certificates involved, and we don't have any easily available in this code path. So I had to come up with this ugly work around:
> WSSecEncrypt builder = new WSSecEncrypt();
> ...
> KeyStore keystore = KeyStore.getInstance("JKS");
> CustomCrypto crypto = new CustomCrypto(keystore); //custom class to allow dire
> KeyStore store = CryptoUtils.loadCaCerts(); //loads the JVM cacerts keystore.
> Enumeration<String> aliases = store.aliases();
> String anAlias = aliases.nextElement();
> crypto.setKeyStore(store);
> builder.setUserInfo(anAlias);
> builder.prepare(doc,crypto);
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org