From afa4f6535b38f8d46a5c9b8d9ef836bcb60a5e1e Mon Sep 17 00:00:00 2001 From: Hunter Stern Date: Mon, 7 Dec 2015 16:36:49 -0800 Subject: [PATCH] If multiple username inputs in login form, favor the one with the word 'login' in it. --- .../org/archive/modules/forms/HTMLForm.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/modules/src/main/java/org/archive/modules/forms/HTMLForm.java b/modules/src/main/java/org/archive/modules/forms/HTMLForm.java index 0634176b..a2b74c4e 100644 --- a/modules/src/main/java/org/archive/modules/forms/HTMLForm.java +++ b/modules/src/main/java/org/archive/modules/forms/HTMLForm.java @@ -112,9 +112,22 @@ public class HTMLForm { * @return boolean likely login form */ public boolean seemsLoginForm() { - return "post".equalsIgnoreCase(method) - && candidateUsernameInputs.size() == 1 - && candidatePasswordInputs.size() == 1; + if ("post".equalsIgnoreCase(method)) { + if (candidatePasswordInputs.size() == 1) { + if (candidateUsernameInputs.size() == 1) { + return true; + } + else if (candidateUsernameInputs.size() > 1) { + for (FormInput formInput : candidateUsernameInputs) { + if (formInput.name != null && formInput.name.toLowerCase().indexOf("login") > 0) { + return true; + } + } + } + } + } + + return false; } /**