@SuppressWarnings("unchecked")
 @Override
 public boolean commit() throws LoginException {
   boolean result = super.commit();
   if (result) {
     SamlCredential samlCredential = null;
     Set<Object> creds = subject.getPublicCredentials();
     for (Object cred : creds) {
       if (cred instanceof SamlCredential) {
         samlCredential = (SamlCredential) cred;
         break;
       }
     }
     if (samlCredential == null) throw logger.authSAMLCredentialNotAvailable();
     Principal principal = new PicketLinkPrincipal("");
     if (super.isUseFirstPass()) {
       this.sharedState.put("javax.security.auth.login.name", principal);
       super.sharedState.put("javax.security.auth.login.password", samlCredential);
     }
   }
   return result;
 }