<?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.
 */
-->
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 6.0//EN"
	"https://struts.apache.org/dtds/struts-6.0.dtd">
<struts>
    <package name="token" extends="struts-default" namespace="/token">

        <action name="tokenPrepare!*" class="org.apache.struts2.showcase.token.TokenAction" method="{1}">
            <interceptor-ref name="defaultStack"/>
            <result name="input">/WEB-INF/token/example1.jsp</result>
        </action>

        <action name="transfer" class="org.apache.struts2.showcase.token.TokenAction">
            <interceptor-ref name="defaultStack"/>
            <interceptor-ref name="token"/>
            <result name="invalid.token">/WEB-INF/token/doublePost.jsp</result>
            <result name="success">/WEB-INF/token/transferDone.jsp</result>
        </action>



        <action name="tokenPrepare2!*" class="org.apache.struts2.showcase.token.TokenAction" method="{1}">
            <interceptor-ref name="defaultStack"/>
            <result name="input">/WEB-INF/token/example2.jsp</result>
        </action>

        <action name="transfer2" class="org.apache.struts2.showcase.token.TokenAction">
            <interceptor-ref name="defaultStack"/>
            <interceptor-ref name="token"/>
            <result name="invalid.token">/WEB-INF/token/doublePost.jsp</result>
            <result name="success">/WEB-INF/token/transferDone.jsp</result>
        </action>



        <action name="tokenPrepare3!*" class="org.apache.struts2.showcase.token.TokenAction" method="{1}">
            <interceptor-ref name="defaultStack"/>
            <result name="input">/WEB-INF/token/example3.jsp</result>
        </action>

        <action name="transfer3" class="org.apache.struts2.showcase.token.TokenAction">
            <interceptor-ref name="defaultStack"/>
            <interceptor-ref name="tokenSession"/>
            <result name="invalid.token">/WEB-INF/token/doublePost.jsp</result>
            <result name="success">/WEB-INF/token/transferDone.jsp</result>
        </action>


        <action name="tokenPrepare4!*" class="org.apache.struts2.showcase.token.TokenAction" method="{1}">
            <interceptor-ref name="defaultStack"/>
            <interceptor-ref name="createSession"/> <!-- we must have a session when using freemarker and the @s.token tag -->
            <result name="input" type="freemarker">/WEB-INF/token/example4.ftl</result>
        </action>

        <action name="transfer4" class="org.apache.struts2.showcase.token.TokenAction">
            <interceptor-ref name="defaultStack"/>
            <interceptor-ref name="token"/>
            <result name="invalid.token">/WEB-INF/token/doublePost.jsp</result>
            <result name="success">/WEB-INF/token/transferDone.jsp</result>
        </action>

    </package>

</struts>
