use of org.apache.wss4j.common.ext.WSPasswordCallback in project midpoint by Evolveum.
the class ClientPasswordHandler method handle.
@Override
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
for (Callback callback : callbacks) {
if (!(callback instanceof WSPasswordCallback)) {
continue;
}
WSPasswordCallback pc = (WSPasswordCallback) callback;
pc.setPassword(password);
}
}
use of org.apache.wss4j.common.ext.WSPasswordCallback in project cxf by apache.
the class RSSecurityUtils method getPassword.
public static String getPassword(Message message, String userName, int type, Class<?> callingClass) throws WSSecurityException {
CallbackHandler handler = getCallbackHandler(message, callingClass);
if (handler == null) {
return null;
}
WSPasswordCallback[] cb = { new WSPasswordCallback(userName, type) };
try {
handler.handle(cb);
} catch (Exception e) {
return null;
}
// get the password
String password = cb[0].getPassword();
return password == null ? "" : password;
}
use of org.apache.wss4j.common.ext.WSPasswordCallback in project testcases by coheigea.
the class CommonCallbackHandler method handle.
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
for (int i = 0; i < callbacks.length; i++) {
if (callbacks[i] instanceof WSPasswordCallback) {
WSPasswordCallback pc = (WSPasswordCallback) callbacks[i];
if (pc.getUsage() == WSPasswordCallback.SECRET_KEY) {
final AWSCredentials creds = new BasicAWSCredentials(accessKey, secretKey);
AWSKMSClient kms = new AWSKMSClient(creds);
kms.setEndpoint(endpoint);
if (pc.getEncryptedSecret() != null) {
ByteBuffer encryptedKey = ByteBuffer.wrap(pc.getEncryptedSecret());
DecryptRequest req = new DecryptRequest().withCiphertextBlob(encryptedKey);
ByteBuffer plaintextKey = kms.decrypt(req).getPlaintext();
byte[] key = new byte[plaintextKey.remaining()];
plaintextKey.get(key);
pc.setKey(key);
} else {
GenerateDataKeyRequest dataKeyRequest = new GenerateDataKeyRequest();
dataKeyRequest.setKeyId(masterKeyId);
String algorithm = "AES_128";
if (pc.getAlgorithm() != null && pc.getAlgorithm().contains("aes256")) {
algorithm = "AES_256";
}
dataKeyRequest.setKeySpec(algorithm);
GenerateDataKeyResult dataKeyResult = kms.generateDataKey(dataKeyRequest);
ByteBuffer plaintextKey = dataKeyResult.getPlaintext();
byte[] key = new byte[plaintextKey.remaining()];
plaintextKey.get(key);
pc.setKey(key);
ByteBuffer encryptedKey = dataKeyResult.getCiphertextBlob();
byte[] encKey = new byte[encryptedKey.remaining()];
encryptedKey.get(encKey);
pc.setEncryptedSecret(encKey);
// Create a KeyName pointing to the encryption key
Document doc = DOMUtils.newDocument();
Element keyInfoElement = doc.createElementNS(WSConstants.SIG_NS, WSConstants.SIG_PREFIX + ":" + WSConstants.KEYINFO_LN);
keyInfoElement.setAttributeNS(WSConstants.XMLNS_NS, "xmlns:" + WSConstants.SIG_PREFIX, WSConstants.SIG_NS);
Element keyNameElement = doc.createElementNS(WSConstants.SIG_NS, WSConstants.SIG_PREFIX + ":KeyName");
keyNameElement.setTextContent("1c84a3f2-51cc-4c66-9045-68f51ef8b1eb");
keyInfoElement.appendChild(keyNameElement);
pc.setKeyInfoReference(keyInfoElement);
}
}
}
}
}
use of org.apache.wss4j.common.ext.WSPasswordCallback in project tesb-rt-se by Talend.
the class WSPasswordCallbackHandlerTest method handleEncryptedPasswordTest.
@Ignore
public void handleEncryptedPasswordTest() throws Exception {
String username = "username";
String password = PropertyValueEncryptionUtils.encrypt("password", getEncryptor());
WSPasswordCallbackHandler h = new WSPasswordCallbackHandler(username, password);
Callback c = new WSPasswordCallback(username, 0);
List<Callback> cs = new ArrayList<Callback>();
cs.add(c);
h.handle(cs.toArray(new Callback[0]));
}
use of org.apache.wss4j.common.ext.WSPasswordCallback in project tesb-rt-se by Talend.
the class WSPasswordCallbackHandlerTest method handleNoUserTest.
@Test
public void handleNoUserTest() throws Exception {
String username = null;
String password = "password";
WSPasswordCallbackHandler h = new WSPasswordCallbackHandler(username, password);
Callback c = new WSPasswordCallback(username, 0);
List<Callback> cs = new ArrayList<Callback>();
cs.add(c);
h.handle(cs.toArray(new Callback[0]));
}
Aggregations