services.jsp revision e8721886dbfd32e88cc7077cbee4b6bb1b44b443
f8d2de6bd2421da1926f3daa456d161670decdf7jchu DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
f8d2de6bd2421da1926f3daa456d161670decdf7jchu Copyright (c) 2011 ForgeRock AS. All Rights Reserved
0168954460bd77d83497a4a6aa9c3f34c55dba25jchu The contents of this file are subject to the terms
f8d2de6bd2421da1926f3daa456d161670decdf7jchu of the Common Development and Distribution License
f8d2de6bd2421da1926f3daa456d161670decdf7jchu (the License). You may not use this file except in
f8d2de6bd2421da1926f3daa456d161670decdf7jchu compliance with the License.
f8d2de6bd2421da1926f3daa456d161670decdf7jchu You can obtain a copy of the License at
f8d2de6bd2421da1926f3daa456d161670decdf7jchu See the License for the specific language governing
f8d2de6bd2421da1926f3daa456d161670decdf7jchu permission and limitations under the License.
f8d2de6bd2421da1926f3daa456d161670decdf7jchu When distributing Covered Code, include this CDDL
f8d2de6bd2421da1926f3daa456d161670decdf7jchu Header Notice in each file and include the License file
f8d2de6bd2421da1926f3daa456d161670decdf7jchu If applicable, add the following below the CDDL Header,
f8d2de6bd2421da1926f3daa456d161670decdf7jchu with the fields enclosed by brackets [] replaced by
f8d2de6bd2421da1926f3daa456d161670decdf7jchu your own identifying information:
0168954460bd77d83497a4a6aa9c3f34c55dba25jchu "Portions Copyrighted [year] [name of copyright owner]"
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<%@ page language="java"
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<%@ page import="com.sun.identity.sm.*" %>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<%@ page import="java.util.*" %>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <title>OpenAM</title>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <link rel="stylesheet" type="text/css" href="com_sun_web_ui/css/css_ns6up.css"/>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <link rel="shortcut icon" href="com_sun_web_ui/images/favicon/favicon.ico" type="image/x-icon"/>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <style type="text/css">
e51949e6deb4cb79dcb0772d225868626ae52517dduvall .attribute {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall color: red;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall width: 550px;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall padding: 0px;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall /*background-color: #eeeeee;*/
f8d2de6bd2421da1926f3daa456d161670decdf7jchu .attributeRowA {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu width: 100%;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu background-color: #eeeeee;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu padding: 6px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu .attributeRowB {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu width: 100%;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu background-color: #dddddd;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu padding: 6px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu .attribute .name {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu color: blue;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu font-size: 12px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu font-family: courier;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu /*background-color: #00008b;*/
f8d2de6bd2421da1926f3daa456d161670decdf7jchu .attribute .description {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu color: black;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu font-size: 15px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu /*background-color: #b8860b;*/
f8d2de6bd2421da1926f3daa456d161670decdf7jchu .attribute .descriptionMissing {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu color: #666666;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu font-size: 15px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu .attribute .help {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu color: green;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu font-size: 12px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu /*background-color: #006400;*/
f8d2de6bd2421da1926f3daa456d161670decdf7jchu .schemaType {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu position: relative;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu float: left;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu clear: left;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu padding: 2px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu width: 750px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu font-family: arial, helvetica;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall .schemaBlock {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall position: relative;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu float: left;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu width: 630px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu display: block;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall font-family: arial, helvetica;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall .schemaTitle {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu width: 120px;
3d9c56a157784839d32b49e03a3468a72c53f2dcet float: left;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall font-size: 12px;
3d9c56a157784839d32b49e03a3468a72c53f2dcet .service {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall position: relative;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu float: left;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu padding-top: 10px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu width: 800px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu font-family: arial, helvetica;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu .serviceName {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu position: relative;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu float: left;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu font-weight: bold;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu font-size: 16px;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall /*background-color: #bbbbcc;*/
f8d2de6bd2421da1926f3daa456d161670decdf7jchu padding: 2px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu width: 796px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu .serviceBlock {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu position: relative;
0168954460bd77d83497a4a6aa9c3f34c55dba25jchu float: left;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu clear: left;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu left: 10px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu width: 790px;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu display: block;
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <script src="js/jquery.js"></script>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <script type="text/javascript">
e51949e6deb4cb79dcb0772d225868626ae52517dduvall $(document).ready(function () {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall $(".schemaTitle").click(function () {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu $(this).parent().children(".schemaBlock").toggle("fast");
f8d2de6bd2421da1926f3daa456d161670decdf7jchu $(".serviceName").click(function () {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu $(this).parent().children(".serviceBlock").toggle("fast");
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<body class="DefBdy">
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<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>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<div class="MstDiv">
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <table class="MstTblBot" title="" border="0" cellpadding="0" cellspacing="0" width="100%">
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <td class="MstTdTtl" width="99%">
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <div class="MstDivTtl"><img name="AMConfig.configurator.ProdName" src="console/images/PrimaryProductName.png" alt="OpenSSO" border="0"/></div>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <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>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <table class="MstTblEnd" border="0" cellpadding="0" cellspacing="0" width="100%">
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <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>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<table class="SkpMedGry1" border="0" cellpadding="5" cellspacing="0" width="100%">
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <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>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<table border="0" cellpadding="10" cellspacing="0" width="100%">
f8d2de6bd2421da1926f3daa456d161670decdf7jchu<table cellpadding=15>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <div id="doc" style="max-width: 800px; display: block;">
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <p><strong>OpenAM Service Attributes</strong></p>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <p>In order to translate configuration changes made in OpenAM console to
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <code>ssoadm</code> commands, you must first match the GUI settings to
f8d2de6bd2421da1926f3daa456d161670decdf7jchu service attributes used by <code>ssoadm</code>. This page lists
f8d2de6bd2421da1926f3daa456d161670decdf7jchu available service attributes, including their labels and online help from
e51949e6deb4cb79dcb0772d225868626ae52517dduvall OpenAM console where available. Service attributes apply according to their type:</p>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <dt>Dynamic</dt>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <dd>Applies to a role or a realm</dd>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <dt>Global</dt>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <dd>Applies to the entire OpenAM server</dd>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <dt>Organization</dt>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <dd>Applies to a realm</dd>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <p>To find the service attribute that corresponds to a particular GUI
f8d2de6bd2421da1926f3daa456d161670decdf7jchu setting, click Expand below, and then search for the label of the GUI
f8d2de6bd2421da1926f3daa456d161670decdf7jchu setting within this page.</p>
f8d2de6bd2421da1926f3daa456d161670decdf7jchu <p>For example, suppose you changed <code>Maximum Session Time</code> in
f8d2de6bd2421da1926f3daa456d161670decdf7jchu the OpenAM console to 240 seconds. You search this page for
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <code>Maximum Session Time</code> and find the dynamic attribute
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <code>iplanet-am-session-max-session-time</code> on the
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <code>iPlanetAMSessionService</code> service. To set maximum session
f8d2de6bd2421da1926f3daa456d161670decdf7jchu time to 240 seconds by script, you use the following command.</p>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall<pre>ssoadm set-attr-defs -u amadmin -f /tmp/pwd.txt -s iPlanetAMSessionService \
e51949e6deb4cb79dcb0772d225868626ae52517dduvall -t dynamic -a "iplanet-am-session-max-session-time=240"</pre>
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <div style="font-size: 12px; display: inline; text-color: #666666; text-decoration: underline;"
e51949e6deb4cb79dcb0772d225868626ae52517dduvall onclick="$(document).find('.serviceBlock').show(); $(document).find('.schemaBlock').show();">Expand all
e51949e6deb4cb79dcb0772d225868626ae52517dduvall |
e51949e6deb4cb79dcb0772d225868626ae52517dduvall <div style="font-size: 12px; display: inline; text-color: #666666; text-decoration: underline;"
e51949e6deb4cb79dcb0772d225868626ae52517dduvall onclick="$(document).find('.serviceBlock').hide(); $(document).find('.schemaBlock').hide();">Collapse all
e51949e6deb4cb79dcb0772d225868626ae52517dduvall // Get valid SSOToken (must be logged in as amadmin)
e51949e6deb4cb79dcb0772d225868626ae52517dduvall SSOTokenManager sMgr;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall SSOToken token;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall token = sMgr.createSSOToken(request);
e51949e6deb4cb79dcb0772d225868626ae52517dduvall } catch (SSOException e) {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall ServiceManager sm = new ServiceManager(token);
e51949e6deb4cb79dcb0772d225868626ae52517dduvall Set serviceNames = sm.getServiceNames();
e51949e6deb4cb79dcb0772d225868626ae52517dduvall for (Object o : serviceNames) {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall String serviceName = o.toString();
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='service' name='" + o + "'>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='serviceName'>" + serviceName + "</div>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='serviceBlock'>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall // Assume version 1.0 (as of 2012-06 all services are version 1.0)
e51949e6deb4cb79dcb0772d225868626ae52517dduvall ServiceConfigManager scm = sm.getConfigManager(serviceName, "1.0");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall Set<String> instances = scm.getInstanceNames();
e51949e6deb4cb79dcb0772d225868626ae52517dduvall // To list instances
e51949e6deb4cb79dcb0772d225868626ae52517dduvall// for (String instance : instances) {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall// out.println("Instance: " + instance + "");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall ServiceSchemaManager ssm = sm.getSchemaManager(serviceName, "1.0");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall if (ssm != null) {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall Map<String, ServiceSchema> serviceSchemaList = new HashMap<String, ServiceSchema>();
e51949e6deb4cb79dcb0772d225868626ae52517dduvall ServiceSchema dynamic = ssm.getDynamicSchema();
e51949e6deb4cb79dcb0772d225868626ae52517dduvall if (dynamic != null) {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall serviceSchemaList.put("Dynamic", dynamic);
e51949e6deb4cb79dcb0772d225868626ae52517dduvall ServiceSchema global = ssm.getGlobalSchema();
e51949e6deb4cb79dcb0772d225868626ae52517dduvall if (global != null) {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall serviceSchemaList.put("Global", global);
3d9c56a157784839d32b49e03a3468a72c53f2dcet ServiceSchema org = ssm.getOrganizationSchema();
e51949e6deb4cb79dcb0772d225868626ae52517dduvall if (org != null) {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall serviceSchemaList.put("Organization", org);
e51949e6deb4cb79dcb0772d225868626ae52517dduvall for (String schemaType : serviceSchemaList.keySet()) {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu ServiceSchema ss = serviceSchemaList.get(schemaType);
f8d2de6bd2421da1926f3daa456d161670decdf7jchu String i18nFilename = ss.getI18NFileName();
e51949e6deb4cb79dcb0772d225868626ae52517dduvall ResourceBundle bundle = ResourceBundle.getBundle(i18nFilename);
e51949e6deb4cb79dcb0772d225868626ae52517dduvall if (ss != null) {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu Set<String> serviceAttributeNames = ss.getServiceAttributeNames();
e51949e6deb4cb79dcb0772d225868626ae52517dduvall // Ignore this schema if it is empty
e51949e6deb4cb79dcb0772d225868626ae52517dduvall if (serviceAttributeNames == null || serviceAttributeNames.isEmpty()) {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu out.println("<div class='schemaType'><div class='schemaTitle'>" + schemaType + "</div>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='schemaBlock'>");
f8d2de6bd2421da1926f3daa456d161670decdf7jchu boolean rowAlternator = true;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall for (String s : serviceAttributeNames) {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall // Alternating row backgrounds
e51949e6deb4cb79dcb0772d225868626ae52517dduvall rowAlternator = !rowAlternator;
e51949e6deb4cb79dcb0772d225868626ae52517dduvall AttributeSchema as = ss.getAttributeSchema(s);
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='attribute'>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall if (rowAlternator)
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='attributeRowA'>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='attributeRowB'>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='name'>" + s + "</div>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall if (as.getI18NKey() != null)
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='description'>" + bundle.getString(as.getI18NKey()) + "</div>");
3d9c56a157784839d32b49e03a3468a72c53f2dcet } catch (MissingResourceException mre) {
f8d2de6bd2421da1926f3daa456d161670decdf7jchu out.println("<div class='descriptionMissing'>" + s + " (missing description)</div>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall if (as.getI18NKey() != null)
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("<div class='help'>" + bundle.getString(as.getI18NKey().concat(".help")) + "</div>");
e51949e6deb4cb79dcb0772d225868626ae52517dduvall } catch (MissingResourceException mre) {
e51949e6deb4cb79dcb0772d225868626ae52517dduvall out.println("</div></div>");