MCPcopy Index your code
hub / github.com/OWASP/SecurityShepherd / doPost

Method doPost

src/main/java/servlets/module/RefreshMenu.java:52–121  ·  view source on GitHub ↗

This servlet returns a fresh version of the module menu bar. This is used when completing levels, changing the floor plan or when opening/closing challenges. @param csrfToken

(HttpServletRequest request, HttpServletResponse response)

Source from the content-addressed store, hash-verified

50 * @param csrfToken
51 */
52 public void doPost (HttpServletRequest request, HttpServletResponse response)
53 throws ServletException, IOException
54 {
55 //Setting IpAddress To Log and taking header for original IP if forwarded from proxy
56 ShepherdLogManager.setRequestIp(request.getRemoteAddr(), request.getHeader("X-Forwarded-For"));
57 log.debug("&&& servlets.module.RefreshMenu &&&");
58 PrintWriter out = response.getWriter();
59 out.print(getServletInfo());
60 HttpSession ses = request.getSession(true);
61
62 // Translation Stuff
63 Locale locale = new Locale(Validate.validateLanguage(request.getSession()));
64 ResourceBundle bundle = ResourceBundle.getBundle("i18n.text", locale);
65
66 if(Validate.validateSession(ses))
67 {
68 ShepherdLogManager.setRequestIp(request.getRemoteAddr(), request.getHeader("X-Forwarded-For"), ses.getAttribute("userName").toString());
69 log.debug("Current User: " + ses.getAttribute("userName").toString());
70 Cookie tokenCookie = Validate.getToken(request.getCookies());
71 Object tokenParmeter = request.getParameter("csrfToken");
72 if(Validate.validateTokens(tokenCookie, tokenParmeter))
73 {
74 try
75 {
76
77 String ApplicationRoot = getServletContext().getRealPath("");
78 String userId = (String)ses.getAttribute("userStamp");
79 if(ModulePlan.isIncrementalFloor())
80 {
81 log.debug("Returning CTF Menu");
82 out.write(Getter.getIncrementalModules(ApplicationRoot, userId, ses.getAttribute("lang").toString(), (String)tokenParmeter)
83 + "<script>startScrollsBars();makeSearchList();</script>");
84 }
85 else if (ModulePlan.isOpenFloor())
86 {
87 log.debug("Returning Open Floor Menu");
88 out.write("<li><a id=\"lessonList\" href=\"javascript:;\"><div class=\"menuButton\">" + bundle.getString("generic.text.lessons") +
89 "</div></a><ul id=\"theLessonList\" style=\"display: none;\">" +
90 Getter.getLessons(ApplicationRoot, userId, locale) + "</ul></li><li>" +
91 "<a id=\"challengeList\" href=\"javascript:;\"><div class=\"menuButton\">" +
92 bundle.getString("generic.text.challenges") + "</div></a><ul id=\"theChallengeList\" style=\"display: none;\">" +
93 Getter.getChallenges(ApplicationRoot, userId, locale) + "</ul></li>"
94 + "<script>applyMenuButtonActionsOpenOrTourney('" + Encode.forHtml(tokenParmeter.toString()) + "', \"" + Encode.forHtml(bundle.getString("generic.text.sorryError")) + "\");openFloorToggleFunctions();makeSearchList();</script>");
95 }
96 else
97 {
98 if (ModulePlan.isTournyFloor())
99 log.fatal("Could not Pick ModulePlan to use (All False). Using Tournament Instead");
100 log.debug("Returning Tournament Floor Menu");
101 out.write(Getter.getTournamentModules(ApplicationRoot, userId, locale)
102 + "<script>applyMenuButtonActionsOpenOrTourney('" + Encode.forHtml(tokenParmeter.toString()) + "', \"" + Encode.forHtml(bundle.getString("generic.text.sorryError")) + "\");tournamentToggleFunctions();startScrollsBars();makeSearchList();</script>");
103 }
104 }
105 catch (Exception e)
106 {
107 log.error("Refresh Menu Error: " + e.toString());
108 }
109 }

Callers

nothing calls this directly

Calls 13

setRequestIpMethod · 0.95
validateLanguageMethod · 0.95
validateSessionMethod · 0.95
getTokenMethod · 0.95
validateTokensMethod · 0.95
isIncrementalFloorMethod · 0.95
getIncrementalModulesMethod · 0.95
isOpenFloorMethod · 0.95
getLessonsMethod · 0.95
getChallengesMethod · 0.95
isTournyFloorMethod · 0.95
getTournamentModulesMethod · 0.95

Tested by

no test coverage detected