public void setPassword(Principal principal, PasswordCallback callback)
        throws IOException, AccountNotFoundException {
      // Let the read DB set the password
      _realPricipalDatabase.setPassword(principal, callback);

      // Retrieve the setpassword
      char[] plainPassword = callback.getPassword();

      char[] hexPassword = toHex(plainPassword);

      callback.setPassword(hexPassword);
    }
 public boolean createPrincipal(Principal principal, char[] password) {
   return _realPricipalDatabase.createPrincipal(principal, password);
 }
 public boolean updatePassword(Principal principal, char[] password)
     throws AccountNotFoundException {
   return _realPricipalDatabase.updatePassword(principal, password);
 }
 // Simply delegate to the real PrincipalDB
 public boolean verifyPassword(String principal, char[] password)
     throws AccountNotFoundException {
   return _realPricipalDatabase.verifyPassword(principal, password);
 }
 public void reload() throws IOException {
   _realPricipalDatabase.reload();
 }
 public List<Principal> getUsers() {
   return _realPricipalDatabase.getUsers();
 }
 public Map<String, AuthenticationProviderInitialiser> getMechanisms() {
   return _realPricipalDatabase.getMechanisms();
 }
 public Principal getUser(String username) {
   return _realPricipalDatabase.getUser(username);
 }
 public boolean deletePrincipal(Principal principal) throws AccountNotFoundException {
   return _realPricipalDatabase.deletePrincipal(principal);
 }