We don't have a keystore, but the certificate is persisted in a database. I have to retrieve it from the database and give it to cxf, but is that even possible? I can't seem to find any documentation on that
best regards, Ted 2013/5/15 Ted Roeloffzen <[email protected]> > Okay thanks. > This is a first step. > My problem lies in the fact that the action is not Username_token, but > timestap signature > > best regards, > > Ted > > > 2013/5/15 Ted <[email protected]> > >> Not sure if this is the official way or not, but this is how I do it : >> >> AccountWsService service = new AccountWsService("...")); >> port = service.getAccountWsPort(); >> >> Client cxfClient = ClientProxy.getClient(port); >> cxfClient.getOutInterceptors().add(new >> AuthenticationOutWSS4JInterceptor(user, password)); >> >> where AuthenticationOutWSS4JInterceptor looks a little like : >> >> public class AuthenticationOutWSS4JInterceptor extends >> WSS4JOutInterceptor implements CallbackHandler >> { >> private String password = null; >> >> /** >> * @param user can be userId or userName, all depends on >> what the >> received requires >> * @param password can be password or securityToken, all >> depends on >> what the received requires >> */ >> public AuthenticationOutWSS4JInterceptor(Object user, >> String password) >> { >> this.password = password; >> >> HashMap<String, Object> properties = new >> HashMap<String, Object>(); >> properties.put(WSHandlerConstants.ACTION, >> WSHandlerConstants.USERNAME_TOKEN); >> properties.put(WSHandlerConstants.USER, >> user.toString()); >> properties.put(WSHandlerConstants.PASSWORD_TYPE, >> WSConstants.PW_TEXT); >> >> properties.put(WSHandlerConstants.PW_CALLBACK_REF, this); >> >> setProperties(properties); >> } >> >> @Override >> public void handle(Callback[] callbacks) throws >> IOException, >> UnsupportedCallbackException >> { >> for (Callback callback : callbacks) >> { >> if (callback instanceof >> WSPasswordCallback) >> { >> WSPasswordCallback >> wsPasswordCallback = (WSPasswordCallback)callback; >> >> wsPasswordCallback.setPassword(password); >> } >> } >> } >> } >> >> On 5/14/13, Ted Roeloffzen <[email protected]> wrote: >> > Good day all, >> > >> > At this moment I'm working on a webservice-client that has to use >> > WS-Security, but i can't seem to figure out how configure CXF that it >> fills >> > the SOAP-header in the correct way. >> > We don't use Spring for the configuration, so everything has to be >> > configured via the API. >> > >> > We need to have a timestamp, a signature and also a binary security >> token. >> > The Canonicalization-algorithm is xml-exc-c14 >> > The signature-algorithm is RSA-SHA256 >> > >> > can someone point me in the right direction for this? >> > >> > I've already created a WSS4JInInterceptor and a WSS4JOutInterceptor. >> > Both with a properties-map containing an Action = Timestap Signature, >> > signatureAlgorithm = "http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 >> " >> > and signatureDigestAlgorithm = "http://www.w3.org/2001/04/xmlenc#sha256 >> " >> > >> > do I need to configure anymore other than adding a certificate to the >> > keystore? >> > >> > thanks in advance. >> > >> > kind regards, >> > >> > Ted >> > >> >> >> -- >> Ted. >> > >
