例: hashPassword method

次のエージェントは、選択された文書内の 3 つのフィールドを処理します。[PasswordCreate] は、ユーザーが入力するパスワードフィールドです。[PasswordVerification] は、ユーザーが入力するもう 1 つのパスワードフィールドです。[Password] は、エージェントが生成する非表示のテキストフィールドです。[Password] が null または空の文字列の場合、エージェントは [PasswordCreate] から値をハッシュします。[Password] に値が含まれているとき、エージェントはその値を PasswordVerify に対して検証します。

import lotus.domino.*;

public class JavaAgent extends AgentBase {

  public void NotesMain() {

    try {
      Session session = getSession();
      AgentContext agentContext = session.getAgentContext();

      // (Your code goes here) 
      DocumentCollection dc = agentContext.getUnprocessedDocuments();
      Document doc = dc.getFirstDocument();
      // If password exists, verify it
      String password = doc.getItemValueString("Password");
      if (password != null && password != "" && password.length() > 0) {
        String pVerify = doc.getItemValueString("PasswordVerification");
        if (pVerify != null && pVerify != "" && pVerify.length() > 0) {
          if (session.verifyPassword(pVerify, password))
            System.out.println("Password verification OK");
          else
            System.out.println("Password verification failed");
          doc.replaceItemValue("PasswordVerification", "");
          doc.save(true, true, true);
        }
        else
          System.out.println("Password verification not specified");
      }
      else { // if password does not exist, create it
        String pCreate = doc.getItemValueString("PasswordCreate");
        if (pCreate != null && pCreate != "" && pCreate.length() >0) {
          doc.replaceItemValue("Password",
            session.hashPassword(pCreate));
          doc.replaceItemValue("PasswordCreate", "");
          doc.save(true, true, true);
          System.out.println("Password created");
        }
        else
          System.out.println("Password not specified");
      }

    } catch(Exception e) {
      e.printStackTrace();
    }
  }
}