次のエージェントは、選択された文書内の 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();
}
}
}