The following file shows all the changes that allow 3.0 login.jsp to compile on a 3.1 SP2 Identity Server. The deleted lines have been replaced with returns, so you can line this file up with the original to see the modifications.
<%@ page language="java" %> <%@ page pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%> <%@ page import="com.novell.nidp.common.provider.*" %> <%@ page import="java.util.*" %> <%@ page import="com.novell.nidp.ui.*" %> <%@ page import="com.novell.nidp.*" %> <%@ page import="com.novell.nidp.servlets.*" %> <%@ page import="com.novell.nidp.resource.*" %> <%@ page import="com.novell.nidp.resource.jsp.*" %> <%@ page import="com.novell.nidp.common.xml.w3c.*" %> <% ContentHandler handler = new ContentHandler(request,response); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//<%=handler.getLanguageCode()%>"> <html lang="<%=handler.getLanguageCode()%>"> <head> <link rel="stylesheet" href="<%= request.getContextPath() %>/images/hf_style.css" type="text/css"> <style type="text/css" media="screen"><!-- #headimage { position: relative; top: 0px; left: 0px; z-index: 1} #title { position: relative; top: 40px; left: 5px; color: white; z-index: 4} #locallabel { position: relative; top: 78px; left: 10px; z-index: 4} #login { text-align: center } --></style> <META HTTP-EQUIV="Content-Language" CONTENT="<%=handler.getLanguageCode()%>"> <title><%=handler.getResource(JSPResDesc.TITLE)%></title> <meta http-equiv="content-type" content="text/html;charset=utf-8"> <script type="text/javascript" src="<%= request.getContextPath() %>/images/showhide_2.js"></script> <script language="JavaScript"> var i = 0; function imageSubmit() { if (i == 0) { i = 1; document.IDPLogin.submit(); } return false; } </script> </head> <body marginwidth="0" marginheight="0" leftmargin="0" topmargin="0" rightmargin="0" onLoad="document.IDPLogin.Ecom_User_ID.focus();" > <form name="IDPLogin" enctype="application/x-www-form-urlencoded" method="POST" action="<%= (String) request.getAttribute("url") %>" AUTOCOMPLETE="off"> <table style="margin-top: 6em" width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="50%" height="80 px"> </td> <td colspan="2"> <div id="title"><b><%=handler.getResource(JSPResDesc.TITLE)%></b></div> <div id="locallabel"><b><%=handler.getResource(JSPResDesc.PRODUCT)%></b></div> <div id="headimage"><img src="<%= request.getContextPath() %>/images/Odyssey_LoginHead.gif" alt="" height="80" width="550" border="0"></div> </td> <td width="100%"> </td> </tr> <tr> <td width="50%"> </td> <td style="background-color: #efeee9; padding: 10px" colspan="2"> <% String err = (String) request.getAttribute(NIDPConstants.ATTR_LOGIN_ERROR); if (err != null) { %> <div><label><%=err%></label></div> <% } %> <span id="login2" style="display: block;"> <table> <tr> <td nowrap="nowrap"> <div> <label style="width: 100px"><%=handler.getResource(JSPResDesc.USERNAME)%></label></label> </div> </td> <td width="100%" nowrap="nowrap"> <div> <input type="text" class="smalltext" name="Ecom_User_ID" size="30"> </div> </td> </tr> <tr> <td nowrap="nowrap"> <div> <label><%=handler.getResource(JSPResDesc.PASSWORD)%></label> </div> </td> <td style="white-space: nowrap"> <div> <input type="password" class="smalltext" name="Ecom_Password" size="30"> <input alt="<%=handler.getResource(JSPResDesc.LOGIN)%>" border="0" name="loginButton2" src="<%=handler.getImage("btnlogin.gif",true)%>" type="image" value="Login" onClick="return imageSubmit()"> </div> </td> </tr> </table> </span> </td> <td width="100%"> </td> </tr> <tr> <td width="50%"></td> <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> <td style="background-color: #E6D88C; padding-right: 10px" align="right" width="100"> </td> <td width="100%"></td> </tr> <% if (NIDPCripple.isCripple()) { %> <tr> <td colspan=4 width="100%" align="center"><%=NIDPCripple.getCrippleAdvertisement(request.getLocale())%></td> </tr> <% } %> </table> </form> </body> </html>