Merge pull request #17 from WebGoat/master
Bring master up to date from next
This commit is contained in:
		
							
								
								
									
										2
									
								
								pom.xml
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								pom.xml
									
									
									
									
									
								
							| @ -5,7 +5,7 @@ | ||||
|     <groupId>WebGoat</groupId> | ||||
|     <artifactId>WebGoat</artifactId> | ||||
|     <packaging>war</packaging> | ||||
|     <version>6.0-SNAPSHOT</version> | ||||
|     <version>6.0-beta</version> | ||||
|  | ||||
|     <repositories> | ||||
|         <repository> | ||||
|  | ||||
| @ -1,406 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!-- | ||||
|   Licensed to the Apache Software Foundation (ASF) under one or more | ||||
|   contributor license agreements.  See the NOTICE file distributed with | ||||
|   this work for additional information regarding copyright ownership. | ||||
|   The ASF licenses this file to You under the Apache License, Version 2.0 | ||||
|   (the "License"); you may not use this file except in compliance with | ||||
|   the License.  You may obtain a copy of the License at | ||||
|  | ||||
|       http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
|   Unless required by applicable law or agreed to in writing, software | ||||
|   distributed under the License is distributed on an "AS IS" BASIS, | ||||
|   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|   See the License for the specific language governing permissions and | ||||
|   limitations under the License. | ||||
| --> | ||||
| <!-- Example Server Configuration File --> | ||||
| <!-- Note that component elements are nested corresponding to their | ||||
|      parent-child relationships with each other --> | ||||
|  | ||||
| <!-- A "Server" is a singleton element that represents the entire JVM, | ||||
|      which may contain one or more "Service" instances.  The Server | ||||
|      listens for a shutdown command on the indicated port. | ||||
|  | ||||
|      Note:  A "Server" is not itself a "Container", so you may not | ||||
|      define subcomponents such as "Valves" or "Loggers" at this level. | ||||
|  --> | ||||
|  | ||||
| <Server port="8005" shutdown="SHUTDOWN"> | ||||
|  | ||||
|   <!-- Comment these entries out to disable JMX MBeans support used for the  | ||||
|        administration web application --> | ||||
|   <Listener className="org.apache.catalina.core.AprLifecycleListener" /> | ||||
|   <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" /> | ||||
|   <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> | ||||
|   <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/> | ||||
|  | ||||
|   <!-- Global JNDI resources --> | ||||
|   <GlobalNamingResources> | ||||
|  | ||||
|     <!-- Test entry for demonstration purposes --> | ||||
|     <Environment name="simpleValue" type="java.lang.Integer" value="30"/> | ||||
|  | ||||
|     <!-- Editable user database that can also be used by | ||||
|          UserDatabaseRealm to authenticate users --> | ||||
|     <Resource name="UserDatabase" auth="Container" | ||||
|               type="org.apache.catalina.UserDatabase" | ||||
|        description="User database that can be updated and saved" | ||||
|            factory="org.apache.catalina.users.MemoryUserDatabaseFactory" | ||||
|           pathname="conf/tomcat-users.xml" /> | ||||
|  | ||||
|   </GlobalNamingResources> | ||||
|  | ||||
|   <!-- A "Service" is a collection of one or more "Connectors" that share | ||||
|        a single "Container" (and therefore the web applications visible | ||||
|        within that Container).  Normally, that Container is an "Engine", | ||||
|        but this is not required. | ||||
|  | ||||
|        Note:  A "Service" is not itself a "Container", so you may not | ||||
|        define subcomponents such as "Valves" or "Loggers" at this level. | ||||
|    --> | ||||
|  | ||||
|   <!-- Define the Tomcat Stand-Alone Service --> | ||||
|   <Service name="Catalina"> | ||||
|  | ||||
|     <!-- A "Connector" represents an endpoint by which requests are received | ||||
|          and responses are returned.  Each Connector passes requests on to the | ||||
|          associated "Container" (normally an Engine) for processing. | ||||
|  | ||||
|          By default, a non-SSL HTTP/1.1 Connector is established on port 8080. | ||||
|          You can also enable an SSL HTTP/1.1 Connector on port 8443 by | ||||
|          following the instructions below and uncommenting the second Connector | ||||
|          entry.  SSL support requires the following steps (see the SSL Config | ||||
|          HOWTO in the Tomcat 5 documentation bundle for more detailed | ||||
|          instructions): | ||||
|          * If your JDK version 1.3 or prior, download and install JSSE 1.0.2 or | ||||
|            later, and put the JAR files into "$JAVA_HOME/jre/lib/ext". | ||||
|          * Execute: | ||||
|              %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows) | ||||
|              $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA  (Unix) | ||||
|            with a password value of "changeit" for both the certificate and | ||||
|            the keystore itself. | ||||
|  | ||||
|          By default, DNS lookups are enabled when a web application calls | ||||
|          request.getRemoteHost().  This can have an adverse impact on | ||||
|          performance, so you can disable it by setting the | ||||
|          "enableLookups" attribute to "false".  When DNS lookups are disabled, | ||||
|          request.getRemoteHost() will return the String version of the | ||||
|          IP address of the remote client. | ||||
|     --> | ||||
|  | ||||
|     <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 --> | ||||
|     <!--  | ||||
| 	<Connector port="8080" maxHttpHeaderSize="8192" | ||||
|                maxThreads="150" minSpareThreads="25" maxSpareThreads="75" | ||||
|                enableLookups="false" redirectPort="8443" acceptCount="100" | ||||
|                connectionTimeout="20000" disableUploadTimeout="true" /> | ||||
| 	--> | ||||
|     <Connector address="127.0.0.1" port="80" maxHttpHeaderSize="8192" | ||||
|                maxThreads="150" minSpareThreads="25" maxSpareThreads="75" | ||||
|                enableLookups="false" redirectPort="8443" acceptCount="100" | ||||
|                connectionTimeout="20000" disableUploadTimeout="true" | ||||
|                allowTrace="true" /> | ||||
|     <!-- Note : To disable connection timeouts, set connectionTimeout value | ||||
|      to 0 --> | ||||
| 	 | ||||
| 	<!-- Note : To use gzip compression you could set the following properties : | ||||
| 	 | ||||
| 			   compression="on"  | ||||
| 			   compressionMinSize="2048"  | ||||
| 			   noCompressionUserAgents="gozilla, traviata"  | ||||
| 			   compressableMimeType="text/html,text/xml" | ||||
| 	--> | ||||
|  | ||||
|     <!-- Define a SSL HTTP/1.1 Connector on port 8443 --> | ||||
|     <!-- | ||||
|     <Connector port="8443" maxHttpHeaderSize="8192" | ||||
|                maxThreads="150" minSpareThreads="25" maxSpareThreads="75" | ||||
|                enableLookups="false" disableUploadTimeout="true" | ||||
|                acceptCount="100" scheme="https" secure="true" | ||||
|                clientAuth="false" sslProtocol="TLS" /> | ||||
|     --> | ||||
|     <!-- Define a WebGoat SSL HTTP/1.1 Connector on port 443 --> | ||||
|     <!-- | ||||
|     <Connector address="127.0.0.1" port="443" maxHttpHeaderSize="8192" | ||||
|                maxThreads="150" minSpareThreads="25" maxSpareThreads="75" | ||||
|                enableLookups="false" acceptCount="100" | ||||
|                connectionTimeout="20000" disableUploadTimeout="true" | ||||
|                allowTrace="true" scheme="https" secure="true" | ||||
|                clientAuth="false" sslProtocol="TLS"/> | ||||
| 	--> | ||||
|     <!-- Define an AJP 1.3 Connector on port 8009 --> | ||||
|     <Connector port="8009"  | ||||
|                enableLookups="false" redirectPort="8443" protocol="AJP/1.3" /> | ||||
|  | ||||
|     <!-- Define a Proxied HTTP/1.1 Connector on port 8082 --> | ||||
|     <!-- See proxy documentation for more information about using this. --> | ||||
|     <!-- | ||||
|     <Connector port="8082"  | ||||
|                maxThreads="150" minSpareThreads="25" maxSpareThreads="75" | ||||
|                enableLookups="false" acceptCount="100" connectionTimeout="20000" | ||||
|                proxyPort="80" disableUploadTimeout="true" /> | ||||
|     --> | ||||
|  | ||||
|     <!-- An Engine represents the entry point (within Catalina) that processes | ||||
|          every request.  The Engine implementation for Tomcat stand alone | ||||
|          analyzes the HTTP headers included with the request, and passes them | ||||
|          on to the appropriate Host (virtual host). --> | ||||
|  | ||||
|     <!-- You should set jvmRoute to support load-balancing via AJP ie : | ||||
|     <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">          | ||||
|     -->  | ||||
|           | ||||
|     <!-- Define the top level container in our container hierarchy --> | ||||
|     <Engine name="Catalina" defaultHost="localhost"> | ||||
|  | ||||
|       <!-- The request dumper valve dumps useful debugging information about | ||||
|            the request headers and cookies that were received, and the response | ||||
|            headers and cookies that were sent, for all requests received by | ||||
|            this instance of Tomcat.  If you care only about requests to a | ||||
|            particular virtual host, or a particular application, nest this | ||||
|            element inside the corresponding <Host> or <Context> entry instead. | ||||
|  | ||||
|            For a similar mechanism that is portable to all Servlet 2.4 | ||||
|            containers, check out the "RequestDumperFilter" Filter in the | ||||
|            example application (the source for this filter may be found in | ||||
|            "$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters"). | ||||
|  | ||||
|            Note that this Valve uses the platform's default character encoding. | ||||
|            This may cause problems for developers in another encoding, e.g. | ||||
|            UTF-8.  Use the RequestDumperFilter instead. | ||||
|  | ||||
|            Also note that enabling this Valve will write a ton of stuff to your | ||||
|            logs.  They are likely to grow quite large.  This extensive log writing | ||||
|            will definitely slow down your server. | ||||
|  | ||||
|            Request dumping is disabled by default.  Uncomment the following | ||||
|            element to enable it. --> | ||||
|       <!-- | ||||
|       <Valve className="org.apache.catalina.valves.RequestDumperValve"/> | ||||
|       --> | ||||
|  | ||||
|       <!-- Because this Realm is here, an instance will be shared globally --> | ||||
|  | ||||
|       <!-- This Realm uses the UserDatabase configured in the global JNDI | ||||
|            resources under the key "UserDatabase".  Any edits | ||||
|            that are performed against this UserDatabase are immediately | ||||
|            available for use by the Realm.  --> | ||||
|       <Realm className="org.apache.catalina.realm.UserDatabaseRealm" | ||||
|              resourceName="UserDatabase"/> | ||||
|  | ||||
|       <!-- Comment out the old realm but leave here for now in case we | ||||
|            need to go back quickly --> | ||||
|       <!-- | ||||
|       <Realm className="org.apache.catalina.realm.MemoryRealm" /> | ||||
|       --> | ||||
|  | ||||
|       <!-- Replace the above Realm with one of the following to get a Realm | ||||
|            stored in a database and accessed via JDBC --> | ||||
|  | ||||
|       <!-- | ||||
|       <Realm  className="org.apache.catalina.realm.JDBCRealm" | ||||
|              driverName="org.gjt.mm.mysql.Driver" | ||||
|           connectionURL="jdbc:mysql://localhost/authority" | ||||
|          connectionName="test" connectionPassword="test" | ||||
|               userTable="users" userNameCol="user_name" userCredCol="user_pass" | ||||
|           userRoleTable="user_roles" roleNameCol="role_name" /> | ||||
|       --> | ||||
|  | ||||
|       <!-- | ||||
|       <Realm  className="org.apache.catalina.realm.JDBCRealm" | ||||
|              driverName="oracle.jdbc.driver.OracleDriver" | ||||
|           connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL" | ||||
|          connectionName="scott" connectionPassword="tiger" | ||||
|               userTable="users" userNameCol="user_name" userCredCol="user_pass" | ||||
|           userRoleTable="user_roles" roleNameCol="role_name" /> | ||||
|       --> | ||||
|  | ||||
|       <!-- | ||||
|       <Realm  className="org.apache.catalina.realm.JDBCRealm" | ||||
|              driverName="sun.jdbc.odbc.JdbcOdbcDriver" | ||||
|           connectionURL="jdbc:odbc:CATALINA" | ||||
|               userTable="users" userNameCol="user_name" userCredCol="user_pass" | ||||
|           userRoleTable="user_roles" roleNameCol="role_name" /> | ||||
|       --> | ||||
|  | ||||
|       <!-- Define the default virtual host | ||||
|            Note: XML Schema validation will not work with Xerces 2.2. | ||||
|        --> | ||||
|       <Host name="localhost" appBase="webapps" | ||||
|        unpackWARs="true" autoDeploy="true" | ||||
|        xmlValidation="false" xmlNamespaceAware="false"> | ||||
|  | ||||
|         <!-- Defines a cluster for this node, | ||||
|              By defining this element, means that every manager will be changed. | ||||
|              So when running a cluster, only make sure that you have webapps in there | ||||
|              that need to be clustered and remove the other ones. | ||||
|              A cluster has the following parameters: | ||||
|  | ||||
|              className = the fully qualified name of the cluster class | ||||
|  | ||||
|              clusterName = a descriptive name for your cluster, can be anything | ||||
|  | ||||
|              mcastAddr = the multicast address, has to be the same for all the nodes | ||||
|  | ||||
|              mcastPort = the multicast port, has to be the same for all the nodes | ||||
|               | ||||
|              mcastBindAddress = bind the multicast socket to a specific address | ||||
|               | ||||
|              mcastTTL = the multicast TTL if you want to limit your broadcast | ||||
|               | ||||
|              mcastSoTimeout = the multicast readtimeout  | ||||
|  | ||||
|              mcastFrequency = the number of milliseconds in between sending a "I'm alive" heartbeat | ||||
|  | ||||
|              mcastDropTime = the number a milliseconds before a node is considered "dead" if no heartbeat is received | ||||
|  | ||||
|              tcpThreadCount = the number of threads to handle incoming replication requests, optimal would be the same amount of threads as nodes  | ||||
|  | ||||
|              tcpListenAddress = the listen address (bind address) for TCP cluster request on this host,  | ||||
|                                 in case of multiple ethernet cards. | ||||
|                                 auto means that address becomes | ||||
|                                 InetAddress.getLocalHost().getHostAddress() | ||||
|  | ||||
|              tcpListenPort = the tcp listen port | ||||
|  | ||||
|              tcpSelectorTimeout = the timeout (ms) for the Selector.select() method in case the OS | ||||
|                                   has a wakup bug in java.nio. Set to 0 for no timeout | ||||
|  | ||||
|              printToScreen = true means that managers will also print to std.out | ||||
|  | ||||
|              expireSessionsOnShutdown = true means that  | ||||
|  | ||||
|              useDirtyFlag = true means that we only replicate a session after setAttribute,removeAttribute has been called. | ||||
|                             false means to replicate the session after each request. | ||||
|                             false means that replication would work for the following piece of code: (only for SimpleTcpReplicationManager) | ||||
|                             <% | ||||
|                             HashMap map = (HashMap)session.getAttribute("map"); | ||||
|                             map.put("key","value"); | ||||
|                             %> | ||||
|              replicationMode = can be either 'pooled', 'synchronous' or 'asynchronous'. | ||||
|                                * Pooled means that the replication happens using several sockets in a synchronous way. Ie, the data gets replicated, then the request return. This is the same as the 'synchronous' setting except it uses a pool of sockets, hence it is multithreaded. This is the fastest and safest configuration. To use this, also increase the nr of tcp threads that you have dealing with replication. | ||||
|                                * Synchronous means that the thread that executes the request, is also the | ||||
|                                thread the replicates the data to the other nodes, and will not return until all | ||||
|                                nodes have received the information. | ||||
|                                * Asynchronous means that there is a specific 'sender' thread for each cluster node, | ||||
|                                so the request thread will queue the replication request into a "smart" queue, | ||||
|                                and then return to the client. | ||||
|                                The "smart" queue is a queue where when a session is added to the queue, and the same session | ||||
|                                already exists in the queue from a previous request, that session will be replaced | ||||
|                                in the queue instead of replicating two requests. This almost never happens, unless there is a  | ||||
|                                large network delay. | ||||
|         -->              | ||||
|         <!-- | ||||
|             When configuring for clustering, you also add in a valve to catch all the requests | ||||
|             coming in, at the end of the request, the session may or may not be replicated. | ||||
|             A session is replicated if and only if all the conditions are met: | ||||
|             1. useDirtyFlag is true or setAttribute or removeAttribute has been called AND | ||||
|             2. a session exists (has been created) | ||||
|             3. the request is not trapped by the "filter" attribute | ||||
|  | ||||
|             The filter attribute is to filter out requests that could not modify the session, | ||||
|             hence we don't replicate the session after the end of this request. | ||||
|             The filter is negative, ie, anything you put in the filter, you mean to filter out, | ||||
|             ie, no replication will be done on requests that match one of the filters. | ||||
|             The filter attribute is delimited by ;, so you can't escape out ; even if you wanted to. | ||||
|  | ||||
|             filter=".*\.gif;.*\.js;" means that we will not replicate the session after requests with the URI | ||||
|             ending with .gif and .js are intercepted. | ||||
|              | ||||
|             The deployer element can be used to deploy apps cluster wide. | ||||
|             Currently the deployment only deploys/undeploys to working members in the cluster | ||||
|             so no WARs are copied upons startup of a broken node. | ||||
|             The deployer watches a directory (watchDir) for WAR files when watchEnabled="true" | ||||
|             When a new war file is added the war gets deployed to the local instance, | ||||
|             and then deployed to the other instances in the cluster. | ||||
|             When a war file is deleted from the watchDir the war is undeployed locally  | ||||
|             and cluster wide | ||||
|         --> | ||||
|          | ||||
|         <!-- | ||||
|         <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster" | ||||
|                  managerClassName="org.apache.catalina.cluster.session.DeltaManager" | ||||
|                  expireSessionsOnShutdown="false" | ||||
|                  useDirtyFlag="true" | ||||
|                  notifyListenersOnReplication="true"> | ||||
|  | ||||
|             <Membership  | ||||
|                 className="org.apache.catalina.cluster.mcast.McastService" | ||||
|                 mcastAddr="228.0.0.4" | ||||
|                 mcastPort="45564" | ||||
|                 mcastFrequency="500" | ||||
|                 mcastDropTime="3000"/> | ||||
|  | ||||
|             <Receiver  | ||||
|                 className="org.apache.catalina.cluster.tcp.ReplicationListener" | ||||
|                 tcpListenAddress="auto" | ||||
|                 tcpListenPort="4001" | ||||
|                 tcpSelectorTimeout="100" | ||||
|                 tcpThreadCount="6"/> | ||||
|  | ||||
|             <Sender | ||||
|                 className="org.apache.catalina.cluster.tcp.ReplicationTransmitter" | ||||
|                 replicationMode="pooled" | ||||
|                 ackTimeout="15000" | ||||
|                 waitForAck="true"/> | ||||
|  | ||||
|             <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve" | ||||
|                    filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/> | ||||
|                     | ||||
|             <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer" | ||||
|                       tempDir="/tmp/war-temp/" | ||||
|                       deployDir="/tmp/war-deploy/" | ||||
|                       watchDir="/tmp/war-listen/" | ||||
|                       watchEnabled="false"/> | ||||
|                        | ||||
|             <ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/> | ||||
|         </Cluster> | ||||
|         -->         | ||||
|  | ||||
|  | ||||
|  | ||||
|         <!-- Normally, users must authenticate themselves to each web app | ||||
|              individually.  Uncomment the following entry if you would like | ||||
|              a user to be authenticated the first time they encounter a | ||||
|              resource protected by a security constraint, and then have that | ||||
|              user identity maintained across *all* web applications contained | ||||
|              in this virtual host. --> | ||||
|         <!-- | ||||
|         <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> | ||||
|         --> | ||||
|  | ||||
|         <!-- Access log processes all requests for this virtual host.  By | ||||
|              default, log files are created in the "logs" directory relative to | ||||
|              $CATALINA_HOME.  If you wish, you can specify a different | ||||
|              directory with the "directory" attribute.  Specify either a relative | ||||
|              (to $CATALINA_HOME) or absolute path to the desired directory. | ||||
|         --> | ||||
|         <!-- | ||||
|         <Valve className="org.apache.catalina.valves.AccessLogValve" | ||||
|                  directory="logs"  prefix="localhost_access_log." suffix=".txt" | ||||
|                  pattern="common" resolveHosts="false"/> | ||||
|         --> | ||||
|  | ||||
|         <!-- Access log processes all requests for this virtual host.  By | ||||
|              default, log files are created in the "logs" directory relative to | ||||
|              $CATALINA_HOME.  If you wish, you can specify a different | ||||
|              directory with the "directory" attribute.  Specify either a relative | ||||
|              (to $CATALINA_HOME) or absolute path to the desired directory. | ||||
|              This access log implementation is optimized for maximum performance, | ||||
|              but is hardcoded to support only the "common" and "combined" patterns. | ||||
|         --> | ||||
|         <!-- | ||||
|         <Valve className="org.apache.catalina.valves.FastCommonAccessLogValve" | ||||
|                  directory="logs"  prefix="localhost_access_log." suffix=".txt" | ||||
|                  pattern="common" resolveHosts="false"/> | ||||
|         --> | ||||
|  | ||||
|       </Host> | ||||
|  | ||||
|     </Engine> | ||||
|  | ||||
|   </Service> | ||||
|  | ||||
| </Server> | ||||
| @ -1,406 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!-- | ||||
|   Licensed to the Apache Software Foundation (ASF) under one or more | ||||
|   contributor license agreements.  See the NOTICE file distributed with | ||||
|   this work for additional information regarding copyright ownership. | ||||
|   The ASF licenses this file to You under the Apache License, Version 2.0 | ||||
|   (the "License"); you may not use this file except in compliance with | ||||
|   the License.  You may obtain a copy of the License at | ||||
|  | ||||
|       http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
|   Unless required by applicable law or agreed to in writing, software | ||||
|   distributed under the License is distributed on an "AS IS" BASIS, | ||||
|   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|   See the License for the specific language governing permissions and | ||||
|   limitations under the License. | ||||
| --> | ||||
| <!-- Example Server Configuration File --> | ||||
| <!-- Note that component elements are nested corresponding to their | ||||
|      parent-child relationships with each other --> | ||||
|  | ||||
| <!-- A "Server" is a singleton element that represents the entire JVM, | ||||
|      which may contain one or more "Service" instances.  The Server | ||||
|      listens for a shutdown command on the indicated port. | ||||
|  | ||||
|      Note:  A "Server" is not itself a "Container", so you may not | ||||
|      define subcomponents such as "Valves" or "Loggers" at this level. | ||||
|  --> | ||||
|  | ||||
| <Server port="8005" shutdown="SHUTDOWN"> | ||||
|  | ||||
|   <!-- Comment these entries out to disable JMX MBeans support used for the  | ||||
|        administration web application --> | ||||
|   <Listener className="org.apache.catalina.core.AprLifecycleListener" /> | ||||
|   <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener" /> | ||||
|   <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> | ||||
|   <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/> | ||||
|  | ||||
|   <!-- Global JNDI resources --> | ||||
|   <GlobalNamingResources> | ||||
|  | ||||
|     <!-- Test entry for demonstration purposes --> | ||||
|     <Environment name="simpleValue" type="java.lang.Integer" value="30"/> | ||||
|  | ||||
|     <!-- Editable user database that can also be used by | ||||
|          UserDatabaseRealm to authenticate users --> | ||||
|     <Resource name="UserDatabase" auth="Container" | ||||
|               type="org.apache.catalina.UserDatabase" | ||||
|        description="User database that can be updated and saved" | ||||
|            factory="org.apache.catalina.users.MemoryUserDatabaseFactory" | ||||
|           pathname="conf/tomcat-users.xml" /> | ||||
|  | ||||
|   </GlobalNamingResources> | ||||
|  | ||||
|   <!-- A "Service" is a collection of one or more "Connectors" that share | ||||
|        a single "Container" (and therefore the web applications visible | ||||
|        within that Container).  Normally, that Container is an "Engine", | ||||
|        but this is not required. | ||||
|  | ||||
|        Note:  A "Service" is not itself a "Container", so you may not | ||||
|        define subcomponents such as "Valves" or "Loggers" at this level. | ||||
|    --> | ||||
|  | ||||
|   <!-- Define the Tomcat Stand-Alone Service --> | ||||
|   <Service name="Catalina"> | ||||
|  | ||||
|     <!-- A "Connector" represents an endpoint by which requests are received | ||||
|          and responses are returned.  Each Connector passes requests on to the | ||||
|          associated "Container" (normally an Engine) for processing. | ||||
|  | ||||
|          By default, a non-SSL HTTP/1.1 Connector is established on port 8080. | ||||
|          You can also enable an SSL HTTP/1.1 Connector on port 8443 by | ||||
|          following the instructions below and uncommenting the second Connector | ||||
|          entry.  SSL support requires the following steps (see the SSL Config | ||||
|          HOWTO in the Tomcat 5 documentation bundle for more detailed | ||||
|          instructions): | ||||
|          * If your JDK version 1.3 or prior, download and install JSSE 1.0.2 or | ||||
|            later, and put the JAR files into "$JAVA_HOME/jre/lib/ext". | ||||
|          * Execute: | ||||
|              %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA (Windows) | ||||
|              $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA  (Unix) | ||||
|            with a password value of "changeit" for both the certificate and | ||||
|            the keystore itself. | ||||
|  | ||||
|          By default, DNS lookups are enabled when a web application calls | ||||
|          request.getRemoteHost().  This can have an adverse impact on | ||||
|          performance, so you can disable it by setting the | ||||
|          "enableLookups" attribute to "false".  When DNS lookups are disabled, | ||||
|          request.getRemoteHost() will return the String version of the | ||||
|          IP address of the remote client. | ||||
|     --> | ||||
|  | ||||
|     <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 --> | ||||
|     <!--  | ||||
| 	<Connector port="8080" maxHttpHeaderSize="8192" | ||||
|                maxThreads="150" minSpareThreads="25" maxSpareThreads="75" | ||||
|                enableLookups="false" redirectPort="8443" acceptCount="100" | ||||
|                connectionTimeout="20000" disableUploadTimeout="true" /> | ||||
| 	--> | ||||
|     <Connector address="127.0.0.1" port="8080" maxHttpHeaderSize="8192" | ||||
|                maxThreads="150" minSpareThreads="25" maxSpareThreads="75" | ||||
|                enableLookups="false" redirectPort="8443" acceptCount="100" | ||||
|                connectionTimeout="20000" disableUploadTimeout="true" | ||||
|                allowTrace="true" /> | ||||
|     <!-- Note : To disable connection timeouts, set connectionTimeout value | ||||
|      to 0 --> | ||||
| 	 | ||||
| 	<!-- Note : To use gzip compression you could set the following properties : | ||||
| 	 | ||||
| 			   compression="on"  | ||||
| 			   compressionMinSize="2048"  | ||||
| 			   noCompressionUserAgents="gozilla, traviata"  | ||||
| 			   compressableMimeType="text/html,text/xml" | ||||
| 	--> | ||||
|  | ||||
|     <!-- Define a SSL HTTP/1.1 Connector on port 8443 --> | ||||
|     <!-- | ||||
|     <Connector port="8443" maxHttpHeaderSize="8192" | ||||
|                maxThreads="150" minSpareThreads="25" maxSpareThreads="75" | ||||
|                enableLookups="false" disableUploadTimeout="true" | ||||
|                acceptCount="100" scheme="https" secure="true" | ||||
|                clientAuth="false" sslProtocol="TLS" /> | ||||
|     --> | ||||
|     <!-- Define a WebGoat SSL HTTP/1.1 Connector on port 8443 --> | ||||
|     <!-- | ||||
|     <Connector address="127.0.0.1" port="8443" maxHttpHeaderSize="8192" | ||||
|                maxThreads="150" minSpareThreads="25" maxSpareThreads="75" | ||||
|                enableLookups="false" acceptCount="100" | ||||
|                connectionTimeout="20000" disableUploadTimeout="true" | ||||
|                allowTrace="true" scheme="https" secure="true" | ||||
|                clientAuth="false" sslProtocol="TLS"/> | ||||
|     --> | ||||
|     <!-- Define an AJP 1.3 Connector on port 8009 --> | ||||
|     <Connector port="8009"  | ||||
|                enableLookups="false" redirectPort="8443" protocol="AJP/1.3" /> | ||||
|  | ||||
|     <!-- Define a Proxied HTTP/1.1 Connector on port 8082 --> | ||||
|     <!-- See proxy documentation for more information about using this. --> | ||||
|     <!-- | ||||
|     <Connector port="8082"  | ||||
|                maxThreads="150" minSpareThreads="25" maxSpareThreads="75" | ||||
|                enableLookups="false" acceptCount="100" connectionTimeout="20000" | ||||
|                proxyPort="80" disableUploadTimeout="true" /> | ||||
|     --> | ||||
|  | ||||
|     <!-- An Engine represents the entry point (within Catalina) that processes | ||||
|          every request.  The Engine implementation for Tomcat stand alone | ||||
|          analyzes the HTTP headers included with the request, and passes them | ||||
|          on to the appropriate Host (virtual host). --> | ||||
|  | ||||
|     <!-- You should set jvmRoute to support load-balancing via AJP ie : | ||||
|     <Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">          | ||||
|     -->  | ||||
|           | ||||
|     <!-- Define the top level container in our container hierarchy --> | ||||
|     <Engine name="Catalina" defaultHost="localhost"> | ||||
|  | ||||
|       <!-- The request dumper valve dumps useful debugging information about | ||||
|            the request headers and cookies that were received, and the response | ||||
|            headers and cookies that were sent, for all requests received by | ||||
|            this instance of Tomcat.  If you care only about requests to a | ||||
|            particular virtual host, or a particular application, nest this | ||||
|            element inside the corresponding <Host> or <Context> entry instead. | ||||
|  | ||||
|            For a similar mechanism that is portable to all Servlet 2.4 | ||||
|            containers, check out the "RequestDumperFilter" Filter in the | ||||
|            example application (the source for this filter may be found in | ||||
|            "$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters"). | ||||
|  | ||||
|            Note that this Valve uses the platform's default character encoding. | ||||
|            This may cause problems for developers in another encoding, e.g. | ||||
|            UTF-8.  Use the RequestDumperFilter instead. | ||||
|  | ||||
|            Also note that enabling this Valve will write a ton of stuff to your | ||||
|            logs.  They are likely to grow quite large.  This extensive log writing | ||||
|            will definitely slow down your server. | ||||
|  | ||||
|            Request dumping is disabled by default.  Uncomment the following | ||||
|            element to enable it. --> | ||||
|       <!-- | ||||
|       <Valve className="org.apache.catalina.valves.RequestDumperValve"/> | ||||
|       --> | ||||
|  | ||||
|       <!-- Because this Realm is here, an instance will be shared globally --> | ||||
|  | ||||
|       <!-- This Realm uses the UserDatabase configured in the global JNDI | ||||
|            resources under the key "UserDatabase".  Any edits | ||||
|            that are performed against this UserDatabase are immediately | ||||
|            available for use by the Realm.  --> | ||||
|       <Realm className="org.apache.catalina.realm.UserDatabaseRealm" | ||||
|              resourceName="UserDatabase"/> | ||||
|  | ||||
|       <!-- Comment out the old realm but leave here for now in case we | ||||
|            need to go back quickly --> | ||||
|       <!-- | ||||
|       <Realm className="org.apache.catalina.realm.MemoryRealm" /> | ||||
|       --> | ||||
|  | ||||
|       <!-- Replace the above Realm with one of the following to get a Realm | ||||
|            stored in a database and accessed via JDBC --> | ||||
|  | ||||
|       <!-- | ||||
|       <Realm  className="org.apache.catalina.realm.JDBCRealm" | ||||
|              driverName="org.gjt.mm.mysql.Driver" | ||||
|           connectionURL="jdbc:mysql://localhost/authority" | ||||
|          connectionName="test" connectionPassword="test" | ||||
|               userTable="users" userNameCol="user_name" userCredCol="user_pass" | ||||
|           userRoleTable="user_roles" roleNameCol="role_name" /> | ||||
|       --> | ||||
|  | ||||
|       <!-- | ||||
|       <Realm  className="org.apache.catalina.realm.JDBCRealm" | ||||
|              driverName="oracle.jdbc.driver.OracleDriver" | ||||
|           connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL" | ||||
|          connectionName="scott" connectionPassword="tiger" | ||||
|               userTable="users" userNameCol="user_name" userCredCol="user_pass" | ||||
|           userRoleTable="user_roles" roleNameCol="role_name" /> | ||||
|       --> | ||||
|  | ||||
|       <!-- | ||||
|       <Realm  className="org.apache.catalina.realm.JDBCRealm" | ||||
|              driverName="sun.jdbc.odbc.JdbcOdbcDriver" | ||||
|           connectionURL="jdbc:odbc:CATALINA" | ||||
|               userTable="users" userNameCol="user_name" userCredCol="user_pass" | ||||
|           userRoleTable="user_roles" roleNameCol="role_name" /> | ||||
|       --> | ||||
|  | ||||
|       <!-- Define the default virtual host | ||||
|            Note: XML Schema validation will not work with Xerces 2.2. | ||||
|        --> | ||||
|       <Host name="localhost" appBase="webapps" | ||||
|        unpackWARs="true" autoDeploy="true" | ||||
|        xmlValidation="false" xmlNamespaceAware="false"> | ||||
|  | ||||
|         <!-- Defines a cluster for this node, | ||||
|              By defining this element, means that every manager will be changed. | ||||
|              So when running a cluster, only make sure that you have webapps in there | ||||
|              that need to be clustered and remove the other ones. | ||||
|              A cluster has the following parameters: | ||||
|  | ||||
|              className = the fully qualified name of the cluster class | ||||
|  | ||||
|              clusterName = a descriptive name for your cluster, can be anything | ||||
|  | ||||
|              mcastAddr = the multicast address, has to be the same for all the nodes | ||||
|  | ||||
|              mcastPort = the multicast port, has to be the same for all the nodes | ||||
|               | ||||
|              mcastBindAddress = bind the multicast socket to a specific address | ||||
|               | ||||
|              mcastTTL = the multicast TTL if you want to limit your broadcast | ||||
|               | ||||
|              mcastSoTimeout = the multicast readtimeout  | ||||
|  | ||||
|              mcastFrequency = the number of milliseconds in between sending a "I'm alive" heartbeat | ||||
|  | ||||
|              mcastDropTime = the number a milliseconds before a node is considered "dead" if no heartbeat is received | ||||
|  | ||||
|              tcpThreadCount = the number of threads to handle incoming replication requests, optimal would be the same amount of threads as nodes  | ||||
|  | ||||
|              tcpListenAddress = the listen address (bind address) for TCP cluster request on this host,  | ||||
|                                 in case of multiple ethernet cards. | ||||
|                                 auto means that address becomes | ||||
|                                 InetAddress.getLocalHost().getHostAddress() | ||||
|  | ||||
|              tcpListenPort = the tcp listen port | ||||
|  | ||||
|              tcpSelectorTimeout = the timeout (ms) for the Selector.select() method in case the OS | ||||
|                                   has a wakup bug in java.nio. Set to 0 for no timeout | ||||
|  | ||||
|              printToScreen = true means that managers will also print to std.out | ||||
|  | ||||
|              expireSessionsOnShutdown = true means that  | ||||
|  | ||||
|              useDirtyFlag = true means that we only replicate a session after setAttribute,removeAttribute has been called. | ||||
|                             false means to replicate the session after each request. | ||||
|                             false means that replication would work for the following piece of code: (only for SimpleTcpReplicationManager) | ||||
|                             <% | ||||
|                             HashMap map = (HashMap)session.getAttribute("map"); | ||||
|                             map.put("key","value"); | ||||
|                             %> | ||||
|              replicationMode = can be either 'pooled', 'synchronous' or 'asynchronous'. | ||||
|                                * Pooled means that the replication happens using several sockets in a synchronous way. Ie, the data gets replicated, then the request return. This is the same as the 'synchronous' setting except it uses a pool of sockets, hence it is multithreaded. This is the fastest and safest configuration. To use this, also increase the nr of tcp threads that you have dealing with replication. | ||||
|                                * Synchronous means that the thread that executes the request, is also the | ||||
|                                thread the replicates the data to the other nodes, and will not return until all | ||||
|                                nodes have received the information. | ||||
|                                * Asynchronous means that there is a specific 'sender' thread for each cluster node, | ||||
|                                so the request thread will queue the replication request into a "smart" queue, | ||||
|                                and then return to the client. | ||||
|                                The "smart" queue is a queue where when a session is added to the queue, and the same session | ||||
|                                already exists in the queue from a previous request, that session will be replaced | ||||
|                                in the queue instead of replicating two requests. This almost never happens, unless there is a  | ||||
|                                large network delay. | ||||
|         -->              | ||||
|         <!-- | ||||
|             When configuring for clustering, you also add in a valve to catch all the requests | ||||
|             coming in, at the end of the request, the session may or may not be replicated. | ||||
|             A session is replicated if and only if all the conditions are met: | ||||
|             1. useDirtyFlag is true or setAttribute or removeAttribute has been called AND | ||||
|             2. a session exists (has been created) | ||||
|             3. the request is not trapped by the "filter" attribute | ||||
|  | ||||
|             The filter attribute is to filter out requests that could not modify the session, | ||||
|             hence we don't replicate the session after the end of this request. | ||||
|             The filter is negative, ie, anything you put in the filter, you mean to filter out, | ||||
|             ie, no replication will be done on requests that match one of the filters. | ||||
|             The filter attribute is delimited by ;, so you can't escape out ; even if you wanted to. | ||||
|  | ||||
|             filter=".*\.gif;.*\.js;" means that we will not replicate the session after requests with the URI | ||||
|             ending with .gif and .js are intercepted. | ||||
|              | ||||
|             The deployer element can be used to deploy apps cluster wide. | ||||
|             Currently the deployment only deploys/undeploys to working members in the cluster | ||||
|             so no WARs are copied upons startup of a broken node. | ||||
|             The deployer watches a directory (watchDir) for WAR files when watchEnabled="true" | ||||
|             When a new war file is added the war gets deployed to the local instance, | ||||
|             and then deployed to the other instances in the cluster. | ||||
|             When a war file is deleted from the watchDir the war is undeployed locally  | ||||
|             and cluster wide | ||||
|         --> | ||||
|          | ||||
|         <!-- | ||||
|         <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster" | ||||
|                  managerClassName="org.apache.catalina.cluster.session.DeltaManager" | ||||
|                  expireSessionsOnShutdown="false" | ||||
|                  useDirtyFlag="true" | ||||
|                  notifyListenersOnReplication="true"> | ||||
|  | ||||
|             <Membership  | ||||
|                 className="org.apache.catalina.cluster.mcast.McastService" | ||||
|                 mcastAddr="228.0.0.4" | ||||
|                 mcastPort="45564" | ||||
|                 mcastFrequency="500" | ||||
|                 mcastDropTime="3000"/> | ||||
|  | ||||
|             <Receiver  | ||||
|                 className="org.apache.catalina.cluster.tcp.ReplicationListener" | ||||
|                 tcpListenAddress="auto" | ||||
|                 tcpListenPort="4001" | ||||
|                 tcpSelectorTimeout="100" | ||||
|                 tcpThreadCount="6"/> | ||||
|  | ||||
|             <Sender | ||||
|                 className="org.apache.catalina.cluster.tcp.ReplicationTransmitter" | ||||
|                 replicationMode="pooled" | ||||
|                 ackTimeout="15000" | ||||
|                 waitForAck="true"/> | ||||
|  | ||||
|             <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve" | ||||
|                    filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/> | ||||
|                     | ||||
|             <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer" | ||||
|                       tempDir="/tmp/war-temp/" | ||||
|                       deployDir="/tmp/war-deploy/" | ||||
|                       watchDir="/tmp/war-listen/" | ||||
|                       watchEnabled="false"/> | ||||
|                        | ||||
|             <ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"/> | ||||
|         </Cluster> | ||||
|         -->         | ||||
|  | ||||
|  | ||||
|  | ||||
|         <!-- Normally, users must authenticate themselves to each web app | ||||
|              individually.  Uncomment the following entry if you would like | ||||
|              a user to be authenticated the first time they encounter a | ||||
|              resource protected by a security constraint, and then have that | ||||
|              user identity maintained across *all* web applications contained | ||||
|              in this virtual host. --> | ||||
|         <!-- | ||||
|         <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> | ||||
|         --> | ||||
|  | ||||
|         <!-- Access log processes all requests for this virtual host.  By | ||||
|              default, log files are created in the "logs" directory relative to | ||||
|              $CATALINA_HOME.  If you wish, you can specify a different | ||||
|              directory with the "directory" attribute.  Specify either a relative | ||||
|              (to $CATALINA_HOME) or absolute path to the desired directory. | ||||
|         --> | ||||
|         <!-- | ||||
|         <Valve className="org.apache.catalina.valves.AccessLogValve" | ||||
|                  directory="logs"  prefix="localhost_access_log." suffix=".txt" | ||||
|                  pattern="common" resolveHosts="false"/> | ||||
|         --> | ||||
|  | ||||
|         <!-- Access log processes all requests for this virtual host.  By | ||||
|              default, log files are created in the "logs" directory relative to | ||||
|              $CATALINA_HOME.  If you wish, you can specify a different | ||||
|              directory with the "directory" attribute.  Specify either a relative | ||||
|              (to $CATALINA_HOME) or absolute path to the desired directory. | ||||
|              This access log implementation is optimized for maximum performance, | ||||
|              but is hardcoded to support only the "common" and "combined" patterns. | ||||
|         --> | ||||
|         <!-- | ||||
|         <Valve className="org.apache.catalina.valves.FastCommonAccessLogValve" | ||||
|                  directory="logs"  prefix="localhost_access_log." suffix=".txt" | ||||
|                  pattern="common" resolveHosts="false"/> | ||||
|         --> | ||||
|  | ||||
|       </Host> | ||||
|  | ||||
|     </Engine> | ||||
|  | ||||
|   </Service> | ||||
|  | ||||
| </Server> | ||||
| @ -1,34 +0,0 @@ | ||||
| @echo on | ||||
|  | ||||
|  | ||||
| @REM Clear the lib env var as it can hose tomcat | ||||
| SET lib=  | ||||
|  | ||||
| @REM Make sure the webgoat DB is writable | ||||
| attrib -R .\tomcat\webapps\WebGoat\database\*.* | ||||
|  | ||||
| @REM Set env vars for tomcat and java, use PWD as some machines don't have | ||||
| @REM \. on their path | ||||
| set PWD=%cd% | ||||
| set CATALINA_HOME=%PWD%\tomcat | ||||
| set JAVA_HOME=%PWD%\java | ||||
|  | ||||
| @REM Configure environment variables to override web.xml | ||||
| SET DatabaseDriver=net.sourceforge.jtds.jdbc.Driver | ||||
| SET DatabaseConnectionString=jdbc:jtds:sqlserver://./webgoat;namedPipe=true;INSTANCE=WEBGOAT | ||||
| SET DatabaseUser=webgoat | ||||
| SET DtabasePassword=_webgoat | ||||
|  | ||||
| delete .\tomcat\conf\server.xml | ||||
| copy .\tomcat\conf\server_80.xml .\tomcat\conf\server.xml | ||||
|  | ||||
| @REM Run tomcat: must have quotes incase var has spaces in it | ||||
| call "%CATALINA_HOME%\bin\startup.bat" start | ||||
|  | ||||
| echo  | ||||
| echo If the Tomcat DOS shell quit immediately, it is likely that  | ||||
| echo there is another service listening on port 80. | ||||
| echo | ||||
|  | ||||
|  | ||||
|  | ||||
| @ -1,34 +0,0 @@ | ||||
| @echo on | ||||
|  | ||||
|  | ||||
| @REM Clear the lib env var as it can hose tomcat | ||||
| SET lib=  | ||||
|  | ||||
| @REM Make sure the webgoat DB is writable | ||||
| attrib -R .\tomcat\webapps\WebGoat\database\*.* | ||||
|  | ||||
| @REM Set env vars for tomcat and java, use PWD as some machines don't have | ||||
| @REM \. on their path | ||||
| set PWD=%cd% | ||||
| set CATALINA_HOME=%PWD%\tomcat | ||||
| set JAVA_HOME=%PWD%\java | ||||
|  | ||||
| @REM Configure environment variables to override web.xml | ||||
| SET DatabaseDriver=net.sourceforge.jtds.jdbc.Driver | ||||
| SET DatabaseConnectionString=jdbc:jtds:sqlserver://./webgoat;namedPipe=true;INSTANCE=WEBGOAT | ||||
| SET DatabaseUser=webgoat | ||||
| SET DtabasePassword=_webgoat | ||||
|  | ||||
| del .\tomcat\conf\server.xml | ||||
| copy .\tomcat\conf\server_80.xml .\tomcat\conf\server.xml | ||||
|  | ||||
| @REM Run tomcat: must have quotes incase var has spaces in it | ||||
| call "%CATALINA_HOME%\bin\startup.bat" start | ||||
|  | ||||
| echo  | ||||
| echo If the Tomcat DOS shell quit immediately, it is likely that  | ||||
| echo there is another service listening on port 80. | ||||
| echo | ||||
|  | ||||
|  | ||||
|  | ||||
| @ -1,25 +0,0 @@ | ||||
| @echo on | ||||
|  | ||||
|  | ||||
| @REM Clear the lib env var as it can hose tomcat | ||||
| SET lib=  | ||||
|  | ||||
| @REM Make sure the webgoat DB is writable | ||||
| attrib -R .\tomcat\webapps\WebGoat\database\*.* | ||||
|  | ||||
| @REM Set env vars for tomcat and java, use PWD as some machines don't have | ||||
| @REM \. on their path | ||||
| set PWD=%cd% | ||||
| set CATALINA_HOME=%PWD%\tomcat | ||||
| set JAVA_HOME=%PWD%\java | ||||
|  | ||||
| delete .\tomcat\conf\server.xml | ||||
| copy .\tomcat\conf\server_80.xml .\tomcat\conf\server.xml | ||||
|  | ||||
| @REM Run tomcat: must have quotes incase var has spaces in it | ||||
| call "%CATALINA_HOME%\bin\startup.bat" start | ||||
|  | ||||
| echo  | ||||
| echo If the Tomcat DOS shell quit immediately, it is likely that  | ||||
| echo there is another service listening on port 80. | ||||
| echo | ||||
| @ -1,60 +0,0 @@ | ||||
| #! /bin/sh | ||||
|  | ||||
| SYSTEM=`uname -s` | ||||
| CATALINA_HOME=./tomcat | ||||
| PATH=${PATH}:./tomcat/bin | ||||
| export CATALINA_HOME PATH | ||||
|  | ||||
| chmod +x ./$CATALINA_HOME/bin/*.sh | ||||
| if [ $SYSTEM = "Darwin" ]; then | ||||
|         JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home | ||||
|         export JAVA_HOME | ||||
|  | ||||
| else | ||||
|  | ||||
| is_java_1dot5() { | ||||
|         if [ "X$JAVA_HOME" != "X" -a -d $JAVA_HOME ]; then | ||||
|                 $JAVA_HOME/bin/java -version 2>&1 | grep 'version \"1.5' >/dev/null | ||||
|                 if [ $? -ne 0 ]; then | ||||
|                         echo "The JVM in \$JAVA_HOME isn't version 1.5." | ||||
|                         exit 1 | ||||
|                 fi | ||||
|         else | ||||
|                 echo "Please set JAVA_HOME to a Java 1.5 JDK install" | ||||
|                 exit 1 | ||||
|         fi | ||||
| } | ||||
|  | ||||
| is_java_1dot5 | ||||
|  | ||||
| fi | ||||
|  | ||||
| case "$1" in | ||||
| 	start80) | ||||
| 		cp -f $CATALINA_HOME/conf/server_80.xml $CATALINA_HOME/conf/server.xml  | ||||
| 		$CATALINA_HOME/bin/startup.sh | ||||
| 		printf "\n  Open http://127.0.0.1/WebGoat/attack" | ||||
| 		printf "\n  Username: guest" | ||||
| 		printf "\n  Password: guest" | ||||
| 		printf "\n  Or try http://guest:guest@127.0.0.1/WebGoat/attack \n\n\r" | ||||
| 		sleep 2 | ||||
| 		tail -f $CATALINA_HOME/logs/catalina.out | ||||
| 	;; | ||||
| 	start8080) | ||||
| 		cp -f $CATALINA_HOME/conf/server_8080.xml $CATALINA_HOME/conf/server.xml  | ||||
| 		$CATALINA_HOME/bin/startup.sh | ||||
| 		printf "\n  Open http://127.0.0.1:8080/WebGoat/attack" | ||||
| 		printf "\n  Username: guest" | ||||
| 		printf "\n  Password: guest" | ||||
| 		printf "\n  Or try http://guest:guest@127.0.0.1:8080/WebGoat/attack \n\n\r" | ||||
| 		sleep 2 | ||||
| 		tail -f $CATALINA_HOME/logs/catalina.out | ||||
| 	;; | ||||
| 	stop) | ||||
| 		$CATALINA_HOME/bin/shutdown.sh | ||||
| 	;; | ||||
| 	*) | ||||
| 		echo $"Usage: $prog {start8080|start80|stop}" | ||||
| 		exit 1 | ||||
| 	;; | ||||
| esac | ||||
| @ -1,25 +0,0 @@ | ||||
| @echo on | ||||
|  | ||||
|  | ||||
| @REM Clear the lib env var as it can hose tomcat | ||||
| SET lib=  | ||||
|  | ||||
| @REM Make sure the webgoat DB is writable | ||||
| attrib -R .\tomcat\webapps\WebGoat\database\*.* | ||||
|  | ||||
| @REM Set env vars for tomcat and java, use PWD as some machines don't have | ||||
| @REM \. on their path | ||||
| set PWD=%cd% | ||||
| set CATALINA_HOME=%PWD%\tomcat | ||||
| set JAVA_HOME=%PWD%\java | ||||
|  | ||||
| del .\tomcat\conf\server.xml | ||||
| copy .\tomcat\conf\server_80.xml .\tomcat\conf\server.xml | ||||
|  | ||||
| @REM Run tomcat: must have quotes incase var has spaces in it | ||||
| call "%CATALINA_HOME%\bin\startup.bat" start | ||||
|  | ||||
| echo  | ||||
| echo If the Tomcat DOS shell quit immediately, it is likely that  | ||||
| echo there is another service listening on port 80. | ||||
| echo | ||||
| @ -1,64 +0,0 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| SYSTEM=`uname -s` | ||||
| CATALINA_HOME=./tomcat | ||||
| PATH=${PATH}:./tomcat/bin | ||||
| export CATALINA_HOME PATH | ||||
|  | ||||
| chmod +x ./$CATALINA_HOME/bin/*.sh | ||||
| if [ $SYSTEM = "Darwin" ]; then | ||||
|         JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Home | ||||
|         export JAVA_HOME | ||||
|  | ||||
| else | ||||
|  | ||||
| is_java_1dot6() { | ||||
| 	if [ -z "$JAVA_HOME" ]; then | ||||
|         	export JAVA_HOME=$(dirname $(readlink -f $(which javac)))/../ | ||||
| 	fi | ||||
|  | ||||
|         if [ "X$JAVA_HOME" != "X" -a $JAVA_HOME ]; then | ||||
|                 $JAVA_HOME/bin/java -version 2>&1 | grep 'version "1.6' >/dev/null | ||||
|                 if [ $? -ne 0 ]; then | ||||
|                         echo "The JVM in \$JAVA_HOME isn't version 1.6." | ||||
|                         exit 1 | ||||
|                 fi | ||||
|         else | ||||
|                 echo "Please set JAVA_HOME to a Java 1.6 JDK install" | ||||
|                 exit 1 | ||||
|         fi | ||||
| } | ||||
|  | ||||
| is_java_1dot6 | ||||
|  | ||||
| fi | ||||
|  | ||||
| case "$1" in | ||||
| 	start80) | ||||
| 		cp -f $CATALINA_HOME/conf/server_80.xml $CATALINA_HOME/conf/server.xml  | ||||
| 		$CATALINA_HOME/bin/startup.sh | ||||
| 		printf "\n  Open http://127.0.0.1/WebGoat/attack" | ||||
| 		printf "\n  Username: guest" | ||||
| 		printf "\n  Password: guest" | ||||
| 		printf "\n  Or try http://guest:guest@127.0.0.1/WebGoat/attack \n\n\r" | ||||
| 		sleep 2 | ||||
| 		tail -f $CATALINA_HOME/logs/catalina.out | ||||
| 	;; | ||||
| 	start8080) | ||||
| 		cp -f $CATALINA_HOME/conf/server_8080.xml $CATALINA_HOME/conf/server.xml  | ||||
| 		$CATALINA_HOME/bin/startup.sh | ||||
| 		printf "\n  Open http://127.0.0.1:8080/WebGoat/attack" | ||||
| 		printf "\n  Username: guest" | ||||
| 		printf "\n  Password: guest" | ||||
| 		printf "\n  Or try http://guest:guest@127.0.0.1:8080/WebGoat/attack \n\n\r" | ||||
| 		sleep 2 | ||||
| 		tail -f $CATALINA_HOME/logs/catalina.out | ||||
| 	;; | ||||
| 	stop) | ||||
| 		$CATALINA_HOME/bin/shutdown.sh | ||||
| 	;; | ||||
| 	*) | ||||
| 		echo $"Usage: $prog {start8080|start80|stop}" | ||||
| 		exit 1 | ||||
| 	;; | ||||
| esac | ||||
| @ -1,25 +0,0 @@ | ||||
| @echo on | ||||
|  | ||||
|  | ||||
| @REM Clear the lib env var as it can hose tomcat | ||||
| SET lib=  | ||||
|  | ||||
| @REM Make sure the webgoat DB is writable | ||||
| attrib -R .\tomcat\webapps\WebGoat\database\*.* | ||||
|  | ||||
| @REM Set env vars for tomcat and java, use PWD as some machines don't have | ||||
| @REM \. on their path | ||||
| set PWD=%cd% | ||||
| set CATALINA_HOME=%PWD%\tomcat | ||||
| set JAVA_HOME=%PWD%\java | ||||
|  | ||||
| delete .\tomcat\conf\server.xml | ||||
| copy .\tomcat\conf\server_8080.xml .\tomcat\conf\server.xml | ||||
|  | ||||
| @REM Run tomcat: must have quotes incase var has spaces in it | ||||
| call "%CATALINA_HOME%\bin\startup.bat" start | ||||
|  | ||||
| echo  | ||||
| echo If the Tomcat DOS shell quit immediately, it is likely that  | ||||
| echo there is another service listening on port 8080. | ||||
| echo | ||||
| @ -1,25 +0,0 @@ | ||||
| @echo on | ||||
|  | ||||
|  | ||||
| @REM Clear the lib env var as it can hose tomcat | ||||
| SET lib=  | ||||
|  | ||||
| @REM Make sure the webgoat DB is writable | ||||
| attrib -R .\tomcat\webapps\WebGoat\database\*.* | ||||
|  | ||||
| @REM Set env vars for tomcat and java, use PWD as some machines don't have | ||||
| @REM \. on their path | ||||
| set PWD=%cd% | ||||
| set CATALINA_HOME=%PWD%\tomcat | ||||
| set JAVA_HOME=%PWD%\java | ||||
|  | ||||
| del .\tomcat\conf\server.xml | ||||
| copy .\tomcat\conf\server_8080.xml .\tomcat\conf\server.xml | ||||
|  | ||||
| @REM Run tomcat: must have quotes incase var has spaces in it | ||||
| call "%CATALINA_HOME%\bin\startup.bat" start | ||||
|  | ||||
| echo  | ||||
| echo If the Tomcat DOS shell quit immediately, it is likely that  | ||||
| echo there is another service listening on port 8080. | ||||
| echo | ||||
| @ -1,7 +0,0 @@ | ||||
| @echo off | ||||
|  | ||||
|  | ||||
| @REM Run webscarab | ||||
| @REM    - Assumes webscarab.properties file is in webscarab directory | ||||
| cd webscarab | ||||
| ..\java\bin\javaw -Duser.home=.\ -jar webscarab.jar | ||||
| @ -1,7 +0,0 @@ | ||||
| @echo off | ||||
|  | ||||
|  | ||||
| @REM Run webscarab | ||||
| @REM    - Assumes webscarab.properties file is in webscarab directory | ||||
| cd webscarab | ||||
| ..\java\bin\javaw -Duser.home=.\ -jar webscarab.jar | ||||
		Reference in New Issue
	
	Block a user