}
private boolean authenticateWithGFCBH(Subject callerSubject, String username, String password)throws XWSSecurityException {
if (gfCallbackHandler != null) {
char[] pwd = (password == null) ? null : password.toCharArray();
PasswordValidationCallback pvCallback =
new PasswordValidationCallback(callerSubject,username, pwd);
Callback[] callbacks = new Callback[] { pvCallback };
try {
gfCallbackHandler.handle(callbacks);
} catch (Exception e) {
throw new XWSSecurityException(e);
}
// zero the password
if (pwd != null)
pvCallback.clearPassword();
boolean result = pvCallback.getResult();
if (result) {
//invoke the CallerPrincipalCallback
CallerPrincipalCallback pCallback = new CallerPrincipalCallback(callerSubject, username);
callbacks = new Callback[] { pCallback };
try {