Note that there are some explanatory texts on larger screens.

plurals
  1. POAfter logout main window the popup window links still working
    primarykey
    data
    text
    <p>I am using struts 2 login interceptor. Code is working fine. In my application many popup windows have used.when I open my popup window and logout from my main window popup window showing login page as I coded but only for this scenario, i want that it will showing any message ( either session expired or u have already logged out) instead of login page.</p> <p>Please go thru my code if any modification is required</p> <h1>LoginInterceptor.java</h1> <pre><code>public class LoginInterceptor extends AbstractInterceptor implements StrutsStatics{ private AdminUserSessionInfo objAdminUserSessionInfo = new AdminUserSessionInfo(); private static final long serialVersionUID = 1L; private static final Log log = LogFactory.getLog(LoginInterceptor.class); private static final String LOGIN_ATTEMPT = "loginAttempt"; private static final String LOGIN_OUT = "loginOut"; private static final String USER_HANDLE = "loggedInUser"; Map sessionMap = null; public void init() { log.info("Intializing LoginInterceptor"); } public void destroy() { } public String intercept(ActionInvocation invocation) throws Exception { final ActionContext context = invocation.getInvocationContext(); HttpServletRequest request = (HttpServletRequest) context .get(HTTP_REQUEST); HttpServletResponse response = (HttpServletResponse) context .get(HTTP_RESPONSE); response.setHeader("Cache-Control", "no-store"); response.setHeader("Pragma", "no-cache"); response.setDateHeader("Expires", 0); HttpSession session = request.getSession(true); Object user = session.getAttribute(USER_HANDLE); String loginOut = request.getParameter(LOGIN_OUT); if (user == null) { String loginAttempt = request.getParameter(LOGIN_ATTEMPT); System.out.println("loginAttemp----&gt;"+loginAttempt); /* The user is attempting to log in. */ if (!StringUtils.isBlank(loginAttempt)) { return invocation.invoke(); } return "login"; } else { return invocation.invoke(); } } </code></pre> <h1>web.xml</h1> <pre><code>&lt;interceptors&gt; &lt;interceptor class="org.iaf.aos.common.LoginInterceptor" name="loginInterceptor"&gt;&lt;/interceptor&gt; &lt;interceptor-stack name="loginStack"&gt; &lt;interceptor-ref name="loginInterceptor" /&gt; &lt;interceptor-ref name="defaultStack" /&gt; &lt;/interceptor-stack&gt; &lt;/interceptors&gt; &lt;default-interceptor-ref name="loginStack"&gt;&lt;/default-interceptor-ref&gt; &lt;global-results&gt;&lt;result name="login"&gt;aos.jsp&lt;/result&gt;&lt;/global-results&gt; &lt;action name="checkUserLogin" class="org.iaf.aos.web.login.action.AdminUserAction" method="checkUserLogin"&gt; &lt;!-- &lt;result name="success"&gt;index.jsp&lt;/result&gt; --&gt; &lt;interceptor-ref name="loginStack"&gt;&lt;/interceptor-ref&gt; &lt;result name="success" type="chain"&gt;HomePage&lt;/result&gt; &lt;result name="error"&gt;WEB-INF/jsp/admin/Error.jsp&lt;/result&gt; &lt;result name="selectRole"&gt;aos1.jsp&lt;/result&gt; &lt;!--&lt;result name="selectRole"&gt;WEB-INF/jsp/admin/SelectRole.jsp&lt;/result&gt;--&gt; &lt;/action&gt; &lt;action name="home"&gt; &lt;!-- &lt;result&gt;index.jsp&lt;/result&gt;--&gt; &lt;interceptor-ref name="loginStack"&gt;&lt;/interceptor-ref&gt; &lt;result name="success" type="chain"&gt;HomePage&lt;/result&gt; &lt;/action&gt; &lt;action name="logOutUser" class="org.iaf.aos.web.login.action.LogOutUserAction"&gt; &lt;interceptor-ref name="loginStack"&gt;&lt;/interceptor-ref&gt; &lt;result name="logout"&gt;WEB-INF/jsp/admin/LoggedOut.jsp &lt;/result&gt; &lt;/action&gt; </code></pre> <h1>LogOutUserAction.java</h1> <pre><code>public class LogOutUserAction extends ActionSupport { private static final long serialVersionUID = 1L; public String execute() throws Exception { System.out.println("inside :: LogOutUserAction------"); Map session = ActionContext.getContext().getSession(); session.remove("loggedInUser"); return "logout"; } } </code></pre> <h1>logout.jsp</h1> <pre><code>&lt;td width="*" align="right" valign="top"&gt; &lt;s:url var="urlLogOut" action="logOutUser.action"&gt; &lt;s:param name="loginOut" value="%{'2'}"/&gt; &lt;/s:url&gt; &lt;sx:a href="%{#urlLogOut}" targets="divAddEditUser"&gt; &lt;font color="white"&gt;Log Out&lt;/font&gt; &lt;/sx:a&gt; &lt;!--&lt;a href="logOutUser.action"&gt;&lt;font color="white"&gt;Log Out&lt;/font&gt;&lt;/a&gt; --&gt;&lt;/td&gt; &lt;/tr&gt; </code></pre> <h1>AdminUserAction.java</h1> <pre><code> ServletActionContext.getRequest().getSession().setAttribute("loggedInUser", loginId); return "selectRole"; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload