B.1 Modifying the File

The following 3.0 login.jsp file has been modified to display line numbers. The lines that require modifications have been highlighted, and a few extra spaces have been added to allow for a better display of the text. For a description of the modifications that need to be made, see Section 9.2.4, Modifying 3.0 Login Pages for 3.1 SP2.

1. <%@ page language="java" %>
2. <%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
3. <%@ page import="com.novell.nidp.common.provider.*" %>
4. <%@ page import="java.util.*" %>
5. <%@ page import="java.net.*" %>
6. <%@ page import="com.novell.nidp.*" %>
7. <%@ page import="com.novell.nidp.servlets.*" %>
8. <%@ page import="com.novell.nidp.resource.*" %>
9. <%@ page import="com.novell.nidp.resource.jsp.*" %>
10.<%@ page import="com.novell.nidp.common.xml.w3c.*" %>
11.<%
12.    response.setHeader("Pragma", "No-cache");
13.    response.setHeader("Cache-Control", "no-cache");
14.
15.    Locale locale = request.getLocale();
16.    String strLanguageCode = locale.getLanguage();
17.     String strImageDirectory = NIDPResourceManager.getInstance().getImage Directory(locale);
18.    NIDPResource resource = NIDPResourceManager.getInstance().get (JSPResDesc.getInstance(), locale);
19.%>
20.
21.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//<%=strLanguage Code%>">
22.<html lang="<%=strLanguageCode%>">
23.    <head>
24.    <link rel="stylesheet" href="<%= request.getContextPath() %>/images/hf_style.css" type="text/css">
25.    <style type="text/css" media="screen"><!--
26.      #headimage    { position: relative; top: 0px; left: 0px; z-index: 1}
27.      #title    { position: relative; top: 40px; left: 5px; color: white; z-index: 4}
28.      #locallabel    { position: relative; top: 78px; left: 10px; z-index: 4}
29.      #login       { text-align: center }
30.         --></style>
31.    <META HTTP-EQUIV="Content-Language" CONTENT="<%=strLanguageCode%>">
32.    <title><%=resource.getString0(JSPResDesc.LOGIN_TITLE)%></title>
33.    <meta http-equiv="content-type" content="text/html;charset=utf-8">
34.    <script type="text/javascript" src="<%= request.getContextPath() %>/images/showhide_2.js"></script>
35.    <script language="JavaScript">
36.
37.      var i = 0;
38.      function imageSubmit()
39.      {
40.          if (i == 0)
41.          {
42.             i = 1;
43.             document.IDPLogin.submit();
44.          }
45.  
46.          return false;
47.      }
48.  </script>
49.    </head>
50.    <body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" rightmargin="0" onLoad="document.IDPLogin.Ecom_User_ID.focus();" >
51.        <form name="IDPLogin" enctype="application/x-www-form-urlencoded" method="POST" action="<%= (String) request.getAttribute("url") %>" AUTOCOMPLETE="off">
52.        <table style="margin-top: 6em" width="100%" border="0" cellspacing="0" cellpadding="0">
53.        <tr>
54.            <td width="50%" height="80 px">&nbsp;</td>
55.        <td colspan="2">
56.            <div id="title"><b><%=resource.getString0(JSPResDesc. LOGIN_TITLE)%></b></div>
57.        <div id="locallabel"><b><%=resource.getString0(JSPResDesc. LOCAL_LOGIN)%></b></div>
58.        <div id="headimage"><img src="<%= request.getContextPath() %>/images/Odyssey_LoginHead.gif" alt="" height="80" width="550" border="0"></div>
59.                    </td>
60.        <td width="100%">&nbsp;</td>
61.        </tr>
62.        <tr>
63.            <td width="50%">&nbsp;</td>
64.        <td style="background-color: #efeee9; padding: 10px" colspan="2">
65.<%
66.    String err = (String) request.getAttribute(NIDPConstants.ATTR _LOGIN_ERROR);
67.    if (err != null)
68.    {
69. %>
70.        <div><label><%=err%></label></div>
71. <%  } 
72.    
73    // Determine if this login page is being used for account identification
74.    // purposes
75.    String id = (String) request.getAttribute("identify");
76.    if (id != null && id.equals("true"))
77.    {
78. %>
79.        <div><%=resource.getString0(JSPResDesc.IDENTIFY)%></div>
80. <%  } %>
81.          <span id="login2" style="display: block;">
82.            <table>
83.              <tr>
84.                <td nowrap="nowrap">
85.                  <div>
86.                    <label style="width: 100px"><%=resource.getString0 (JSPResDesc.USERNAME)%></label></label>
87.                  </div>
88.                </td>
89.                <td width="100%" nowrap="nowrap">
90.                  <div>
91.                    <input type="text" class="smalltext" name="Ecom_User_ID" size="30">
92.                  </div>
93.                </td>
94.              </tr>
95.              <tr>
96.                <td nowrap="nowrap">
97.                  <div>
98.                    <label><%=resource.getString0(JSPResDesc.PASSWORD)%></label>
99.                  </div>            
100.                </td>              
101.                <td style="white-space: nowrap">
102.                  <div>
103.                    <input type="password" class="smalltext" name="Ecom_ Password" size="30">&nbsp;&nbsp;
104.                    <input alt="<%=resource.getString0(JSPResDesc.LOGIN)%>" border="0" name="loginButton2" src="<%= request.getContextPath() %>/images/<%=strImageDirectory%>/btnlogin_<%=strImageDirectory%>.gif" type="image" value="Login" onClick="return imageSubmit()">
105.                  </div>            
106.                </td>              
107.              </tr>
108.<%
109.  String prov = (String) request.getAttribute("provision");
110.  if (prov != null)
111.  {
112.%>
113.              <tr>
114.                <td colspan=2>
115.                  <div>
116.                    <label><a href="<%=prov%>"><%=resource.getString0 (JSPResDesc.CREATE_ACCT)%></a></label>
117.                  </div>            
118.                </td>              
119.              </tr>
120.<%      } %>
121.            </table>
122.          </span>
123.        </td>
124.        <td width="100%">&nbsp;</td>
125.      </tr>
126. <%
127.  DisplayableProvider[] list = (DisplayableProvider[]) request.get Attribute("providers");
128.     if (list != null && list.length > 0)
129.     {
130.%>
131.      <tr>
132.        <td width="50%"></td>
133.        <td style="background-color: #efeeec; padding-left: 10px; padding-bottom: 10px"colspan="2">
134.          <div style="margin-left: -10px; background: url(<%= request.getContextPath() %>/images/dotline_bg.gif) repeat-x">&nbsp;</div>
135.          <div><b><%=resource.getString0(JSPResDesc.FEDERATED_LOGIN)%></b></div>
136.<%
137.    for (int i = 0; i < list.length; i++)
138.    {
139.%>
140.          <a style="padding: 5px" href="<%=list[i].getAuthenticationUrl (request.getContextPath())%>">
141.<%
142.        if (list[i].hasIcon())
143.        {         
144.%>
145.          <img border=0 class="margin4" alt="<%=XMLUtil.stringToHTML String(list[i].getDisplayName())%>" src="<%=XMLUtil.stringToHTMLString (list[i].getIcon(request))%>" align="absmiddle"></a>
146.<%
147.          }
148.        else 
149.        {
150.%>                            
151.          <%=XMLUtil.stringToHTMLString(list[i].getDisplayName())%></a>
152.<%
153.        }
154.    
155.     } %>
156.        </td>
157.        <td width="100%"></td>
158.      </tr>
159.<%  } %>        
160.        <tr>
161.            <td width="50%"></td>
162.        <td style="background-color: #E6D88C; padding-left: 10px"><img style="padding-right: 200px" src="<%= request.getContextPath() %>/images/LAP_interoperable_logo_100.gif" align="absmiddle" border="0"></td>
163.        <td style="background-color: #E6D88C; padding-right: 10px" align="right" width="100">
164.
165.<%
166.  String cancel = (String) request.getAttribute("cancel");
167.  if (cancel != null)
168.  {
169.%>
170.                      <input alt="<%=resource.getString0(JSPResDesc. CANCEL)%>" border="0" name="Cancel" src="<%= request.getContextPath() %>/images/<%=strImageDirectory%>/btncancel_<%=strImageDirectory%>.gif" type="image" value="Cancel" tabindex="4">
171.<%    }
172.      else 
173.      { 
174.%>
175.            &nbsp;
176.<%    }   %>         
177.        </td>
178.            <td width="100%"></td>
179.        </tr>
180.<%
181.  if (NIDPCripple.isCripple())
182.  {
183.%>        
184.        <tr>
185.               <td colspan=4 width="100%" align="center"><%=NIDPCripple. getCrippleAdvertisement(locale)%></td>
186.        </tr>
187.<%
188.  }
189.%>      
190.         </table>
191.        </form>
192.    </body>
193.</html>