validator.jsp revision e8721886dbfd32e88cc7077cbee4b6bb1b44b443
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney<%--
eb342a1f0f84e3622fc67dafdeb13ad11f1e501cMatt Sweeney DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney Copyright (c) 2008 Sun Microsystems Inc. All Rights Reserved
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney The contents of this file are subject to the terms
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney of the Common Development and Distribution License
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney (the License). You may not use this file except in
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney compliance with the License.
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney You can obtain a copy of the License at
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney https://opensso.dev.java.net/public/CDDLv1.0.html or
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney opensso/legal/CDDLv1.0.txt
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney See the License for the specific language governing
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney permission and limitations under the License.
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney When distributing Covered Code, include this CDDL
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney Header Notice in each file and include the License file
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney at opensso/legal/CDDLv1.0.txt.
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney If applicable, add the following below the CDDL Header,
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney with the fields enclosed by brackets [] replaced by
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney your own identifying information:
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney "Portions Copyrighted [year] [name of copyright owner]"
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney $Id: validator.jsp,v 1.8 2009/11/20 22:45:57 ggennaro Exp $
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney--%>
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney<%@ page pageEncoding="UTF-8"%>
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney<%@ page import="com.sun.identity.common.SystemConfigurationUtil" %>
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney<%@ page import="com.sun.identity.shared.Constants" %>
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney<%@ page import="com.sun.identity.workflow.ValidateSAML2" %>
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney<%@ page import="com.sun.identity.workflow.WorkflowException" %>
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney<%@ page import="java.net.MalformedURLException" %>
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney<%@ page import="java.net.URL" %>
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney<%@ page import="java.net.URLEncoder" %>
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney<%@ page import="java.text.MessageFormat" %>
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney<%@ page import="java.util.Locale" %>
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney<%@ page import="java.util.ResourceBundle" %>
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney<html>
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney<head>
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney<%
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney String deployuri = null;
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney String serverURL = null;
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney try {
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney URL url = new URL(request.getRequestURL().toString());
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney String prot = url.getProtocol();
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney String port = Integer.toString(url.getPort());
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney if (port.equals(-1)) {
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney port = prot.equals("http") ? "443" : "80";
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney }
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney deployuri = url.getPath();
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney int idx = deployuri.indexOf("/", 1);
6f22811f3148a8875c32d1e4a34f19dc1b8579d4Matt Sweeney if (idx != -1) {
deployuri = deployuri.substring(0, idx);
}
serverURL = prot + "://" + url.getHost() + ":" + port + deployuri;
} catch (MalformedURLException e) {
deployuri = SystemConfigurationUtil.getProperty(
Constants.AM_SERVICES_DEPLOYMENT_DESCRIPTOR);
String serverProtocol = SystemConfigurationUtil.getProperty(
Constants.AM_SERVER_PROTOCOL);
String serverHost = SystemConfigurationUtil.getProperty(
Constants.AM_SERVER_HOST);
String serverPort = SystemConfigurationUtil.getProperty(
Constants.AM_SERVER_PORT);
serverURL = serverProtocol + "://" + serverHost + ":" +
serverPort + deployuri;
}
request.setCharacterEncoding("UTF-8");
String realm = request.getParameter("realm");
String cot = request.getParameter("cot");
String idp = request.getParameter("idp");
String sp = request.getParameter("sp");
String locale = request.getParameter("locale");
String setupFailedTitle = "";
String setupError = "";
String authIDPTitle = "";
String authIDPPassed = ValidateSAML2.getMessage(
"validate.help.auth.idp.passed", locale);
String authIDPFailed = ValidateSAML2.getMessage(
"validate.help.auth.idp.failed", locale);
String authIDPAgain = ValidateSAML2.getMessage(
"validate.auth.idp.again", locale);
String authSPTitle = "";
String authSPPassed = ValidateSAML2.getMessage(
"validate.help.auth.sp.passed", locale);
String authSPFailed = ValidateSAML2.getMessage(
"validate.help.auth.sp.failed", locale);
String authSPAgain = ValidateSAML2.getMessage(
"validate.auth.sp.again", locale);
String accLinkTitle = ValidateSAML2.getMessage(
"validate.title.account.linking", locale);
String accLinkPassed = ValidateSAML2.getMessage(
"validate.help.account.linking.passed", locale);
String accLinkFailed = ValidateSAML2.getMessage(
"validate.help.account.linking.failed", locale);
String sloTitle = ValidateSAML2.getMessage(
"validate.title.single.logout", locale);
String sloPassed = ValidateSAML2.getMessage(
"validate.help.single.logout.passed", locale);
String sloFailed = ValidateSAML2.getMessage(
"validate.help.single.logout.failed", locale);
String ssoTitle = "";
String ssoPassed = ValidateSAML2.getMessage(
"validate.help.single.login.passed", locale);
String ssoFailed = ValidateSAML2.getMessage(
"validate.help.single.login.failed", locale);
String ssoAgain = ValidateSAML2.getMessage(
"validate.help.single.login.again", locale);
String accTermTitle = ValidateSAML2.getMessage(
"validate.title.account.termination", locale);
String accTermPassed = ValidateSAML2.getMessage(
"validate.help.account.termination.passed", locale);
String accTermFailed = ValidateSAML2.getMessage(
"validate.help.account.termination.failed", locale);
ValidateSAML2 validator = null;
try {
validator = new ValidateSAML2(realm, idp, sp);
{
Object[] param = {validator.getIDPEntityId()};
authIDPTitle = MessageFormat.format(validator.getMessage(
"validate.title.auth.idp", locale), param);
}
{
Object[] param = {validator.getSPEntityId()};
authSPTitle = MessageFormat.format(validator.getMessage(
"validate.title.auth.sp", locale), param);
}
if (validator.isIDPHosted()) {
Object[] param = {validator.getIDPEntityId()};
ssoTitle = MessageFormat.format(validator.getMessage(
"validate.title.single.login_hosted", locale), param);
} else {
Object[] param = {validator.getSPEntityId()};
ssoTitle = MessageFormat.format(validator.getMessage(
"validate.title.single.login_remote", locale), param);
}
} catch (WorkflowException e) {
setupFailedTitle = ValidateSAML2.getMessage(
"validate.title.setup.failed", locale);
setupError = e.getL10NMessage(Locale.getDefault());
}
%>
<link rel="stylesheet" type="text/css" href="<%= deployuri %>/com_sun_web_ui/css/css_ns6up.css" />
<link rel="stylesheet" type="text/css" href="<%= deployuri %>/console/css/openam.css" />
<script language="JavaScript">
var statusAuthIdp = -1;
var statusAuthSp = -1;
var statusAccLink = -1;
var statusSLO = -1;
var statusSSO = -1;
var statusAccTerm = -1;
function onLoad() {
<%
if (setupError.length() > 0) {
out.println("document.getElementById('setupError').style.display='';");
out.println("top.errorOccured();");
} else {
out.println("logout();");
if (!validator.isFedlet()) {
out.println("setTimeout(\"authIdp()\", 3000);");
} else {
out.println("setTimeout(\"singleLogin()\", 3000);");
}
}
%>
}
function logout() {
<%
if (validator != null) {
out.println("top.gotoHiddenFrame1('" +
validator.getIDPLogoutURL() + "');");
if (!validator.isFedlet()) {
out.println("top.gotoHiddenFrame2('" +
validator.getSPLogoutURL() + "');");
}
}
%>
}
function authIdp() {
document.getElementById('authIdpFailed').style.display = 'none';
document.getElementById('authSp').style.display = '';
document.getElementById('accLink').style.display = '';
document.getElementById('slo').style.display = '';
document.getElementById('sso').style.display = '';
document.getElementById('accTerm').style.display = '';
document.getElementById('authIdpProcessing').style.display = '';
<%
if ((validator != null) && !validator.isFedlet()) {
out.println("top.gotoURL('" +
validator.getIDPLoginURL() +
"?goto=" + URLEncoder.encode(serverURL +
"/validatorStatus.jsp?s=idpauth&v=1") +
"&gotoOnFail=" + URLEncoder.encode(serverURL +
"/validatorStatus.jsp?s=idpauth&v=-1") + "');");
out.println("top.showFooter('validate.footer.auth.idp');");
}
%>
window.scrollTo(0, 0);
}
function authIdpPassed() {
document.getElementById('authSp').style.display = 'none';
document.getElementById('authIdpProcessing').style.display = 'none';
document.getElementById('authIdpPassed').style.display = '';
top.showFooter('');
statusAuthIdp = 1;
setTimeout("authSp()", 2000);
}
function authIdpFailed() {
document.getElementById('authIdpProcessing').style.display = 'none';
document.getElementById('authIdpFailed').style.display = '';
top.showFooter('');
statusAuthIdp = 0;
top.gotoURL("validatorAuthFail.jsp?m=idp&locale=<%= locale %>");
}
function authSp() {
document.getElementById('authSpFailed').style.display = 'none';
document.getElementById('authSpProcessing').style.display = '';
<%
if ((validator != null) && !validator.isFedlet()) {
out.println("top.gotoURL('" +
validator.getSPLoginURL() +
"?goto=" + URLEncoder.encode(serverURL +
"/validatorStatus.jsp?s=spauth&v=1") +
"&gotoOnFail=" + URLEncoder.encode(serverURL +
"/validatorStatus.jsp?s=spauth&v=-1") + "');");
out.println("top.showFooter('validate.footer.auth.sp');");
}
%>
window.scrollTo(0, 50);
}
function authSpPassed() {
document.getElementById('authSpProcessing').style.display = 'none';
document.getElementById('authSpPassed').style.display = '';
document.getElementById('accLink').style.display = 'none';
top.showFooter('');
statusAuthSp = 1;
accountLinking();
}
function authSpFailed() {
document.getElementById('authSpProcessing').style.display = 'none';
document.getElementById('authSpFailed').style.display = '';
top.showFooter('');
statusAuthSp = 0;
top.gotoURL("validatorAuthFail.jsp?m=sp");
}
function accountLinking() {
document.getElementById('accLinkFailed').style.display = 'none';
document.getElementById('accLinkProcessing').style.display = '';
<%
if ((validator != null) && !validator.isFedlet()) {
out.println("top.gotoURL('validateWait.jsp?locale=" + locale + "&m=" +
URLEncoder.encode("validate.wait.account.linking") +
"');");
out.println("top.gotoHiddenFrame1('" + validator.getSSOURL() +
"&RelayState=" + URLEncoder.encode(serverURL +
"/validatorStatus.jsp?s=acclink&v=1") + "');");
out.println("top.showFooter('validate.footer.account.linking');");
}
%>
window.scrollTo(0, 150);
top.trackAccountLink();
}
function accLinkPassed() {
document.getElementById('accLinkFailed').style.display = 'none';
document.getElementById('accLinkProcessing').style.display = 'none';
document.getElementById('accLinkPassed').style.display = '';
document.getElementById('slo').style.display = 'none';
top.showFooter('');
statusAccLink = 1;
singleLogout();
}
function accLinkFailed() {
document.getElementById('accLinkProcessing').style.display = 'none';
document.getElementById('accLinkFailed').style.display = '';
top.showFooter('');
statusAccLink = 0;
getReport();
}
function singleLogout() {
document.getElementById('sloFailed').style.display = 'none';
document.getElementById('sloProcessing').style.display = '';
<%
if ((validator != null) && !validator.isFedlet()) {
out.println("top.gotoURL('validateWait.jsp?locale=" + locale + "&m=" +
URLEncoder.encode("validate.wait.single.logout") + "');");
out.println("top.gotoHiddenFrame1('" + validator.getSLOURL() +
"&RelayState=" + URLEncoder.encode(serverURL +
"/validatorStatus.jsp?s=slo&v=1") + "');");
out.println("top.showFooter('validate.footer.single.logout');");
}
%>
window.scrollTo(0, 200);
top.trackSingleLogout();
}
function sloPassed() {
document.getElementById('sloFailed').style.display = 'none';
document.getElementById('sloProcessing').style.display = 'none';
document.getElementById('sloPassed').style.display = '';
document.getElementById('slo').style.display = 'none';
top.showFooter('');
statusSLO = 1;
singleLogin();
}
function sloFailed() {
document.getElementById('sloProcessing').style.display = 'none';
document.getElementById('sloFailed').style.display = '';
top.showFooter('');
statusSLO = 0;
getReport();
}
function singleLogin() {
document.getElementById('ssoFailed').style.display = 'none';
document.getElementById('sso').style.display = 'none';
document.getElementById('ssoProcessing').style.display = '';
<%
if (validator != null ) {
if( validator.isSalesforceSP() ) {
// SF doesn't support relay states outside of their domain
out.println("top.gotoURL('" + validator.getSSOURL() + "');");
out.println("top.showFooter('validate.footer.single.login');");
} else {
out.println("top.gotoURL('" + validator.getSSOURL() +
"&RelayState=" + URLEncoder.encode(serverURL +
"/validatorStatus.jsp?s=sso&v=1&sendRedirectForValidationNow=true") + "');");
out.println("top.showFooter('validate.footer.single.login');");
}
}
%>
window.scrollTo(0, 250);
top.trackSingleLogin();
}
function getReport() {
var url = "validatorRpt.jsp";
<%
if (validator != null) {
out.println("url += '?idp=' + '" +
URLEncoder.encode(validator.getIDPEntityId()) + "';");
if (validator.isFedlet()) {
out.println("url += '&fedlet=' + '" +
URLEncoder.encode(validator.getSPEntityId()) + "';");
} else {
out.println("url += '&sp=' + '" +
URLEncoder.encode(validator.getSPEntityId()) + "';");
}
}
%>
if (statusAuthIdp > -1) {
url += '&authidp=' + statusAuthIdp;
}
if (statusAuthSp > -1) {
url += '&authsp=' + statusAuthSp;
}
if (statusAccLink > -1) {
url += '&acclink=' + statusAccLink;
}
if (statusSLO > -1) {
url += '&slo=' + statusSLO;
}
if (statusSSO > -1) {
url += '&sso=' + statusSSO;
}
if (statusAccTerm > -1) {
url += '&accterm=' + statusAccTerm;
}
url += "&locale=<%= locale %>";
top.gotoURL(url);
}
function ssoPassed() {
document.getElementById('ssoFailed').style.display = 'none';
document.getElementById('ssoProcessing').style.display = 'none';
document.getElementById('ssoPassed').style.display = '';
document.getElementById('sso').style.display = 'none';
document.getElementById('accTerm').style.display = 'none';
top.showFooter('');
statusSSO = 1;
<%
if (validator != null) {
if (!validator.isFedlet()) {
out.println("accTermination();");
} else {
out.println("getReport();");
}
}
%>
}
function ssoFailed() {
document.getElementById('sso').style.display = 'none';
document.getElementById('ssoProcessing').style.display = 'none';
document.getElementById('ssoFailed').style.display = '';
top.showFooter('');
statusSSO = 0;
top.gotoURL("validatorAuthFail.jsp?m=sso&locale=<%= locale %>");
}
function accTermPassed() {
document.getElementById('accTermFailed').style.display = 'none';
document.getElementById('accTermProcessing').style.display = 'none';
document.getElementById('accTermPassed').style.display = '';
document.getElementById('accTerm').style.display = 'none';
top.showFooter('');
statusAccTerm = 1;
}
function accTermFailed() {
document.getElementById('accTermProcessing').style.display = 'none';
document.getElementById('accTermFailed').style.display = '';
top.showFooter('');
statusAccTerm = 0;
getReport();
}
function accTermination() {
document.getElementById('accTermFailed').style.display = 'none';
document.getElementById('accTermProcessing').style.display = '';
<%
if (validator != null) {
out.println("top.gotoURL('validateWait.jsp?locale=" + locale + "&m=" +
URLEncoder.encode("validate.wait.account.termination") + "');");
out.println("top.gotoHiddenFrame1('" +
validator.getAccountTerminationURL() +
"&RelayState=" + URLEncoder.encode(serverURL +
"/validatorStatus.jsp?s=accTerm&v=1") + "');");
out.println("top.showFooter('validate.footer.account.termination');");
}
%>
window.scrollTo(0, 250);
top.trackAccountTermination();
}
</script>
</head>
<body class="DefBdy" onLoad="onLoad();">
<table border=0 cellpadding=2 cellspacing=10 width="100%">
<tr>
<td bgcolor="#666699">
<table border=0 cellpadding=1 cellspacing=0 width="100%">
<tr>
<td bgcolor="#FFFFFF">
<!-- content -->
<table border=0 cellpadding=10 cellspacing=0>
<tr>
<td>
<div id="setupError" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><img src="<%= deployuri %>/console/images/progressfailed.gif" width="28" height="26" /></td>
<td><span class="ProgressFailedTitle" id="ErrorTitle"><%= setupFailedTitle %></span></td>
</tr>
<tr><td></td>
<td><span class="ProgressText" id="ErrorText"><%= setupError %></span>
</tr>
</table>
</div>
<div id="authIdpProcessing" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><img src="<%= deployuri %>/console/images/progresspointer.gif" width="33" height="33" /></td>
<td><span class="ProgressTitle"><%=authIDPTitle %></span></td>
</tr>
</table>
</div>
<div id="authIdpPassed" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><img src="<%= deployuri %>/console/images/progresspassed.gif" width="28" height="26" /></td>
<td><span class="ProgressDoneTitle"><%=authIDPPassed %></span></td>
</tr>
</table>
</div>
<div id="authIdpFailed" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><img src="<%= deployuri %>/console/images/progressfailed.gif" width="28" height="26" /></td>
<td><span class="ProgressFailedTitle"><%= authIDPFailed %></span></td>
</tr>
</table>
</div>
<div id="authSp" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><div><img src="<%= deployuri %>/com_sun_web_ui/images/other/dot.gif" alt="" border="0" height="10" width="30" /></div></td>
<td><span class="ProgressText"><%=authSPTitle %></span></td>
</tr>
</table>
</div>
<div id="authSpProcessing" style="width:100%;display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><img src="<%= deployuri %>/console/images/progresspointer.gif" width="33" height="33" /></td>
<td><span class="ProgressTitle"><%= authSPTitle %></span><br /></td>
</tr>
</table>
</div>
<div id="authSpPassed" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><img src="<%= deployuri %>/console/images/progresspassed.gif" width="28" height="26" /></td>
<td><span class="ProgressDoneTitle"><%=authSPPassed %></span></td>
</tr>
</table>
</div>
<div id="authSpFailed" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><img src="<%= deployuri %>/console/images/progressfailed.gif" width="28" height="26" /></td>
<td><span class="ProgressFailedTitle"><%=authSPFailed %></span></td>
</tr>
</table>
</div>
<div id="accLink" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><div><img src="<%= deployuri %>/com_sun_web_ui/images/other/dot.gif" alt="" border="0" height="10" width="30" /></div></td>
<td><span class="ProgressText"><%= accLinkTitle %></span></td>
</tr>
</table>
</div>
<div id="accLinkProcessing" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><img src="<%= deployuri %>/console/images/progresspointer.gif" width="33" height="33" /></td>
<td><span class="ProgressTitle"><%= accLinkTitle %></span><br /></td>
</tr>
</table>
</div>
<div id="accLinkPassed" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><img src="<%= deployuri %>/console/images/progresspassed.gif" width="28" height="26" /></td>
<td><span class="ProgressDoneTitle"><%=accLinkPassed %></span></td>
</tr>
</table>
</div>
<div id="accLinkFailed" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><img src="<%= deployuri %>/console/images/progressfailed.gif" width="28" height="26" /></td>
<td><span class="ProgressFailedTitle"><%=accLinkFailed %></span></td>
</tr>
</table>
</div>
<div id="slo" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><div><img src="<%= deployuri %>/com_sun_web_ui/images/other/dot.gif" alt="" border="0" height="10" width="30" /></div></td>
<td><span class="ProgressText"><%= sloTitle %></span></td>
</tr>
</table>
</div>
<div id="sloProcessing" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><img src="<%= deployuri %>/console/images/progresspointer.gif" width="33" height="33" /></td>
<td><span class="ProgressTitle"><%= sloTitle %></span><br /></td>
</tr>
</table>
</div>
<div id="sloPassed" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><img src="<%= deployuri %>/console/images/progresspassed.gif" width="28" height="26" /></td>
<td><span class="ProgressDoneTitle"><%=sloPassed %></span></td>
</tr>
</table>
</div>
<div id="sloFailed" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><img src="<%= deployuri %>/console/images/progressfailed.gif" width="28" height="26" /></td>
<td><span class="ProgressFailedTitle"><%=sloFailed %></span></td>
</tr>
</table>
</div>
<div id="sso" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><div><img src="<%= deployuri %>/com_sun_web_ui/images/other/dot.gif" alt="" border="0" height="10" width="30" /></div></td>
<td><span class="ProgressText"><%= ssoTitle %></span></td>
</tr>
</table>
</div>
<div id="ssoProcessing" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><img src="<%= deployuri %>/console/images/progresspointer.gif" width="33" height="33" /></td>
<td><span class="ProgressTitle"><%= ssoTitle %></span><br /></td>
</tr>
</table>
</div>
<div id="ssoPassed" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><img src="<%= deployuri %>/console/images/progresspassed.gif" width="28" height="26" /></td>
<td><span class="ProgressDoneTitle"><%=ssoPassed %></span></td>
</tr>
</table>
</div>
<div id="ssoFailed" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><img src="<%= deployuri %>/console/images/progressfailed.gif" width="28" height="26" /></td>
<td><span class="ProgressFailedTitle"><%=ssoFailed %></span></td>
</tr>
</table>
</div>
<div id="accTerm" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><div><img src="<%= deployuri %>/com_sun_web_ui/images/other/dot.gif" alt="" border="0" height="10" width="30" /></div></td>
<td><span class="ProgressText"><%= accTermTitle %></span></td>
</tr>
</table>
</div>
<div id="accTermProcessing" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><img src="<%= deployuri %>/console/images/progresspointer.gif" width="33" height="33" /></td>
<td><span class="ProgressTitle"><%= accTermTitle %></span><br /></td>
</tr>
</table>
</div>
<div id="accTermPassed" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><img src="<%= deployuri %>/console/images/progresspassed.gif" width="28" height="26" /></td>
<td><span class="ProgressDoneTitle"><%=accTermPassed %></span></td>
</tr>
</table>
</div>
<div id="accTermFailed" style="display:none">
<table border=0 cellpadding=0 cellspacing=2>
<tr><td><img src="<%= deployuri %>/console/images/progressfailed.gif" width="28" height="26" /></td>
<td><span class="ProgressFailedTitle"><%=accTermFailed %></span></td>
</tr>
</table>
</div>
</td>
</tr>
</table>
<!-- content -->
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>