package org.owasp.webgoat.lessons; import org.apache.ecs.Element; import org.apache.ecs.ElementContainer; import org.apache.ecs.HtmlColor; import org.apache.ecs.StringElement; import org.apache.ecs.html.Center; import org.apache.ecs.html.Form; import org.apache.ecs.html.TD; import org.apache.ecs.html.TR; import org.apache.ecs.html.Table; import org.owasp.webgoat.session.*; /** * Copyright (c) 2002 Free Software Foundation developed under the custody of the Open Web * Application Security Project (http://www.owasp.org) This software package org.owasp.webgoat.is published by OWASP * under the GPL. You should read and accept the LICENSE before you use, modify and/or redistribute * this software. * * @author Jeff Williams Aspect Security * @created October 28, 2003 */ public class WelcomeScreen extends Screen { /** * Constructor for the WelcomeScreen object * * @param s Description of the Parameter */ public WelcomeScreen( WebSession s ) { setup( s ); } /** * Constructor for the WelcomeScreen object */ public WelcomeScreen() { } public void setup( WebSession s ) { // call createContent first so messages will go somewhere Form form = new Form( "attack", Form.POST ).setName( "form" ).setEncType( "" ); form.addElement( wrapForm( s ) ); TD lowerright = new TD().setHeight( "100%" ).setVAlign( "top" ).setAlign( "left" ).addElement( form ); TR row = new TR().addElement( lowerright ); Table layout = new Table().setBgColor( HtmlColor.WHITE ).setCellSpacing( 0 ).setCellPadding( 0 ).setBorder( 0 ); layout.addElement( row ); setContent(layout); } protected Element wrapForm( WebSession s ) { if ( s == null ) { return new StringElement( "Invalid Session" ); } Table container = new Table().setWidth( "100%" ).setCellSpacing( 10 ).setCellPadding( 0 ).setBorder( 0 ); // CreateContent can generate error messages so you MUST call it before makeMessages() Element content = createContent( s ); container.addElement( new TR().addElement( new TD().setColSpan( 2 ).setVAlign( "TOP" ).addElement( makeMessages( s ) ) ) ); container.addElement( new TR().addElement( new TD().setColSpan( 2 ).addElement( content ) ) ); container.addElement( new TR() ); return ( container ); } /** * Description of the Method * * @param s Description of the Parameter * @return Description of the Return Value */ protected Element createContent( WebSession s ) { ElementContainer ec = new ElementContainer(); Element b = ECSFactory.makeButton( "Start the Course!" ); ec.addElement( new Center( b ) ); return ( ec ); } public Element getCredits() { return new ElementContainer(); } /** * Gets the instructions attribute of the WelcomeScreen object * * @return The instructions value */ protected String getInstructions() { String instructions = "Enter your name and learn how HTTP really works!"; return ( instructions ); } /** * Gets the title attribute of the WelcomeScreen object * * @return The title value */ public String getTitle() { return ( "Welcome to the Penetration Testing Course" ); } /* (non-Javadoc) * @see session.Screen#getRole() */ public String getRole() { return AbstractLesson.USER_ROLE; } }