code: protected Credential collectCredential(DataBinder parameters) throws NoSuchAlgorithmException, UnsupportedEncodingException {
          // allow clients to use either <IdentityName> or USERNAME; if both are present <IdentityName> takes precedence
  _logger.log(Level.FINE, "looking for {0} in data binder", IdentityName);
          String id = null;
          if ((id = parameters.get(IdentityName)) != null && id.length() > 0) {
              parameters.put(USERNAME, id);
          } else if ((id = parameters.get(USERNAME)) != null && id.length() > 0) {
              parameters.put(IdentityName, id);
          } else {
              return null;
          }
  _logger.log(Level.FINE, "got identity = {0}", id);
  
          String password = parameters.remove(PASSWORD);
  _logger.log(Level.FINE, "got password = {0}", password);
          if (password != null && password.length() > 0) {
              return new Credential(id, Strings.hash(password));
          } else {
              return null;
          }
  	}
docs: /*
  public void setAuthenticationPage(String page) {
  _page = page;
  }