//TODO should be random generated when starting the server StringPASSWORD="!!webgoat_admin_1234!!"; StringPASSWORD_TOM="thisisasecretfortomonly"; StringADMIN_PASSWORD_LINK="375afe1104f4a487a73823c50a9292a2"; }
@PutMapping//assignment path is bounded to class so we use different http method :-) @ResponseBody public AttackResult registerNewUser(@RequestParam String username_reg, @RequestParam String email_reg, @RequestParam String password_reg)throws Exception { AttackResultattackResult= checkArguments(username_reg, email_reg, password_reg);
if (attackResult == null) { Connectionconnection= DatabaseUtilities.getConnection(webSession); checkDatabase(connection);
StringcheckUserQuery="select userid from " + USERS_TABLE_NAME + " where userid = '" + username_reg + "'"; Statementstatement= connection.createStatement(); ResultSetresultSet= statement.executeQuery(checkUserQuery);
/** * WARNING: DO NOT CHANGE FILE WITHOUT CHANGING .git contents * * @author nbaars * @since 8/17/17. */ publicclassPasswordResetLink {
public String createPasswordReset(String username, String key) { Randomrandom=newRandom(); if (username.equalsIgnoreCase("admin")) { //Admin has a fix reset link random.setSeed(key.length()); } return scramble(random, scramble(random, scramble(random, MD5.getHashString(username)))); }
@GetMapping(value = "/vote/{stars}", produces = MediaType.APPLICATION_JSON_VALUE) @ResponseBody public ResponseEntity<?> vote(@PathVariable(value = "stars")int nrOfStars, HttpServletRequest request) { //Simple implementation of VERB Based Authentication Stringmsg=""; if (request.getMethod().equals("GET")) { HashMap<String, Object> json = Maps.newHashMap(); json.put("error", true); json.put("message", "Sorry but you need to login first in order to vote"); return ResponseEntity.status(200).body(json); } IntegerallVotesForStar= votes.getOrDefault(nrOfStars, 0); votes.put(nrOfStars, allVotesForStar + 1); return ResponseEntity.ok().header("X-Flag", "Thanks for voting, your flag is: " + Flag.FLAGS.get(8)).build(); }