This should be doable.
I will add it to the next release of Struts Workflow extension on Source forge, as 
soon as it is available for download.

Till then use the hastily crafted code from me.
I have not tested it ,so please test it and let me know.

Add this to the source code you have for workflow extension and  recompile it.
Then also you need to change your config to make use of this new request processor.


But as both these extensions work on different parts of the processing life cycle, 
they should be easy to integrate.

Let me know if you face any problems.


***********************************


/*
 * Created on Mar 23, 2004
 *
 * 
 */
package com.livinglogic.struts.workflow;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.SecureTilesRequestProcessor;
import org.apache.struts.config.ForwardConfig;

/**
 * <p><strong>SecureTilesWorkflowRequestProcessor</strong> extends the request 
processor from
 * Struts SSL extension.This will allow using the Workflow extension along with the 
SSL extension
 * & Tiles.
 *
 * @author Shirish Sakhare
 */
public class SecureTilesWorkflowRequestProcessor
        extends SecureTilesRequestProcessor implements 
WorkflowRequestProcessorLogicAdapter{
        
        /**
         * The WorkflowRequestProcessingLogic instance we are using 
         */
        WorkflowRequestProcessorLogic logic;
        
        public void processForwardConfig(HttpServletRequest request, 
HttpServletResponse response, ForwardConfig forward)
        throws IOException, ServletException
        {
                super.processForwardConfig(request, response, forward);
        }
        

        public HttpServletRequest processMultipart(HttpServletRequest request)
        {
                return super.processMultipart(request);
        }

        public String processPath(HttpServletRequest request, HttpServletResponse 
response)
        throws IOException
        {
                return super.processPath(request, response);
        }

        public void processLocale(HttpServletRequest request, HttpServletResponse 
response)
        {
                super.processLocale(request, response);
        }

        public void processContent(HttpServletRequest request, HttpServletResponse 
response)
        {
                super.processContent(request, response);
        }

        public void processNoCache(HttpServletRequest request, HttpServletResponse 
response)
        {
                super.processNoCache(request, response);
        }

        public boolean processPreprocess(HttpServletRequest 
request,HttpServletResponse response)
        {
                return super.processPreprocess(request, response);
        }

        public ActionMapping processMapping(HttpServletRequest request, 
HttpServletResponse response, String path)
        throws IOException
        {
                return super.processMapping(request, response, path);
        }

        public boolean processRoles(HttpServletRequest request, HttpServletResponse 
response,
                                                                ActionMapping mapping) 
throws IOException, ServletException
        {
                return super.processRoles(request, response, mapping);
        }

        public ActionForm processActionForm(HttpServletRequest request, 
HttpServletResponse response, ActionMapping mapping)
        {
                return super.processActionForm(request, response, mapping);
        }

        public void processPopulate(HttpServletRequest request, HttpServletResponse 
response,
                                                                ActionForm form, 
ActionMapping mapping) throws ServletException
        {
                super.processPopulate(request, response, form, mapping);
        }

        public boolean processValidate(HttpServletRequest request, HttpServletResponse 
response,
                                                                   ActionForm form, 
ActionMapping mapping) throws IOException, ServletException
        {
                return super.processValidate(request, response, form, mapping);
        }

        public boolean processForward(HttpServletRequest request, HttpServletResponse 
response, ActionMapping mapping)
        throws IOException, ServletException
        {
                return super.processForward(request, response, mapping);
        }

        public boolean processInclude(HttpServletRequest request, HttpServletResponse 
response, ActionMapping mapping)
        throws IOException, ServletException
        {
                return super.processInclude(request, response, mapping);
        }

        public Action processActionCreate(HttpServletRequest request, 
HttpServletResponse response, ActionMapping mapping) 
        throws IOException
        {
                return super.processActionCreate(request, response, mapping);
        }

        public ActionForward processActionPerform(HttpServletRequest request, 
HttpServletResponse response, Action action,
                                                                                       
   ActionForm form, ActionMapping mapping) throws IOException, ServletException
        {
                return super.processActionPerform(request, response, action, form, 
mapping);
        }       
        
        /**
         * <p>Process an <code>HttpServletRequest</code> and create the
         * corresponding <code>HttpServletResponse</code>.</p>
         *
         * @param request The servlet request we are processing
         * @param response The servlet response we are creating
         *
         * @exception IOException if an input/output error occurs
         * @exception ServletException if a processing exception occurs
         */
        public void process(HttpServletRequest request,
                                                HttpServletResponse response)
        throws IOException, ServletException 
        {
                if (null == logic)
                {
                        logic = new WorkflowRequestProcessorLogic(this);
                }
                logic.process(request, response);
        }

}
**********************************

-----Original Message-----
From: Scott Ryan [mailto:[EMAIL PROTECTED]
Sent: Tuesday, March 23, 2004 5:15 AM
To: [EMAIL PROTECTED]
Subject: Using SSL Extension and Workflow Extension together


I would like to use the Workflow extension and the SSL/Non SSL extension
together.  Is this possible?  It looks like they replace the capability of
the request processor and that they are mutually exclusive.  Is there a way
to use both?  I am using tiles to support my application.  I am able to get
them working one at a time but need to combine them together for some
applications.

Thanks

Scott D. Ryan
Director, J2EE Architecture and Development
Soaring Eagle LLC.
9742 S. Whitecliff Place
Highlands Ranch, Co. 80129
(303) 263-3044
[EMAIL PROTECTED]
BEA Technical Director



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to