You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Neil Aggarwal <ne...@JAMMConsulting.com> on 2007/02/26 06:56:14 UTC

[Struts2] How to set a redirect action to https?

Hello:

In Struts 2, I am trying to figure out how to redirect a user to
https when they make a request using http.

When I try to do the redirect, I get this error:

Not Found
The requested URL /https://tweb.retcgroup.com/thymeleweb/login.action was
not found on this server.

Here is my struts.xml file:

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
	<!-- Configuration for the default package. -->
	<package name="top" extends="struts-default">
		<interceptors>
    	<interceptor name="checkLogin" class="util.LoginInterceptor"/>
			<interceptor-stack name="baseStack">
				<interceptor-ref name="checkLogin"/>
				<interceptor-ref name="defaultStack"/>
      </interceptor-stack>
    </interceptors>

		<default-interceptor-ref name="baseStack"/>

		<action name="*">
    	<result name="login">/thymeleweb/login.jsp</result>
    	<result type="redirect-action"
name="loginRedirect">https://tweb.retcgroup.com/thymeleweb/login.action</res
ult>
    	<result name="success">/{1}.jsp</result>
    </action>
	</package>

	<package name="test" extends="top">
		<action name="*">
    	<result name="login">/login.jsp</result>
    	<result type="redirect-action"
name="loginRedirect">https://tweb.retcgroup.com/thymeleweb/login.action</res
ult>
    	<result name="success">/test/{1}.jsp</result>
    </action>
	</package>
</struts>

Here is my LoginInterceptor:

package util;

import com.opensymphony.xwork2.*;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
import java.util.*;
import javax.servlet.http.*;
import org.apache.log4j.*;
import org.apache.struts2.*;

public class LoginInterceptor extends AbstractInterceptor {
  public String intercept(ActionInvocation invocation) throws Exception {
    HttpServletRequest req = ServletActionContext.getRequest();
    if( !"https".equalsIgnoreCase(req.getScheme()))
      return "loginRedirect";
    return "login";
  }
}

Any ideas how to make this work?

Thanks,
	Neil

--
Neil Aggarwal, (214)986-3533, www.JAMMConsulting.com
FREE! Eliminate junk email and reclaim your inbox.
Visit http://www.spammilter.com for details.


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org