Debug.jsp revision df387df0958751f2d39e4e69c070ddd544b83f42
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering Copyright (c) 2006 Sun Microsystems Inc. All Rights Reserved
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering The contents of this file are subject to the terms
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering of the Common Development and Distribution License
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering (the License). You may not use this file except in
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering compliance with the License.
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering You can obtain a copy of the License at
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering https://opensso.dev.java.net/public/CDDLv1.0.html or
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering See the License for the specific language governing
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering permission and limitations under the License.
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering When distributing Covered Code, include this CDDL
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering Header Notice in each file and include the License file
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering If applicable, add the following below the CDDL Header,
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering with the fields enclosed by brackets [] replaced by
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering your own identifying information:
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering "Portions Copyrighted [year] [name of copyright owner]"
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering $Id: Debug.jsp,v 1.15 2009/01/28 05:35:06 ww203982 Exp $
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering Portions Copyrighted 2010-2012 ForgeRock Inc
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering<%@ page pageEncoding="UTF-8" %>
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering String category = request.getParameter("category");
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering String instance = request.getParameter("instance");
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering String level = request.getParameter("level");
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering if (!ESAPI.validator().isValidInput("category", category, "HTTPParameterValue", 512, true)
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering || !ESAPI.validator().isValidInput("instance", instance, "HTTPParameterValue", 512, true)
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering || !ESAPI.validator().isValidInput("level", level, "HTTPParameterValue", 512, true)) {
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering //Invalid values received, let's null them out and ignore them.
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering category = null;
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering instance = null;
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering boolean performAction = Boolean.valueOf(request.getParameter("do")).
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering booleanValue();
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering ResourceBundle resourceBundle = ResourceBundle.getBundle("debug", request.getLocale());
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering ResourceBundle rbFiles = ResourceBundle.getBundle("debugfiles");
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering Map categories = new HashMap();
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering String adminUserDN = "";
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering List<String> instances = new ArrayList<String>();
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering AMIdentity adminUserId = null;
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering String formToken = null;
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering SSOTokenManager sMgr = SSOTokenManager.getInstance();
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering SSOToken ssoToken = sMgr.createSSOToken(request);
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering // This will give you the 'amAdmin' user dn
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering String adminUser = SystemProperties.get(
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering "com.sun.identity.authentication.super.user");
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering if (adminUser != null) {
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering adminUserDN = DNUtils.normalizeDN(adminUser);
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering // This will give you the 'amAdmin' Identity
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering adminUserId = new AMIdentity(ssoToken, adminUser,
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering // This will be your incoming user/token.
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering AMIdentity user = new AMIdentity(ssoToken);
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering if ((!adminUserDN.equals(DNUtils.normalizeDN(
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering (!user.equals(adminUserId))) {
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering out.println(resourceBundle.getString("message-no-privileges"));
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering formToken = Hash.hash(ssoToken.getTokenID().toString());
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering // Make a copy to prevent ConcurrentModificationException
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering List<Debug> temp = new ArrayList<Debug>(Debug.getInstances());
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering for (Debug debug : temp) {
9b3a0ba3e9e28382a1072bf0e2c07a3661432743Umut Tezduyar Lindskog for (Enumeration e = rbFiles.getKeys();
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering String key = (String)e.nextElement();
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering String val = rbFiles.getString(key);
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering List lst = (List) categories.get(val);
592fd144ae313855f48d0ca52a103013b41e5d59Lennart Poettering if (lst == null) {
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering lst = new ArrayList();
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering } catch (SSOException e) {
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering response.sendRedirect("UI/Login?goto=../Debug.jsp");
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering } catch (MissingResourceException e) {
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering if (performAction) {
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering String receivedToken = request.getParameter("formToken");
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering if (!formToken.equals(receivedToken)) {
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering out.println("Invalid form token provided!");
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
ae0e60fbbc28990617964204ea925a1ef8f42262Lennart Poettering<html xmlns="http://www.w3.org/1999/xhtml">
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering <title>OpenAM</title>
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering <link rel="stylesheet" type="text/css" href="com_sun_web_ui/css/css_ns6up.css" />
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering <link rel="shortcut icon" href="com_sun_web_ui/images/favicon/favicon.ico" type="image/x-icon" />
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering<body class="DefBdy">
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering <div class="SkpMedGry1"><a href="#SkipAnchor3860"><img src="com_sun_web_ui/images/other/dot.gif" alt="Jump to End of Masthead" border="0" height="1" width="1" /></a></div><div class="MstDiv">
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering <table class="MstTblBot" title="" border="0" cellpadding="0" cellspacing="0" width="100%">
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering <td class="MstTdTtl" width="99%">
037c26d0aeb750ca9c8d605884ea1db7baecfea8Lennart Poettering <div class="MstDivTtl"><img name="AMConfig.configurator.ProdName" src="console/images/PrimaryProductName.png" alt="OpenAM" border="0" /></div>
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering <td class="MstTdLogo" width="1%"><img name="AMConfig.configurator.BrandLogo" src="com_sun_web_ui/images/other/javalogo.gif" alt="Java(TM) Logo" border="0" height="55" width="31" /></td>
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering <table class="MstTblEnd" border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td><img name="RMRealm.mhCommon.EndorserLogo" src="com_sun_web_ui/images/masthead/masthead-sunname.gif" alt="Sun(TM) Microsystems, Inc." align="right" border="0" height="10" width="108" /></td></tr></table>
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering <table class="SkpMedGry1" border="0" cellpadding="5" cellspacing="0" width="100%"><tr><td><img src="com_sun_web_ui/images/other/dot.gif" alt="Jump to End of Masthead" border="0" height="1" width="1" /></a></td></tr></table>
099524d7b0df690e3361ffc3fe3c6aed0558b4fcLennart Poettering <table border="0" cellpadding="10" cellspacing="0" width="100%"><tr><td></td></tr></table>
86bafac9540ba9e111ccba2fdf4161fe3a67cd3bUmut Tezduyar Lindskog<table cellpadding=5>
|| level == null || level.length() == 0
<form name="frm" action="Debug.jsp" method="POST">
String key = (String)i.next();
out.println("<option>" + key + "</option>");
out.println("<option value=\"1\">" +
resourceBundle.getString("label-level-error") + "</option>");
out.println("<option value=\"2\">" +
resourceBundle.getString("label-level-warning") + "</option>");
out.println("<option value=\"3\">" +
resourceBundle.getString("label-level-message") + "</option>");
<td><input type="submit" value="Submit" class="Btn1" onclick="this.form.submit();" onmouseover="javascript: this.className='Btn1Hov'" onmouseout="javascript: this.className='Btn1'" onblur="javascript: javascript: this.className='Btn1'" onfocus="javascript: this.className='Btn1Hov'" />
<form name="frm" action="Debug.jsp" method="POST">
out.println("<option>" + inst + "</option>");
out.println("<option value=\"1\">" +
resourceBundle.getString("label-level-error") + "</option>");
out.println("<option value=\"2\">" +
resourceBundle.getString("label-level-warning") + "</option>");
out.println("<option value=\"3\">" +
resourceBundle.getString("label-level-message") + "</option>");
<td><input type="submit" value="Submit" class="Btn1" onclick="this.form.submit();" onmouseover="javascript: this.className='Btn1Hov'" onmouseout="javascript: this.className='Btn1'" onblur="javascript: javascript: this.className='Btn1'" onfocus="javascript: this.className='Btn1Hov'" />
String key = (String)i.next();
out.println("<tr><td valign=top><b>" + key + "</b></td>");
List values = (List)categories.get(key);
out.println("<td>");
msg = resourceBundle.getString("message-category-"+key);
out.println("<b>"+msg+"</b><br>");
out.print("<span class=\"HlpFldTxt\">");
out.print("</span>");
out.println("</td></tr>");
out.println("Instance" + " = " + instance);
out.println("<br />");
if (level.equals("1")) {
} else if (level.equals("2")) {
out.println("<br />");
int levelint = Integer.parseInt(level);
resourceBundle.getString("message-setting-level-on-modules"), param));
out.println("<br />");
List values = (List)categories.get(category);
out.println("<ul>");
String mname = (String)i.next();
out.println( "<li>" + mname + "</li>" );
Debug debug = Debug.getInstance(mname);
debug.setDebug(levelint);
out.println("</ul>");
resourceBundle.getString("message-setting-level-on-instance"), param));
Debug.getInstance(instance).setDebug(levelint);
String backURL = "Debug.jsp";
out.println("<input name='category' type='hidden' value='" + category + "' />");
out.println("<input name='instance' type='hidden' value='" + instance + "' />");
out.println("<input name='level' type='hidden' value='" + levelint + "' />");
out.println("<input name='do' type='hidden' value='true' />");
out.println("<input type='hidden' name='formToken' value='" + formToken + "' />");
out.println("<table border=0>");
out.println("<tr><td>");
out.println("<input type=\"button\" name=\"do\" value=\"" + resourceBundle.getString("button-confirm") + "\" class=\"Btn1\" onclick=\"this.form.submit();\" onmouseover=\"javascript: this.className='Btn1Hov'\" onmouseout=\"javascript: this.className='Btn1'\" onblur=\"javascript: javascript: this.className='Btn1'\" onfocus=\"javascript: this.className='Btn1Hov'\" /></form>");
out.println("</td><td>");
out.println("<input type=\"button\" name=\"back\" value=\"" + resourceBundle.getString("button-back") + "\" class=\"Btn1\" onclick=\"var elements=this.form.elements;for (var i=0;i<elements.length;i++){if(elements[i].type && elements[i].type==='hidden'){elements[i].value=''}};this.form.submit();\" onmouseover=\"javascript: this.className='Btn1Hov'\" onmouseout=\"javascript: this.className='Btn1'\" onblur=\"javascript: this.className='Btn1'\" onfocus=\"javascript: this.className='Btn1Hov'\" />");
out.println("</td></tr></table>");
out.println("</form>");
out.println("<p>");
resourceBundle.getString("message-succeed"), params));