Code style (#696)
* Remove Guava dependency from WebGoat * Add Checkstyle to the project with very basic standards so we have a style across lessons. It does not interfere with basic Intellij formatting
This commit is contained in:
committed by
René Zubcevic
parent
66bd1d8c1a
commit
1a83e2825e
@ -31,29 +31,31 @@ import java.util.Map;
|
||||
public class AccountVerificationHelper {
|
||||
|
||||
//simulating database storage of verification credentials
|
||||
private static final Integer verifyUserId = 1223445;
|
||||
private static final Map<String,String> userSecQuestions = new HashMap<>();
|
||||
private static final Integer verifyUserId = 1223445;
|
||||
private static final Map<String, String> userSecQuestions = new HashMap<>();
|
||||
|
||||
static {
|
||||
userSecQuestions.put("secQuestion0","Dr. Watson");
|
||||
userSecQuestions.put("secQuestion1","Baker Street");
|
||||
userSecQuestions.put("secQuestion0", "Dr. Watson");
|
||||
userSecQuestions.put("secQuestion1", "Baker Street");
|
||||
}
|
||||
|
||||
private static final Map<Integer,Map> secQuestionStore = new HashMap<>();
|
||||
private static final Map<Integer, Map> secQuestionStore = new HashMap<>();
|
||||
|
||||
static {
|
||||
secQuestionStore.put(verifyUserId,userSecQuestions);
|
||||
secQuestionStore.put(verifyUserId, userSecQuestions);
|
||||
}
|
||||
// end 'data store set up'
|
||||
|
||||
// this is to aid feedback in the attack process and is not intended to be part of the 'vulnerable' code
|
||||
public boolean didUserLikelylCheat(HashMap<String,String> submittedAnswers) {
|
||||
public boolean didUserLikelylCheat(HashMap<String, String> submittedAnswers) {
|
||||
boolean likely = false;
|
||||
|
||||
if (submittedAnswers.size() == secQuestionStore.get(verifyUserId).size()) {
|
||||
likely = true;
|
||||
}
|
||||
|
||||
if ((submittedAnswers.containsKey("secQuestion0") && submittedAnswers.get("secQuestion0").equals(secQuestionStore.get(verifyUserId).get("secQuestion0"))) &&
|
||||
(submittedAnswers.containsKey("secQuestion1") && submittedAnswers.get("secQuestion1").equals(secQuestionStore.get(verifyUserId).get("secQuestion1"))) ) {
|
||||
if ((submittedAnswers.containsKey("secQuestion0") && submittedAnswers.get("secQuestion0").equals(secQuestionStore.get(verifyUserId).get("secQuestion0")))
|
||||
&& (submittedAnswers.containsKey("secQuestion1") && submittedAnswers.get("secQuestion1").equals(secQuestionStore.get(verifyUserId).get("secQuestion1")))) {
|
||||
likely = true;
|
||||
} else {
|
||||
likely = false;
|
||||
@ -64,7 +66,7 @@ public class AccountVerificationHelper {
|
||||
}
|
||||
//end of cheating check ... the method below is the one of real interest. Can you find the flaw?
|
||||
|
||||
public boolean verifyAccount(Integer userId, HashMap<String,String> submittedQuestions ) {
|
||||
public boolean verifyAccount(Integer userId, HashMap<String, String> submittedQuestions) {
|
||||
//short circuit if no questions are submitted
|
||||
if (submittedQuestions.entrySet().size() != secQuestionStore.get(verifyUserId).size()) {
|
||||
return false;
|
||||
|
@ -68,7 +68,7 @@ public class VerifyAccount extends AssignmentEndpoint {
|
||||
}
|
||||
|
||||
// else
|
||||
if (verificationHelper.verifyAccount(new Integer(userId), (HashMap) submittedAnswers)) {
|
||||
if (verificationHelper.verifyAccount(Integer.valueOf(userId), (HashMap) submittedAnswers)) {
|
||||
userSessionData.setValue("account-verified-id", userId);
|
||||
return trackProgress(success()
|
||||
.feedback("verify-account.success")
|
||||
|
Reference in New Issue
Block a user