query parameters are not getting processed by customized logoutSuccess.jsp running on Access Gateway Service

  • 7011272
  • 30-Oct-2012
  • 30-Oct-2012

Environment

NetIQ Access Manager 3.2
Novell Access Manager 3.1.4

Situation

  • Access Gateway Service has been configured with customized logout pages
  • Logic has been added to the logoutSuccess.jsp

Cause

The customized logout page included errors so that the query parameters which in fact have been passed could not get processed.

Additional Information

Troubleshooting:

Use a simple logoutSuccess.jsp like:

<%@ page language="java" %>
<%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
<%@ page import="java.util.*" %>
<%@ page import="com.novell.nidp.*" %>
<%@ page import="com.novell.nidp.authentication.local.X509Class" %>
<%@ page import="com.novell.nidp.resource.*" %>
<%@ page import="com.novell.nidp.resource.jsp.*" %>
<%@ page import="com.novell.nidp.ui.*" %>

<%
    response.setHeader("Connection", "close");
    Cookie c = new Cookie(X509Class.X509_LOGOUT_COOKIE, X509Class.X509_LOGOUT_COOKIE_VALUE);
    c.setPath(request.getContextPath());
    response.addCookie(c);
    UIHandler uh = new UIHandler(request,response);
    ArrayList logoutStrings = null;
    ArrayList logos = null;
    if (uh.isJSPMsg())
    {
        NIDPLogoutMessage msg =
            (NIDPLogoutMessage)uh.getMessage(true);

        if (msg.isConfirmLogouts())
        {
            logoutStrings = msg.getStrings();
               logos = msg.getLogos();
        }
    }
System.out.println ("*****Processing logoutSuccess.jsp*****");
%>

<!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.0 transitional//<%=uh.getLanguageCode()%>">
<html lang="<%=uh.getLanguageCode()%>">
    <head>
        <link href="<%= uh.getImage("hf_style.css",false)%>" rel="stylesheet">
    <style type="text/css" media="screen"><!--
        body  { background-color: <%=uh.getBGColor()%> }
      --></style>
   
    <script type="text/javascript">
    function getParam(variable){   
      var query = window.location.search.substring(1);    
      var vars = query.split("&");   
          for (var i=0;i<vars.length;i++) {
                document.writeln ('Queryparmeter '+i+': ' +vars[i]+'</br>');
                var pair = vars[i].split("=");
           }
    } 
    </script>
    </head>

    <body marginwidth="0" marginheight="0" leftmargin="10" topmargin="0">

    <script type="text/javascript">
      getParam();
    </script>

</body>
</html>


use a web browser header trace utility (e.g. "Live HTTP Headers" plugin for Firefox or the "ieHTTPHeaders" plugin for IE) in order to check if the query parameters have been included in the GET request for the logoutSuccess.jsp. The above simple "logoutSuccess.jsp" just prints out all query parameters which have been passed.

Example:

logout request:  "https://www.kgast.nam.com/nesp/app/plogout?text2=mail&text=hallo"
parameters passed to logoutSuccess.jsp test page

Queryparmeter 0: sid=2
Queryparmeter 1: sid=2
Queryparmeter 2: text2=mail
Queryparmeter 3: text=hallo