[prev in list] [next in list] [prev in thread] [next in thread] 

List:       forgerock-openam-commit
Subject:    [CommitOpenAM] [10296] branches/AME-3423: Merging 10214 10217 10218 10222 10224 10229 10230 10243 10
From:       noreply () forgerock ! org
Date:       2014-08-28 15:42:34
Message-ID: 20140828154234.CEF10422A4 () sources ! internal ! forgerock ! com
[Download RAW message or body]

[Attachment #2 (text/html)]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[10296] branches/AME-3423: Merging 10214 10217 10218 10222 10224 10229 10230 \
10243 10244 10249 10251 10253 10254 10255 10258 10259 10265 10274 10276 10282 \
10288</title> </head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: \
verdana,arial,helvetica,sans-serif; font-size: 10pt;  } #msg dl a { font-weight: \
bold} #msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: \
bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: \
6px; } #logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em \
0; } #logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg \
h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; } \
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; \
} #logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: \
-1.5em; padding-left: 1.5em; } #logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em \
1em 0 1em; background: white;} #logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid \
#fa0; border-bottom: 1px solid #fa0; background: #fff; } #logmsg table th { \
text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted \
#fa0; } #logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: \
0.2em 0.5em; } #logmsg table thead th { text-align: center; border-bottom: 1px solid \
#fa0; } #logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: \
6px; } #patch { width: 100%; }
#patch h4 {font-family: \
verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
 #patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, \
#patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins \
{background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del \
{background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, \
                .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a \
href="http://sources.forgerock.org/changelog/openam/?cs=10296">10296</a></dd> \
<dt>Author</dt> <dd>rwapshott</dd> <dt>Date</dt> <dd>2014-08-28 16:42:34 +0100 (Thu, \
28 Aug 2014)</dd> </dl>

<h3>Log Message</h3>
<pre>Merging 10214 10217 10218 10222 10224 10229 10230 10243 10244 10249 10251 10253 \
10254 10255 10258 10259 10265 10274 10276 10282 10288</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#branchesAME3423openamopenamauthenticationopenamauthhotpsrcmainjavacomsun \
identityauthenticationmoduleshotpHOTPjava">branches/AME-3423/openam/openam-authenticat \
ion/openam-auth-hotp/src/main/java/com/sun/identity/authentication/modules/hotp/HOTP.java</a></li>
 <li><a href="#branchesAME3423openamopenamclientsdkpomxml">branches/AME-3423/openam/openam-clientsdk/pom.xml</a></li>
 <li><a href="#branchesAME3423openamopenamcoresrcmainjavacomsunidentityentitlementopen \
ssoPolicyPrivilegeManagerjava">branches/AME-3423/openam/openam-core/src/main/java/com/sun/identity/entitlement/opensso/PolicyPrivilegeManager.java</a></li>
 <li><a href="#branchesAME3423openamopenamcoresrcmainjavaorgforgerockopenamctsapifilte \
rTokenFilterBuilderjava">branches/AME-3423/openam/openam-core/src/main/java/org/forgerock/openam/cts/api/filter/TokenFilterBuilder.java</a></li>
 <li><a href="#branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxadm \
inguidechaprealmsxml">branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/admin-guide/chap-realms.xml</a></li>
 <li><a href="#branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxadm \
inguidechaptuningxml">branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/admin-guide/chap-tuning.xml</a></li>
 <li><a href="#branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxdev \
guidechaprestxml">branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/dev-guide/chap-rest.xml</a></li>
 <li><a href="#branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxins \
tallguidechapctsxml">branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/install-guide/chap-cts.xml</a></li>
 <li><a href="#branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxref \
erencechapconfigrefxml">branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/reference/chap-config-ref.xml</a></li>
 <li><a href="#branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxref \
erencechapendpointsxml">branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/reference/chap-endpoints.xml</a></li>
 <li><a href="#branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxrel \
easenoteschapwhatsnewxml">branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/release-notes/chap-whats-new.xml</a></li>
 <li><a href="#branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxweb \
releasenoteschapwebagentsxml">branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/web-release-notes/chap-web-agents.xml</a></li>
 <li><a href="#branchesAME3423openamopenamentitlementssrcmainjavacomsunidentityentitle \
mentPrivilegeManagerjava">branches/AME-3423/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/PrivilegeManager.java</a></li>
 <li><a href="#branchesAME3423openamopenamfederationopenamfederationlibrarysrcmainjava \
comsunidentitysaml2profileIDPSSOUtiljava">branches/AME-3423/openam/openam-federation/o \
penam-federation-library/src/main/java/com/sun/identity/saml2/profile/IDPSSOUtil.java</a></li>
 <li><a href="#branchesAME3423openamopenamforgerockrestsrcmainjavaorgforgerockopenamfo \
rgerockrestentitlementsJsonPolicyParserjava">branches/AME-3423/openam/openam-forgerock \
-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/JsonPolicyParser.java</a></li>
 <li><a href="#branchesAME3423openamopenamforgerockrestsrcmainjavaorgforgerockopenamfo \
rgerockrestentitlementsPolicyResourcejava">branches/AME-3423/openam/openam-forgerock-r \
est/src/main/java/org/forgerock/openam/forgerockrest/entitlements/PolicyResource.java</a></li>
 <li><a href="#branchesAME3423openamopenamforgerockrestsrcmainjavaorgforgerockopenamfo \
rgerockrestentitlementsPolicyStorejava">branches/AME-3423/openam/openam-forgerock-rest \
/src/main/java/org/forgerock/openam/forgerockrest/entitlements/PolicyStore.java</a></li>
 <li><a href="#branchesAME3423openamopenamforgerockrestsrcmainjavaorgforgerockopenamfo \
rgerockrestentitlementsPrivilegePolicyStorejava">branches/AME-3423/openam/openam-forge \
rock-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/PrivilegePolicyStore.java</a></li>
 <li><a href="#branchesAME3423openamopenamforgerockrestsrcmainjavaorgforgerockopenamfo \
rgerockrestentitlementsmodeljsonJsonPolicyjava">branches/AME-3423/openam/openam-forger \
ock-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/model/json/JsonPolicy.java</a></li>
 <li><a href="#branchesAME3423openamopenamforgerockrestsrcmainjavaorgforgerockopenamfo \
rgerockrestguiceForgerockRestGuiceModulejava">branches/AME-3423/openam/openam-forgeroc \
k-rest/src/main/java/org/forgerock/openam/forgerockrest/guice/ForgerockRestGuiceModule.java</a></li>
 <li><a href="#branchesAME3423openamopenamforgerockrestsrcmainjavaorgforgerockopenamoa \
uth2restTokenResourcejava">branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/oauth2/rest/TokenResource.java</a></li>
 <li><a href="#branchesAME3423openamopenamforgerockrestsrctestjavaorgforgerockopenamfo \
rgerockrestentitlementsJsonPolicyParserTestjava">branches/AME-3423/openam/openam-forge \
rock-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/JsonPolicyParserTest.java</a></li>
 <li><a href="#branchesAME3423openamopenamforgerockrestsrctestjavaorgforgerockopenamfo \
rgerockrestentitlementsPolicyResourceTestjava">branches/AME-3423/openam/openam-forgero \
ck-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/PolicyResourceTest.java</a></li>
 <li><a href="#branchesAME3423openamopenamforgerockrestsrctestjavaorgforgerockopenamfo \
rgerockrestentitlementsPrivilegePolicyStoreTestjava">branches/AME-3423/openam/openam-f \
orgerock-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/PrivilegePolicyStoreTest.java</a></li>
 <li><a href="#branchesAME3423openamopenamoauth2srcmainjavaorgforgerockopenamoauth2OAu \
thTokenStorejava">branches/AME-3423/openam/openam-oauth2/src/main/java/org/forgerock/openam/oauth2/OAuthTokenStore.java</a></li>
 <li><a href="#branchesAME3423openamopenamoauth2srcmainjavaorgforgerockopenamoauth2Ope \
nAMOAuth2ProviderSettingsFactoryjava">branches/AME-3423/openam/openam-oauth2/src/main/ \
java/org/forgerock/openam/oauth2/OpenAMOAuth2ProviderSettingsFactory.java</a></li> \
<li><a href="#branchesAME3423openamopenamoauth2srcmainjavaorgforgerockopenamoauth2Open \
AMTokenStorejava">branches/AME-3423/openam/openam-oauth2/src/main/java/org/forgerock/openam/oauth2/OpenAMTokenStore.java</a></li>
 <li><a href="#branchesAME3423openamopenamscriptingsrcmainjavaorgforgerockopenamscript \
ingsandboxGroovySandboxValueFilterjava">branches/AME-3423/openam/openam-scripting/src/ \
main/java/org/forgerock/openam/scripting/sandbox/GroovySandboxValueFilter.java</a></li>
 <li><a href="#branchesAME3423openamopenamserveronlysrcmainresourcesMETAINFservicescom \
googleinjectAbstractModule">branches/AME-3423/openam/openam-server-only/src/main/resources/META-INF/services/com.google.inject.AbstractModule</a></li>
 <li><a href="#branchesAME3423openamopenamuipolicysrcmainjsorgforgerockopenamuipolicyM \
anageApplicationsViewjs">branches/AME-3423/openam/openam-ui-policy/src/main/js/org/forgerock/openam/ui/policy/ManageApplicationsView.js</a></li>
 <li><a href="#branchesAME3423openamopenamuipolicysrcmainjsorgforgerockopenamuipolicyM \
anagePoliciesViewjs">branches/AME-3423/openam/openam-ui-policy/src/main/js/org/forgerock/openam/ui/policy/ManagePoliciesView.js</a></li>
 <li><a href="#branchesAME3423openamopenamuipolicysrcmainresourcescsspolicycommonless" \
>branches/AME-3423/openam/openam-ui-policy/src/main/resources/css/policy/common.less</a></li>
> 
<li><a href="#branchesAME3423openamopenamuipolicysrctestqunitpolicyjs">branches/AME-3423/openam/openam-ui-policy/src/test/qunit/policy.js</a></li>
 <li><a href="#branchesAME3423openamopenamuiriasrcmainjsorgforgerockopenamuidashboardD \
ashboardViewjs">branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/dashboard/DashboardView.js</a></li>
 <li><a href="#branchesAME3423openamopenamuiriasrcmainjsorgforgerockopenamuidashboardm \
ainjs">branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/dashboard/main.js</a></li>
 <li><a href="#branchesAME3423openamopenamuiriasrcmainjsorgforgerockopenamuiuserloginR \
ESTLoginViewjs">branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/user/login/RESTLoginView.js</a></li>
 <li><a href="#branchesAME3423openamopenamuiriasrcmainresourcescssopenamdashboardless" \
>branches/AME-3423/openam/openam-ui-ria/src/main/resources/css/openam/dashboard.less</a></li>
> 
<li><a href="#branchesAME3423openamopenamuiriasrcmainresourceslocalesentranslationjson \
">branches/AME-3423/openam/openam-ui-ria/src/main/resources/locales/en/translation.json</a></li>
 <li><a href="#branchesAME3423openamopenamuiriasrcmainresourcestemplatesopenamDashboar \
dTemplatehtml">branches/AME-3423/openam/openam-ui-ria/src/main/resources/templates/openam/DashboardTemplate.html</a></li>
 <li><a href="#branchesAME3423openamopenamuiriasrcmainresourcestemplatesopenamoauth2To \
kensTemplatehtml">branches/AME-3423/openam/openam-ui-ria/src/main/resources/templates/openam/oauth2/TokensTemplate.html</a></li>
 <li><a href="#branchesAME3423openssoproductswebagentsamsourceurlcpp">branches/AME-3423/opensso/products/webagents/am/source/url.cpp</a></li>
 </ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxadmi \
nguideimagestrusteddevicemgmtpng">branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/admin-guide/images/trusted-device-mgmt.png</a></li>
 <li><a href="#branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxsha \
redsecdatastoresactivedirectoryxml">branches/AME-3423/openam/openam-documentation/open \
am-doc-source/src/main/docbkx/shared/sec-data-stores-active-directory.xml</a></li> \
<li><a href="#branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxshar \
edsecdatastoresadamxml">branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-adam.xml</a></li>
 <li><a href="#branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxsha \
redsecdatastoresdbxml">branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-db.xml</a></li>
 <li><a href="#branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxsha \
redsecdatastoresdseexml">branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-dsee.xml</a></li>
 <li><a href="#branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxsha \
redsecdatastoresgenericldapv3xml">branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-generic-ldapv3.xml</a></li>
 <li><a href="#branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxsha \
redsecdatastoresopendjxml">branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-opendj.xml</a></li>
 <li><a href="#branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxsha \
redsecdatastorestivolixml">branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-tivoli.xml</a></li>
 <li><a href="#branchesAME3423openamopenamuiriasrcmainjsorgforgerockopenamuidashboardO \
AuthTokensDelegatejs">branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/dashboard/OAuthTokensDelegate.js</a></li>
 <li><a href="#branchesAME3423openamopenamuiriasrcmainjsorgforgerockopenamuidashboardO \
AuthTokensViewjs">branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/dashboard/OAuthTokensView.js</a></li>
 </ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#branchesAME3423openamopenamcoresrcmainresourcesMETAINFservicescomgooglei \
njectAbstractModule">branches/AME-3423/openam/openam-core/src/main/resources/META-INF/services/com.google.inject.AbstractModule</a></li>
 </ul>

<h3>Property Changed</h3>
<ul>
<li><a href="#branchesAME3423">branches/AME-3423/</a></li>
<li><a href="#branchesAME3423communityextensionscrowdprovider">branches/AME-3423/community/extensions/crowdprovider/</a></li>
 <li><a href="#branchesAME3423openam">branches/AME-3423/openam/</a></li>
<li><a href="#branchesAME3423openamopenamdocumentationopenamdocsource">branches/AME-3423/openam/openam-documentation/openam-doc-source/</a></li>
 <li><a href="#branchesAME3423openamopenamoauth2">branches/AME-3423/openam/openam-oauth2/</a></li>
 <li><a href="#branchesAME3423openamagents">branches/AME-3423/openam-agents/</a></li>
<li><a href="#branchesAME3423opensso">branches/AME-3423/opensso/</a></li>
<li><a href="#branchesAME3423openssoproducts">branches/AME-3423/opensso/products/</a></li>
 </ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="branchesAME3423"></a>
<div class="propset"><h4>Property changes: branches/AME-3423</h4>
<pre class="diff"><span>
</span></pre></div>
<a id="svnmergeinfo"></a>
<div class="modfile"><h4>Modified: svn:mergeinfo</h4></div>
<span class="cx">/branches/AME-2526-SFO-between-sites:7510-8258
</span><span class="cx">/branches/AME-3612-pcunnington:9534-9723
</span><span class="cx">/branches/AME-3719:9517-9879
</span><span class="cx">/branches/IIS7PostData:224-261
</span><span class="cx">/branches/OPENAM-2961-forgot-password-404:8322-8362
</span><span class="cx">/branches/OPENAM-3097-sessions-not-deleted:6910-6946
</span><span class="cx">/branches/OPENAM-3283-CTS-thread-exceptions:7270-7369
</span><span class="cx">/branches/OPENAM-3425-class-cast-exception:8333-8359
</span><span class="cx">/branches/OPENAM-3782-forgotten-password-changes:8747-8835
</span><span class="cx">/branches/OPENAM-OPENAM-3528-client-side-session-validation:7834-7844
 </span><span class="cx">/branches/ame4103:9979,9981,9998,10000,10002,10007-10008,10016,10018,10038
 </span><span class="cx">/branches/ame4272:10073-10101
</span><span class="cx">/branches/andy-ame-2227-v2:7508-7697
</span><span class="cx">/branches/andy-ame1316-connectionfactory:5311-5328
</span><span class="cx">/branches/andy-cts-connection-pool:7098-7175
</span><span class="cx">/branches/andy-openam-2654:6872-6911
</span><span class="cx">/branches/andy-openam-2880:6451-6503
</span><span class="cx">/branches/andy-openam-2907:6531-6534
</span><span class="cx">/branches/andy-openam-3006:6709-6749
</span><span class="cx">/branches/andy-openam-3063:6927-6948
</span><span class="cx">/branches/andy-openam-3193:7124-7128
</span><span class="cx">/branches/andy-openam-3248:7171-7715
</span><span class="cx">/branches/andy-openam2743:6372-6439
</span><span class="cx">/branches/andy-openam2744:6347-6367
</span><span class="cx">/branches/andyAme2972:8270-8318
</span><span class="cx">/branches/andyAme3196:8853-9084
</span><span class="cx">/branches/andyOpenam1708:5576-5592
</span><span class="cx">/branches/andyOpenam2140:7819-7862
</span><span class="cx">/branches/andyOpenam2373:5600-5706
</span><span class="cx">/branches/andyOpenam2525:5601-5733
</span><span class="cx">/branches/andyOpenam3509:7881-7963
</span><span class="cx">/branches/andyOpenam3638:8094-8172
</span><span class="cx">/branches/andyPolicyCrest:8295-8813
</span><span class="cx">/branches/apforrest-ame1316:4881-5305
</span><span class="cx">/branches/maven_merge:2556-3124
</span><span class="cx">/branches/openam-3049-cts-reaper-connection-usage:6658-6745
</span><span class="cx">/branches/openam-3053-cts-tab-exception:6672-6721
</span><span class="cx">/branches/openam-3072-cts-configuration:6691-6714
</span><span class="cx">/branches/openam-3092-store-mode-error:6729-6733
</span><span class="cx">/branches/openam-3110-create-or-update-bug:6767-6804
</span><span class="cx">/branches/openam2742-andy:6266-6323
</span><span class="cx">/branches/pcunnington-AME-3115-refactor:8348-8473
</span><span class="cx">/branches/pcunnington-AME-3158:8476-8577
</span><span class="cx">/branches/pcunnington-AME-350:4165-4344
</span><span class="cx">/branches/pcunnington-ame-344:4651-5199
</span><span class="cx">/branches/pcunnington-oauth2:8710-8793
</span><span class="cx">/branches/phcunnington-AME-3114:8314-8341
</span><span class="cx">/branches/policyimprovements:5513-5515
</span><span class="cx">/branches/rwapshott-AME-1739:5331-5353
</span><span class="cx">/branches/rwapshott-AME-215:4091-4155
</span><span class="cx">/branches/rwapshott-AME-257:4047-4126
</span><span class="cx">/branches/rwapshott-AME-804:4267-5404
</span><span class="cx">/branches/rwapshott-ame-2160-session-size:6086-6319
</span><span class="cx">/branches/rwapshott-openam-2198-session-resource-protection:5628-5824
 </span><span class="cx">/branches/rwapshott-openam-2526:5442-5484
</span><span class="cx">/branches/rwapshott-openam-2716-cts-invalid-chars:6170-6194
</span><span class="cx">/trunk:10107-10111,10114-10116,10119,10129-10131,10134-10136,1 \
0138-10143,10146,10159-10161,10172,10174-10176,10179,10182-10185,10191,10193,10196-10201,10204,10212
 </span><span class="cx">   + /branches/10.1.0-Xpress:3888-3892
</span><span class="cx">/branches/AME-2526-SFO-between-sites:7510-8258
</span><span class="cx">/branches/AME-3612-pcunnington:9534-9723
</span><span class="cx">/branches/AME-3719:9517-9879
</span><span class="cx">/branches/IIS7PostData:224-261
</span><span class="cx">/branches/OPENAM-2961-forgot-password-404:8322-8362
</span><span class="cx">/branches/OPENAM-3097-sessions-not-deleted:6910-6946
</span><span class="cx">/branches/OPENAM-3283-CTS-thread-exceptions:7270-7369
</span><span class="cx">/branches/OPENAM-3425-class-cast-exception:8333-8359
</span><span class="cx">/branches/OPENAM-3782-forgotten-password-changes:8747-8835
</span><span class="cx">/branches/OPENAM-4384-ssoadm-classpath:10263-10264
</span><span class="cx">/branches/OPENAM-OPENAM-3528-client-side-session-validation:7834-7844
 </span><span class="cx">/branches/ame4103:9979,9981,9998,10000,10002,10007-10008,10016,10018,10038
 </span><span class="cx">/branches/ame4272:10073-10101
</span><span class="cx">/branches/andy-ame-2227-v2:7508-7697
</span><span class="cx">/branches/andy-ame1316-connectionfactory:5311-5328
</span><span class="cx">/branches/andy-cts-connection-pool:7098-7175
</span><span class="cx">/branches/andy-openam-2654:6872-6911
</span><span class="cx">/branches/andy-openam-2880:6451-6503
</span><span class="cx">/branches/andy-openam-2907:6531-6534
</span><span class="cx">/branches/andy-openam-3006:6709-6749
</span><span class="cx">/branches/andy-openam-3063:6927-6948
</span><span class="cx">/branches/andy-openam-3193:7124-7128
</span><span class="cx">/branches/andy-openam-3248:7171-7715
</span><span class="cx">/branches/andy-openam2743:6372-6439
</span><span class="cx">/branches/andy-openam2744:6347-6367
</span><span class="cx">/branches/andyAme2972:8270-8318
</span><span class="cx">/branches/andyAme3196:8853-9084
</span><span class="cx">/branches/andyOpenam1708:5576-5592
</span><span class="cx">/branches/andyOpenam2140:7819-7862
</span><span class="cx">/branches/andyOpenam2373:5600-5706
</span><span class="cx">/branches/andyOpenam2525:5601-5733
</span><span class="cx">/branches/andyOpenam3509:7881-7963
</span><span class="cx">/branches/andyOpenam3638:8094-8172
</span><span class="cx">/branches/andyPolicyCrest:8295-8813
</span><span class="cx">/branches/apforrest-ame1316:4881-5305
</span><span class="cx">/branches/maven_merge:2556-3124
</span><span class="cx">/branches/openam-3049-cts-reaper-connection-usage:6658-6745
</span><span class="cx">/branches/openam-3053-cts-tab-exception:6672-6721
</span><span class="cx">/branches/openam-3072-cts-configuration:6691-6714
</span><span class="cx">/branches/openam-3092-store-mode-error:6729-6733
</span><span class="cx">/branches/openam-3110-create-or-update-bug:6767-6804
</span><span class="cx">/branches/openam2742-andy:6266-6323
</span><span class="cx">/branches/pcunnington-AME-3115-refactor:8348-8473
</span><span class="cx">/branches/pcunnington-AME-3158:8476-8577
</span><span class="cx">/branches/pcunnington-AME-350:4165-4344
</span><span class="cx">/branches/pcunnington-ame-344:4651-5199
</span><span class="cx">/branches/pcunnington-oauth2:8710-8793
</span><span class="cx">/branches/phcunnington-AME-3114:8314-8341
</span><span class="cx">/branches/policyimprovements:5513-5515
</span><span class="cx">/branches/rwapshott-AME-1739:5331-5353
</span><span class="cx">/branches/rwapshott-AME-215:4091-4155
</span><span class="cx">/branches/rwapshott-AME-257:4047-4126
</span><span class="cx">/branches/rwapshott-AME-804:4267-5404
</span><span class="cx">/branches/rwapshott-ame-2160-session-size:6086-6319
</span><span class="cx">/branches/rwapshott-openam-2198-session-resource-protection:5628-5824
 </span><span class="cx">/branches/rwapshott-openam-2526:5442-5484
</span><span class="cx">/branches/rwapshott-openam-2716-cts-invalid-chars:6170-6194
</span><span class="cx">/trunk:10107-10111,10114-10116,10119,10129-10131,10134-10136,1 \
0138-10143,10146,10159-10161,10172,10174-10176,10179,10182-10185,10191,10193,10196-102 \
01,10204,10212,10214,10217-10218,10222,10224,10229-10230,10243-10244,10249,10251,10253-10255,10258-10259,10265,10274,10276,10282,10288
 </span><a id="branchesAME3423communityextensionscrowdprovider"></a>
<div class="propset"><h4>Property changes: \
branches/AME-3423/community/extensions/crowdprovider</h4> <pre class="diff"><span>
</span></pre></div>
<a id="svnmergeinfo"></a>
<div class="modfile"><h4>Modified: svn:mergeinfo</h4></div>
<span class="cx">/branches/AME-3612-pcunnington/community/extensions/crowdprovider:9534-9723
 </span><span class="cx">/branches/AME-3719/community/extensions/crowdprovider:9517-9879
 </span><span class="cx">/branches/IIS7PostData/opensso/extensions/seraphprovider:224-261
 </span><span class="cx">/branches/OPENAM-2961-forgot-password-404/community/extensions/crowdprovider:8322-8362
 </span><span class="cx">/branches/OPENAM-3097-sessions-not-deleted/community/extensions/crowdprovider:6910-6946
 </span><span class="cx">/branches/OPENAM-3283-CTS-thread-exceptions/community/extensions/crowdprovider:7270-7369
 </span><span class="cx">/branches/OPENAM-3425-class-cast-exception/community/extensions/crowdprovider:8333-8359
 </span><span class="cx">/branches/OPENAM-3782-forgotten-password-changes/community/extensions/crowdprovider:8747-8835
 </span><span class="cx">/branches/OPENAM-OPENAM-3528-client-side-session-validation/community/extensions/crowdprovider:7834-7844
 </span><span class="cx">/branches/allanCSDK/extensions/seraphprovider:64-163
</span><span class="cx">/branches/ame4272/community/extensions/crowdprovider:10073-10101
 </span><span class="cx">/branches/andy-ame-2227-v2/community/extensions/crowdprovider:7508-7697
 </span><span class="cx">/branches/maven_merge/community/extensions/crowdprovider:2556-2561
 </span><span class="cx">/branches/openam-3049-cts-reaper-connection-usage/community/extensions/crowdprovider:6658-6745
 </span><span class="cx">/branches/openam-3053-cts-tab-exception/community/extensions/crowdprovider:6672-6721
 </span><span class="cx">/branches/openam-3072-cts-configuration/community/extensions/crowdprovider:6691-6714
 </span><span class="cx">/branches/openam-3092-store-mode-error/community/extensions/crowdprovider:6729-6733
 </span><span class="cx">/branches/openam-3110-create-or-update-bug/community/extensions/crowdprovider:6767-6804
 </span><span class="cx">/branches/pcunnington-AME-3115-refactor/community/extensions/crowdprovider:8348-8473
 </span><span class="cx">/branches/pcunnington-oauth2/community/extensions/crowdprovider:8710-8793
 </span><span class="cx">/branches/phcunnington-AME-3114/community/extensions/crowdprovider:8314-8341
 </span><span class="cx">/branches/rwapshott-AME-1739/community/extensions/crowdprovider:5331-5353
 </span><span class="cx">/branches/rwapshott-AME-215/community/extensions/crowdprovider:4091-4155
 </span><span class="cx">/branches/rwapshott-AME-257/community/extensions/crowdprovider:4047-4126
 </span><span class="cx">/branches/rwapshott-AME-804/community/extensions/crowdprovider:4267-5404
 </span><span class="cx">/branches/rwapshott-ame-2160-session-size/community/extensions/crowdprovider:6086-6319
 </span><span class="cx">/branches/rwapshott-openam-2198-session-resource-protection/community/extensions/crowdprovider:5628-5824
 </span><span class="cx">/branches/rwapshott-openam-2526/community/extensions/crowdprovider:5442-5484
 </span><span class="cx">/branches/rwapshott-openam-2716-cts-invalid-chars/community/extensions/crowdprovider:6170-6194
 </span><span class="cx">/trunk/community/extensions/crowdprovider:2556-2930,10107-101 \
11,10114-10116,10119,10129-10131,10134-10136,10138-10143,10146,10159-10161,10172,10174-10176,10179,10182-10185,10191,10193,10196-10201,10204,10212
 </span><span class="cx">   + \
/branches/AME-2526-SFO-between-sites/community/extensions/crowdprovider:7510-8258 \
</span><span class="cx">/branches/AME-3612-pcunnington/community/extensions/crowdprovider:9534-9723
 </span><span class="cx">/branches/AME-3719/community/extensions/crowdprovider:9517-9879
 </span><span class="cx">/branches/IIS7PostData/opensso/extensions/seraphprovider:224-261
 </span><span class="cx">/branches/OPENAM-2961-forgot-password-404/community/extensions/crowdprovider:8322-8362
 </span><span class="cx">/branches/OPENAM-3097-sessions-not-deleted/community/extensions/crowdprovider:6910-6946
 </span><span class="cx">/branches/OPENAM-3283-CTS-thread-exceptions/community/extensions/crowdprovider:7270-7369
 </span><span class="cx">/branches/OPENAM-3425-class-cast-exception/community/extensions/crowdprovider:8333-8359
 </span><span class="cx">/branches/OPENAM-3782-forgotten-password-changes/community/extensions/crowdprovider:8747-8835
 </span><span class="cx">/branches/OPENAM-4384-ssoadm-classpath/community/extensions/crowdprovider:10263-10264
 </span><span class="cx">/branches/OPENAM-OPENAM-3528-client-side-session-validation/community/extensions/crowdprovider:7834-7844
 </span><span class="cx">/branches/allanCSDK/extensions/seraphprovider:64-163
</span><span class="cx">/branches/ame4272/community/extensions/crowdprovider:10073-10101
 </span><span class="cx">/branches/andy-ame-2227-v2/community/extensions/crowdprovider:7508-7697
 </span><span class="cx">/branches/maven_merge/community/extensions/crowdprovider:2556-2561
 </span><span class="cx">/branches/openam-3049-cts-reaper-connection-usage/community/extensions/crowdprovider:6658-6745
 </span><span class="cx">/branches/openam-3053-cts-tab-exception/community/extensions/crowdprovider:6672-6721
 </span><span class="cx">/branches/openam-3072-cts-configuration/community/extensions/crowdprovider:6691-6714
 </span><span class="cx">/branches/openam-3092-store-mode-error/community/extensions/crowdprovider:6729-6733
 </span><span class="cx">/branches/openam-3110-create-or-update-bug/community/extensions/crowdprovider:6767-6804
 </span><span class="cx">/branches/pcunnington-AME-3115-refactor/community/extensions/crowdprovider:8348-8473
 </span><span class="cx">/branches/pcunnington-oauth2/community/extensions/crowdprovider:8710-8793
 </span><span class="cx">/branches/phcunnington-AME-3114/community/extensions/crowdprovider:8314-8341
 </span><span class="cx">/branches/rwapshott-AME-1739/community/extensions/crowdprovider:5331-5353
 </span><span class="cx">/branches/rwapshott-AME-215/community/extensions/crowdprovider:4091-4155
 </span><span class="cx">/branches/rwapshott-AME-257/community/extensions/crowdprovider:4047-4126
 </span><span class="cx">/branches/rwapshott-AME-804/community/extensions/crowdprovider:4267-5404
 </span><span class="cx">/branches/rwapshott-ame-2160-session-size/community/extensions/crowdprovider:6086-6319
 </span><span class="cx">/branches/rwapshott-openam-2198-session-resource-protection/community/extensions/crowdprovider:5628-5824
 </span><span class="cx">/branches/rwapshott-openam-2526/community/extensions/crowdprovider:5442-5484
 </span><span class="cx">/branches/rwapshott-openam-2716-cts-invalid-chars/community/extensions/crowdprovider:6170-6194
 </span><span class="cx">/trunk/community/extensions/crowdprovider:2556-2930,10107-101 \
11,10114-10116,10119,10129-10131,10134-10136,10138-10143,10146,10159-10161,10172,10174 \
-10176,10179,10182-10185,10191,10193,10196-10201,10204,10212,10214,10217-10218,10222,1 \
0224,10229-10230,10243-10244,10249,10251,10253-10255,10258-10259,10265,10274,10276,10282,10288
 </span><a id="branchesAME3423openam"></a>
<div class="propset"><h4>Property changes: branches/AME-3423/openam</h4>
<pre class="diff"><span>
</span></pre></div>
<a id="svnmergeinfo"></a>
<div class="modfile"><h4>Modified: svn:mergeinfo</h4></div>
<span class="cx">/branches/AME-2629/openam:7585-7632
</span><span class="cx">/branches/AME-2766-policy-entitlements-REST-APIs/openam:8455-8476
 </span><span class="cx">/branches/AME-3087-entitlements-CREST-management/openam:8481-8664
 </span><span class="cx">/branches/AME-3087_query_and_patch/openam:8667-8681
</span><span class="cx">/branches/AME-3405-session-read-from-cts/openam:8749-8823
</span><span class="cx">/branches/AME-3612-pcunnington/openam:9534-9723
</span><span class="cx">/branches/AME-3719/openam:9517-9879
</span><span class="cx">/branches/AME-3726-script-sandboxing/openam:9663-9819
</span><span class="cx">/branches/CTS-Async/openam:8847-9739
</span><span class="cx">/branches/OPENAM-2961-forgot-password-404/openam:8322-8362
</span><span class="cx">/branches/OPENAM-3097-sessions-not-deleted/openam:6910-6946
</span><span class="cx">/branches/OPENAM-3130-session-quota/openam:6958-6972
</span><span class="cx">/branches/OPENAM-3283-CTS-thread-exceptions/openam:7270-7369
</span><span class="cx">/branches/OPENAM-3425-class-cast-exception/openam:8333-8359
</span><span class="cx">/branches/OPENAM-3782-forgotten-password-changes/openam:8747-8835
 </span><span class="cx">/branches/OPENAM-4028-connection-pool/openam:9750-10171
</span><span class="cx">/branches/OPENAM-OPENAM-3528-client-side-session-validation/openam:7834-7844
 </span><span class="cx">/branches/ame4272/openam:10073-10101
</span><span class="cx">/branches/andy-ame-2227-v2/openam:7508-7697
</span><span class="cx">/branches/andy-ame1316-connectionfactory/openam:5311-5328
</span><span class="cx">/branches/andy-cts-connection-pool/openam:7098-7175
</span><span class="cx">/branches/andy-openam-2654/openam:6872-6911
</span><span class="cx">/branches/andy-openam-2880/openam:6451-6503
</span><span class="cx">/branches/andy-openam-2907/openam:6531-6534
</span><span class="cx">/branches/andy-openam-3006/openam:6709-6749
</span><span class="cx">/branches/andy-openam-3063/openam:6927-6948
</span><span class="cx">/branches/andy-openam-3193/openam:7124-7128
</span><span class="cx">/branches/andy-openam-3248/openam:7171-7715
</span><span class="cx">/branches/andy-openam2743/openam:6372-6439
</span><span class="cx">/branches/andy-openam2744/openam:6347-6367
</span><span class="cx">/branches/andyAme2972/openam:8270-8318
</span><span class="cx">/branches/andyAme3102/openam:8312-8413
</span><span class="cx">/branches/andyAme3196/openam:8853-9084
</span><span class="cx">/branches/andyOpenam1708/openam:5576-5592
</span><span class="cx">/branches/andyOpenam2140/openam:7819-7862
</span><span class="cx">/branches/andyOpenam2373/openam:5600-5706
</span><span class="cx">/branches/andyOpenam2525/openam:5601-5733
</span><span class="cx">/branches/andyOpenam3509/openam:7881-7963
</span><span class="cx">/branches/andyOpenam3638/openam:8094-8172
</span><span class="cx">/branches/andyPolicyCrest/openam:8295-8813
</span><span class="cx">/branches/apforrest-ame1316/openam:4881-5305
</span><span class="cx">/branches/apforrest_ame805_indextree/openam:4567-4852
</span><span class="cx">/branches/dirk_oauth_perf:5904
</span><span class="cx">/branches/dirk_sts:5297,5314,5317-5318,5320-5321
</span><span class="cx">/branches/oidc_authn:8507,8540,8557-8559,8565-8566
</span><span class="cx">/branches/openam-3049-cts-reaper-connection-usage/openam:6658-6745
 </span><span class="cx">/branches/openam-3053-cts-tab-exception/openam:6672-6721
</span><span class="cx">/branches/openam-3072-cts-configuration/openam:6691-6714
</span><span class="cx">/branches/openam-3092-store-mode-error/openam:6729-6733
</span><span class="cx">/branches/openam-3110-create-or-update-bug/openam:6767-6804
</span><span class="cx">/branches/openam2742-andy/openam:6266-6323
</span><span class="cx">/branches/openam_10.1.0_xacml3_JAS/openam:4039-4140
</span><span class="cx">/branches/openam_10.2.0_xacml3_JAS/openam:4141-4379
</span><span class="cx">/branches/pcunnington-AME-3115-refactor/openam:8348-8473
</span><span class="cx">/branches/pcunnington-AME-3158/openam:8476-8577
</span><span class="cx">/branches/pcunnington-AME-350/openam:4165-4344
</span><span class="cx">/branches/pcunnington-ame-344/openam:4651-5199
</span><span class="cx">/branches/pcunnington-oauth2/openam:8710-8793
</span><span class="cx">/branches/phcunnington-AME-3114/openam:8314-8341
</span><span class="cx">/branches/policyimprovements/openam:5513-5515
</span><span class="cx">/branches/rest_sts_publish:8167,8180,8214,8227,8245,8260
</span><span class="cx">/branches/rest_sts_view_bean:9690-9965
</span><span class="cx">/branches/rwapshott-AME-1739/openam:5331-5353
</span><span class="cx">/branches/rwapshott-AME-215/openam:4091-4155
</span><span class="cx">/branches/rwapshott-AME-257/openam:4047-4126
</span><span class="cx">/branches/rwapshott-AME-804/openam:4267-5404
</span><span class="cx">/branches/rwapshott-ame-2027-cts-oids-should-follow-fr-oid-scheme/openam:5609-5614
 </span><span class="cx">/branches/rwapshott-ame-2160-session-size/openam:6086-6319
</span><span class="cx">/branches/rwapshott-ame-2311-index-names/openam:6058-6069
</span><span class="cx">/branches/rwapshott-ame-258-cts-replication/openam:5548-6055
</span><span class="cx">/branches/rwapshott-openam-2198-session-resource-protection/openam:5628-5824
 </span><span class="cx">/branches/rwapshott-openam-2526/openam:5442-5484
</span><span class="cx">/branches/rwapshott-openam-2716-cts-invalid-chars/openam:6170-6194
 </span><span class="cx">/branches/rwapshott-openam-2729-saml2-error/openam:6247-6257
</span><span class="cx">/branches/sts_oidc_saml:8310,8352,8355,8368,8378-8379,8387-8388,8403,8410,8416
 </span><span class="cx">/branches/sts_oidc_saml_redux:8417-8422,8424,8440,8445-8446,8460,8490,8498
 </span><span class="cx">/branches/sts_restart_persistence:9003-9005,9009-9414
</span><span class="cx">/branches/sts_service_listeners:9968-10031,10047-10048,10053
</span><span class="cx">/branches/sts_token_gen_service:8706,8717-8720,8723-8725,8727-8728,8731,8737,8740-8742,8759-8760,8774-8776,8796-8797,8800-8801,8818-8819,8821
 </span><span class="cx">/branches/sts_token_gen_service2:8844-8887,8894-9000
</span><span class="cx">/trunk/openam:10107-10111,10114-10116,10119,10129-10131,10134- \
10136,10138-10143,10146,10159-10161,10172,10174-10176,10179,10182-10185,10191,10193,10196-10201,10204,10212
 </span><span class="cx">   + /branches/AME-2526-SFO-between-sites/openam:7510-8258
</span><span class="cx">/branches/AME-2629/openam:7585-7632
</span><span class="cx">/branches/AME-2766-policy-entitlements-REST-APIs/openam:8455-8476
 </span><span class="cx">/branches/AME-3087-entitlements-CREST-management/openam:8481-8664
 </span><span class="cx">/branches/AME-3087_query_and_patch/openam:8667-8681
</span><span class="cx">/branches/AME-3405-session-read-from-cts/openam:8749-8823
</span><span class="cx">/branches/AME-3612-pcunnington/openam:9534-9723
</span><span class="cx">/branches/AME-3719/openam:9517-9879
</span><span class="cx">/branches/AME-3726-script-sandboxing/openam:9663-9819
</span><span class="cx">/branches/CTS-Async/openam:8847-9739
</span><span class="cx">/branches/OPENAM-2961-forgot-password-404/openam:8322-8362
</span><span class="cx">/branches/OPENAM-3097-sessions-not-deleted/openam:6910-6946
</span><span class="cx">/branches/OPENAM-3130-session-quota/openam:6958-6972
</span><span class="cx">/branches/OPENAM-3283-CTS-thread-exceptions/openam:7270-7369
</span><span class="cx">/branches/OPENAM-3425-class-cast-exception/openam:8333-8359
</span><span class="cx">/branches/OPENAM-3782-forgotten-password-changes/openam:8747-8835
 </span><span class="cx">/branches/OPENAM-4028-connection-pool/openam:9750-10171
</span><span class="cx">/branches/OPENAM-4384-ssoadm-classpath/openam:10263-10264
</span><span class="cx">/branches/OPENAM-OPENAM-3528-client-side-session-validation/openam:7834-7844
 </span><span class="cx">/branches/ame4272/openam:10073-10101
</span><span class="cx">/branches/andy-ame-2227-v2/openam:7508-7697
</span><span class="cx">/branches/andy-ame1316-connectionfactory/openam:5311-5328
</span><span class="cx">/branches/andy-cts-connection-pool/openam:7098-7175
</span><span class="cx">/branches/andy-openam-2654/openam:6872-6911
</span><span class="cx">/branches/andy-openam-2880/openam:6451-6503
</span><span class="cx">/branches/andy-openam-2907/openam:6531-6534
</span><span class="cx">/branches/andy-openam-3006/openam:6709-6749
</span><span class="cx">/branches/andy-openam-3063/openam:6927-6948
</span><span class="cx">/branches/andy-openam-3193/openam:7124-7128
</span><span class="cx">/branches/andy-openam-3248/openam:7171-7715
</span><span class="cx">/branches/andy-openam2743/openam:6372-6439
</span><span class="cx">/branches/andy-openam2744/openam:6347-6367
</span><span class="cx">/branches/andyAme2972/openam:8270-8318
</span><span class="cx">/branches/andyAme3102/openam:8312-8413
</span><span class="cx">/branches/andyAme3196/openam:8853-9084
</span><span class="cx">/branches/andyOpenam1708/openam:5576-5592
</span><span class="cx">/branches/andyOpenam2140/openam:7819-7862
</span><span class="cx">/branches/andyOpenam2373/openam:5600-5706
</span><span class="cx">/branches/andyOpenam2525/openam:5601-5733
</span><span class="cx">/branches/andyOpenam3509/openam:7881-7963
</span><span class="cx">/branches/andyOpenam3638/openam:8094-8172
</span><span class="cx">/branches/andyPolicyCrest/openam:8295-8813
</span><span class="cx">/branches/apforrest-ame1316/openam:4881-5305
</span><span class="cx">/branches/apforrest_ame805_indextree/openam:4567-4852
</span><span class="cx">/branches/dirk_oauth_perf:5904
</span><span class="cx">/branches/dirk_sts:5297,5314,5317-5318,5320-5321
</span><span class="cx">/branches/oidc_authn:8507,8540,8557-8559,8565-8566
</span><span class="cx">/branches/openam-3049-cts-reaper-connection-usage/openam:6658-6745
 </span><span class="cx">/branches/openam-3053-cts-tab-exception/openam:6672-6721
</span><span class="cx">/branches/openam-3072-cts-configuration/openam:6691-6714
</span><span class="cx">/branches/openam-3092-store-mode-error/openam:6729-6733
</span><span class="cx">/branches/openam-3110-create-or-update-bug/openam:6767-6804
</span><span class="cx">/branches/openam2742-andy/openam:6266-6323
</span><span class="cx">/branches/openam_10.1.0_xacml3_JAS/openam:4039-4140
</span><span class="cx">/branches/openam_10.2.0_xacml3_JAS/openam:4141-4379
</span><span class="cx">/branches/pcunnington-AME-3115-refactor/openam:8348-8473
</span><span class="cx">/branches/pcunnington-AME-3158/openam:8476-8577
</span><span class="cx">/branches/pcunnington-AME-350/openam:4165-4344
</span><span class="cx">/branches/pcunnington-ame-344/openam:4651-5199
</span><span class="cx">/branches/pcunnington-oauth2/openam:8710-8793
</span><span class="cx">/branches/phcunnington-AME-3114/openam:8314-8341
</span><span class="cx">/branches/policyimprovements/openam:5513-5515
</span><span class="cx">/branches/rest_sts_publish:8167,8180,8214,8227,8245,8260
</span><span class="cx">/branches/rest_sts_view_bean:9690-9965
</span><span class="cx">/branches/rwapshott-AME-1739/openam:5331-5353
</span><span class="cx">/branches/rwapshott-AME-215/openam:4091-4155
</span><span class="cx">/branches/rwapshott-AME-257/openam:4047-4126
</span><span class="cx">/branches/rwapshott-AME-804/openam:4267-5404
</span><span class="cx">/branches/rwapshott-ame-2027-cts-oids-should-follow-fr-oid-scheme/openam:5609-5614
 </span><span class="cx">/branches/rwapshott-ame-2160-session-size/openam:6086-6319
</span><span class="cx">/branches/rwapshott-ame-2311-index-names/openam:6058-6069
</span><span class="cx">/branches/rwapshott-ame-258-cts-replication/openam:5548-6055
</span><span class="cx">/branches/rwapshott-openam-2198-session-resource-protection/openam:5628-5824
 </span><span class="cx">/branches/rwapshott-openam-2526/openam:5442-5484
</span><span class="cx">/branches/rwapshott-openam-2716-cts-invalid-chars/openam:6170-6194
 </span><span class="cx">/branches/rwapshott-openam-2729-saml2-error/openam:6247-6257
</span><span class="cx">/branches/sts_oidc_saml:8310,8352,8355,8368,8378-8379,8387-8388,8403,8410,8416
 </span><span class="cx">/branches/sts_oidc_saml_redux:8417-8422,8424,8440,8445-8446,8460,8490,8498
 </span><span class="cx">/branches/sts_restart_persistence:9003-9005,9009-9414
</span><span class="cx">/branches/sts_service_listeners:9968-10031,10047-10048,10053
</span><span class="cx">/branches/sts_token_gen_service:8706,8717-8720,8723-8725,8727-8728,8731,8737,8740-8742,8759-8760,8774-8776,8796-8797,8800-8801,8818-8819,8821
 </span><span class="cx">/branches/sts_token_gen_service2:8844-8887,8894-9000
</span><span class="cx">/trunk/openam:10107-10111,10114-10116,10119,10129-10131,10134- \
10136,10138-10143,10146,10159-10161,10172,10174-10176,10179,10182-10185,10191,10193,10 \
196-10201,10204,10212,10214,10217-10218,10222,10224,10229-10230,10243-10244,10249,10251,10253-10255,10258-10259,10265,10274,10276,10282,10288
 </span><a id="branchesAME3423openamopenamauthenticationopenamauthhotpsrcmainjavacomsunidentityauthenticationmoduleshotpHOTPjava"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-authentication/openam-auth-hotp/src/main/java/com/sun/identity/authentication/modules/hotp/HOTP.java \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-authentication/openam-auth-hotp/src/main/java/com/sun/identity/authentication/modules/hotp/HOTP.java	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-authentication/openam-auth-hotp/src/main/java/com/sun/identity/authentication/modules/hotp/HOTP.java	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -24,9 +24,7 @@
</span><span class="cx">  *
</span><span class="cx">  * $Id: HOTP.java,v 1.1 2009/03/24 23:52:12 pluo Exp $
</span><span class="cx">  *
</span><del>- */
-/*
- * Portions Copyrighted 2012-2014 ForgeRock AS
</del><ins>+ * Portions Copyrighted 2012-2014 ForgeRock AS.
</ins><span class="cx">  * Portions Copyrighted 2014 Nomura Research Institute, Ltd
</span><span class="cx">  */
</span><span class="cx"> 
</span><span class="lines">@@ -52,7 +50,6 @@
</span><span class="cx"> import java.util.ResourceBundle;
</span><span class="cx"> 
</span><span class="cx"> public class HOTP extends AMLoginModule {
</span><del>-    // local variables
</del><span class="cx"> 
</span><span class="cx">     protected static final String amAuthHOTP = \
&quot;amAuthHOTP&quot;; </span><span class="cx">     protected static final Debug \
debug = Debug.getInstance(amAuthHOTP); </span><span class="lines">@@ -66,35 +63,31 @@
</span><span class="cx">     public Map currentConfig;
</span><span class="cx">     protected Principal userPrincipal;
</span><span class="cx"> 
</span><del>-    String enteredHOTPCode = null;
</del><ins>+    private String enteredHOTPCode = null;
</ins><span class="cx"> 
</span><span class="cx">     // Module specific properties
</span><del>-    private static String AUTHLEVEL = \
                &quot;sunAMAuthHOTPAuthLevel&quot;;
-    private static String GATEWAYSMSImplCLASS =
-            &quot;sunAMAuthHOTPSMSGatewayImplClassName&quot;;
-    private static String CODEVALIDITYDURATION =
-            &quot;sunAMAuthHOTPPasswordValidityDuration&quot;;
-    private static String CODELENGTH = &quot;sunAMAuthHOTPPasswordLength&quot;;
-    private static String CODEDELIVERY = &quot;sunAMAuthHOTPasswordDelivery&quot;;
-    String gatewaySMSImplClass = null;
-    String codeValidityDuration = null;
-    String codeLength = null;
-    String codeDelivery = null;
-    
-    private int START_STATE = 2;
-   
</del><ins>+    private static final String AUTHLEVEL = \
&quot;sunAMAuthHOTPAuthLevel&quot;; +    private static final String \
GATEWAYSMSImplCLASS = &quot;sunAMAuthHOTPSMSGatewayImplClassName&quot;; +    private \
static final String CODEVALIDITYDURATION = \
&quot;sunAMAuthHOTPPasswordValidityDuration&quot;; +    private static final String \
CODELENGTH = &quot;sunAMAuthHOTPPasswordLength&quot;; +    private static final \
String CODEDELIVERY = &quot;sunAMAuthHOTPasswordDelivery&quot;; +    private static \
final String ATTRIBUTEPHONE = &quot;openamTelephoneAttribute&quot;; +    private \
static final String ATTRIBUTECARRIER = &quot;openamSMSCarrierAttribute&quot;; +    \
private static final String ATTRIBUTEEMAIL = &quot;openamEmailAttribute&quot;; \
</ins><span class="cx">     private static final String AUTO_CLICKING = \
&quot;sunAMAuthHOTPAutoClicking&quot;; </span><span class="cx">     private static \
final String SKIP_HOTP = &quot;skipHOTP&quot;; </span><del>-    boolean skip = false;
-    boolean hotpAutoClicking = false;
-    
-    private static String ATTRIBUTEPHONE = &quot;openamTelephoneAttribute&quot;;
-    private static String ATTRIBUTECARRIER = &quot;openamSMSCarrierAttribute&quot;;
-    private static String ATTRIBUTEEMAIL = &quot;openamEmailAttribute&quot;;
</del><ins>+    private String gatewaySMSImplClass = null;
+    private String codeValidityDuration = null;
+    private String codeLength = null;
+    private String codeDelivery = null;
</ins><span class="cx">     private String telephoneAttribute = null;
</span><span class="cx">     private String carrierAttribute = null;
</span><span class="cx">     private String emailAttribute = null;
</span><ins>+    private boolean skip = false;
+    private boolean hotpAutoClicking = false;
</ins><span class="cx"> 
</span><ins>+    private int START_STATE = 2;
+
</ins><span class="cx">     private HOTPService hotpService;
</span><span class="cx"> 
</span><span class="cx">     public void init(Subject subject, Map sharedState, Map \
options) { </span><span class="lines">@@ -129,18 +122,35 @@
</span><span class="cx">         if (debug.messageEnabled()) {
</span><span class="cx">             debug.message(&quot;HOTP.init() : &quot; + \
&quot;HOTP resouce bundle locale=&quot; + locale); </span><span class="cx">         }
</span><del>-        try {
-            userName = (String) sharedState.get(getUserKey());
-        } catch (Exception e) {
-            debug.error(&quot;HOTP.init() : &quot; + &quot;Unable to set userName : \
&quot;, e); </del><ins>+
+        userName = (String) sharedState.get(getUserKey());
+        if (userName == null || userName.isEmpty()) {
+            try {
+                //Session upgrade case. Need to find the user ID from the old \
session. +                SSOTokenManager mgr = SSOTokenManager.getInstance();
+                InternalSession isess = \
getLoginState(&quot;HOTP&quot;).getOldSession(); +                if (isess == null) \
{ +                    throw new AuthLoginException(&quot;amAuth&quot;, \
&quot;noInternalSession&quot;, null); +                }
+                SSOToken token = mgr.createSSOToken(isess.getID().toString());
+                userUUID = token.getPrincipal().getName();
+                userName = token.getProperty(&quot;UserToken&quot;);
+                if (debug.messageEnabled()) {
+                    debug.message(&quot;HOTP.init() : UserName in SSOToken : &quot; \
+ userName); +                }
+            } catch (SSOException ssoe) {
+                debug.error(&quot;HOTP.init() : Unable to retrieve userName from \
existing session&quot;, ssoe); +            } catch (AuthLoginException ale) {
+                debug.error(&quot;HOTP.init() : Unable to retrieve userName from \
existing session&quot;, ale); +            }
</ins><span class="cx">         }
</span><span class="cx">         this.sharedState = sharedState;
</span><span class="cx"> 
</span><del>-        if(sharedState.containsKey(SKIP_HOTP)) {
</del><ins>+        if (sharedState.containsKey(SKIP_HOTP)) {
</ins><span class="cx">             skip = (Boolean) sharedState.get(SKIP_HOTP);
</span><span class="cx">         }
</span><span class="cx">       
</span><del>-        hotpAutoClicking = CollectionHelper.getMapAttr(options, \
AUTO_CLICKING).equals(&quot;true&quot;) ? true : false; </del><ins>+        \
hotpAutoClicking = CollectionHelper.getMapAttr(options, \
AUTO_CLICKING).equals(&quot;true&quot;); </ins><span class="cx"> 
</span><span class="cx">         HOTPParams hotpParams = new \
HOTPParams(gatewaySMSImplClass, Long.parseLong(codeValidityDuration), </span><span \
class="cx">                 telephoneAttribute, carrierAttribute, emailAttribute, \
codeDelivery, currentConfig, </span><span class="lines">@@ -149,39 +159,16 @@
</span><span class="cx">         hotpService = new \
HOTPService(getAMIdentityRepository(getRequestOrg()), userName, hotpParams); \
</span><span class="cx">     } </span><span class="cx"> 
</span><del>-    public int process(Callback[] callbacks, int state)
-            throws AuthLoginException {
-        if(skip) {
</del><ins>+    public int process(Callback[] callbacks, int state) throws \
AuthLoginException { +        if (skip) {
</ins><span class="cx">             debug.message(&quot;Skipping HOTP module&quot;);
</span><span class="cx">             return ISAuthConstants.LOGIN_SUCCEED;
</span><span class="cx">         }
</span><del>-        try {
-            if (userName == null || userName.length() == 0) {
-                // session upgrade case. Need to find the user ID from the old
-                // session
-                SSOTokenManager mgr = SSOTokenManager.getInstance();
-                InternalSession isess = \
                getLoginState(&quot;HOTP&quot;).getOldSession();
-                if (isess == null) {
-                    throw new AuthLoginException(&quot;amAuth&quot;, \
                &quot;noInternalSession&quot;,
-                            null);
-                }
-                SSOToken token = mgr.createSSOToken(isess.getID().toString());
-                userUUID = token.getPrincipal().getName();
-                userName = token.getProperty(&quot;UserToken&quot;);
-                if (debug.messageEnabled()) {
-                    debug.message(&quot;HOTP.process() : &quot; + &quot;UserName in \
                SSOToekn : &quot; + userName);
-                }
</del><ins>+        if (userName == null || userName.length() == 0) {
+            throw new AuthLoginException(&quot;amAuth&quot;, &quot;noUserName&quot;, \
null); +        }
</ins><span class="cx"> 
</span><del>-                if (userName == null || userName.length() == 0) {
-                    throw new AuthLoginException(&quot;amAuth&quot;, \
                &quot;noUserName&quot;, null);
-                }
-            } 
-        } catch (SSOException e) {
-                debug.error(&quot;HOTP.process() : &quot; + \
                &quot;SSOException&quot;, e);
-                throw new InvalidPasswordException(&quot;amAuth&quot;, \
                &quot;invalidPasswd&quot;, null);
-            }
-        
-        if( state == 1) {
</del><ins>+        if (state == 1) {
</ins><span class="cx">             if(hotpAutoClicking) {
</span><span class="cx">                 debug.message(&quot;Auto sending OTP \
code&quot;); </span><span class="cx">                 try {
</span></span></pre></div>
<a id="branchesAME3423openamopenamclientsdkpomxml"></a>
<div class="modfile"><h4>Modified: branches/AME-3423/openam/openam-clientsdk/pom.xml \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- branches/AME-3423/openam/openam-clientsdk/pom.xml	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-clientsdk/pom.xml	2014-08-28 15:42:34 UTC (rev \
10296) </span><span class="lines">@@ -250,6 +250,7 @@
</span><span class="cx">                                 \
&lt;include&gt;org/forgerock/openam/authentication/service/protocol/**&lt;/include&gt;
 </span><span class="cx">                                 \
&lt;include&gt;org/forgerock/openam/entitlement/indextree/TreeSaveIndex*&lt;/include&gt;
 </span><span class="cx">                                 \
&lt;include&gt;org/forgerock/openam/entitlement/indextree/TreeSearchIndex*&lt;/include&gt;
 </span><ins>+                                \
&lt;include&gt;org/forgerock/openam/entitlement/utils/EntitlementUtils*&lt;/include&gt;
 </ins><span class="cx">                                 \
&lt;include&gt;org/forgerock/openam/services/cdm/**&lt;/include&gt; </span><span \
class="cx">                                 \
&lt;include&gt;org/forgerock/openam/security/whitelist/**&lt;/include&gt; \
</span><span class="cx">                                 \
&lt;include&gt;org/forgerock/openam/upgrade/UpgradeException*&lt;/include&gt; \
</span></span></pre></div> <a \
id="branchesAME3423openamopenamcoresrcmainjavacomsunidentityentitlementopenssoPolicyPrivilegeManagerjava"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-core/src/main/java/com/sun/identity/entitlement/opensso/PolicyPrivilegeManager.java \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-core/src/main/java/com/sun/identity/entitlement/opensso/PolicyPrivilegeManager.java	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-core/src/main/java/com/sun/identity/entitlement/opensso/PolicyPrivilegeManager.java	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -23,6 +23,8 @@
</span><span class="cx">  * &quot;Portions Copyrighted [year] [name of copyright \
owner]&quot; </span><span class="cx">  *
</span><span class="cx">  * $Id: PolicyPrivilegeManager.java,v 1.9 2010/01/26 \
20:10:15 dillidorai Exp $ </span><ins>+ *
+ * Portions Copyrighted 2014 ForgeRock AS
</ins><span class="cx">  */
</span><span class="cx"> package com.sun.identity.entitlement.opensso;
</span><span class="cx"> 
</span><span class="lines">@@ -242,14 +244,15 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    private void updateMetaInfo(Privilege privilege)
</del><ins>+    private void updateMetaInfo(String existingName, Privilege privilege)
</ins><span class="cx">         throws EntitlementException {
</span><del>-        Privilege origPrivilege = getPrivilege(privilege.getName(),
-            PrivilegeManager.superAdminSubject);
</del><ins>+        Privilege origPrivilege = getPrivilege(existingName, \
PrivilegeManager.superAdminSubject); +
</ins><span class="cx">         if (origPrivilege != null) {
</span><span class="cx">             \
privilege.setCreatedBy(origPrivilege.getCreatedBy()); </span><span class="cx">        \
privilege.setCreationDate(origPrivilege.getCreationDate()); </span><span class="cx">  \
} </span><ins>+
</ins><span class="cx">         Date date = new Date();
</span><span class="cx">         privilege.setLastModifiedDate(date.getTime());
</span><span class="cx"> 
</span><span class="lines">@@ -259,18 +262,11 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    /**
-     * Modifies a privilege
-     * @param privilege the privilege to be modified
-     * @throws com.sun.identity.entitlement.EntitlementException
-     */
</del><span class="cx">     @Override
</span><del>-    public void modifyPrivilege(Privilege privilege)
-            throws EntitlementException {
</del><ins>+    public void modifyPrivilege(String existingName, Privilege privilege) \
throws EntitlementException { </ins><span class="cx">         \
validatePrivilege(privilege); </span><span class="cx">         \
privilege.validateResourceNames(dsameUserSubject, realm); </span><del>-        \
                updateMetaInfo(privilege);
-        String privilegeName = privilege.getName();
</del><ins>+        updateMetaInfo(existingName, privilege);
</ins><span class="cx"> 
</span><span class="cx">         try {
</span><span class="cx">             if (!migratedToEntitlementSvc) {
</span><span class="lines">@@ -278,23 +274,35 @@
</span><span class="cx">                 \
pm.addPolicy(PrivilegeUtils.privilegeToPolicy(realm, privilege)); </span><span \
class="cx">             } else { </span><span class="cx">                 \
PolicyDataStore pdb = PolicyDataStore.getInstance(); </span><del>-                \
                Privilege oldP = getPrivilege(privilegeName, getAdminSubject());
-                pdb.removePrivilege(getAdminSubject(), getRealm(),
-                    privilege);
</del><ins>+                Privilege oldP = getPrivilege(existingName, \
getAdminSubject()); +
</ins><span class="cx">                 String currentRealm = getRealm();
</span><del>-                pdb.addPolicy(getAdminSubject(), getRealm(), privilege);
</del><ins>+
+                pdb.removePrivilege(getAdminSubject(), currentRealm, oldP);
+
+                pdb.addPolicy(getAdminSubject(), currentRealm, privilege);
</ins><span class="cx">                 notifyPrivilegeChanged(currentRealm, oldP, \
privilege); </span><span class="cx">             }
</span><span class="cx">         } catch (PolicyException e) {
</span><del>-            Object[] params = {privilegeName};
</del><ins>+            Object[] params = {existingName};
</ins><span class="cx">             throw new EntitlementException(206, params, e);
</span><span class="cx">         } catch (SSOException e) {
</span><del>-            Object[] params = {privilegeName};
</del><ins>+            Object[] params = {existingName};
</ins><span class="cx">             throw new EntitlementException(206, params, e);
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     /**
</span><ins>+     * Modifies a privilege
+     * @param privilege the privilege to be modified
+     * @throws com.sun.identity.entitlement.EntitlementException
+     */
+    @Override
+    public void modifyPrivilege(Privilege privilege) throws EntitlementException {
+        modifyPrivilege(privilege.getName(), privilege);
+    }
+
+    /**
</ins><span class="cx">      * Returns the XML representation of this privilege.
</span><span class="cx">      *
</span><span class="cx">      * @param name Privilege name.
</span></span></pre></div>
<a id="branchesAME3423openamopenamcoresrcmainjavaorgforgerockopenamctsapifilterTokenFilterBuilderjava"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-core/src/main/java/org/forgerock/openam/cts/api/filter/TokenFilterBuilder.java \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-core/src/main/java/org/forgerock/openam/cts/api/filter/TokenFilterBuilder.java	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-core/src/main/java/org/forgerock/openam/cts/api/filter/TokenFilterBuilder.java	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -42,6 +42,13 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     /**
</span><ins>+     * @return Moves the builder into mode specified by type.
+     */
+    public FilterAttributeBuilder type(TokenFilter.Type type) {
+        return new FilterAttributeBuilder(tokenFilter, type);
+    }
+
+    /**
</ins><span class="cx">      * Moves the TokenFilter into AND mode, and filters the \
query by the given attribute. </span><span class="cx">      *
</span><span class="cx">      * @see \
TokenFilterBuilder.FilterAttributeBuilder#withAttribute(CoreTokenField, Object) \
</span></span></pre></div> <a \
id="branchesAME3423openamopenamcoresrcmainresourcesMETAINFservicescomgoogleinjectAbstractModule"></a>
 <div class="delfile"><h4>Deleted: \
branches/AME-3423/openam/openam-core/src/main/resources/META-INF/services/com.google.inject.AbstractModule \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-core/src/main/resources/META-INF/services/com.google.inject.AbstractModule	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-core/src/main/resources/META-INF/services/com.google.inject.AbstractModule	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -1,16 +0,0 @@
</span><del>-#
-# The contents of this file are subject to the terms of the Common Development and
-# Distribution License (the License). You may not use this file except in compliance \
                with the
-# License.
-#
-# You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for \
                the
-# specific language governing permission and limitations under the License.
-#
-# When distributing Covered Software, include this CDDL Header Notice in each file \
                and include
-# the License file at legal/CDDLv1.0.txt. If applicable, add the following below the \
                CDDL
-# Header, with the fields enclosed by brackets [] replaced by your own identifying
-# information: &quot;Portions copyright [year] [name of copyright owner]&quot;.
-#
-# Copyright 2014 ForgeRock AS.
-#
-org.forgerock.openam.core.guice.DataLayerGuiceModule
</del><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="branchesAME3423openamopenamdocumentationopenamdocsource"></a>
<div class="propset"><h4>Property changes: \
branches/AME-3423/openam/openam-documentation/openam-doc-source</h4> <pre \
class="diff"><span> </span></pre></div>
<a id="svnmergeinfo"></a>
<div class="modfile"><h4>Modified: svn:mergeinfo</h4></div>
<span class="cx">/branches/AME-2629/openam/openam-documentation/openam-doc-source:7585-7632
 </span><span class="cx">/branches/AME-3405-session-read-from-cts/openam/openam-documentation/openam-doc-source:8749-8823
 </span><span class="cx">/branches/AME-3612-pcunnington/openam/openam-documentation/openam-doc-source:9534-9723
 </span><span class="cx">/branches/AME-3719/openam/openam-documentation/openam-doc-source:9517-9879
 </span><span class="cx">/branches/AME-3726-script-sandboxing/openam/openam-documentation/openam-doc-source:9663-9819
 </span><span class="cx">/branches/CTS-Async/openam/openam-documentation/openam-doc-source:8847-9739
 </span><span class="cx">/branches/IIS7PostData/openam/openam-documentation/openam-doc-source:224-261
 </span><span class="cx">/branches/IIS7PostData/openam/openam-documentation/openam-site:224-261
 </span><span class="cx">/branches/OAuth2_Maven/openam/openam-documentation/openam-doc-source:2756-3584
 </span><span class="cx">/branches/OPENAM-2961-forgot-password-404/openam/openam-documentation/openam-doc-source:8322-8362
 </span><span class="cx">/branches/OPENAM-3097-sessions-not-deleted/openam/openam-documentation/openam-doc-source:6910-6946
 </span><span class="cx">/branches/OPENAM-3130-session-quota/openam/openam-documentation/openam-doc-source:6958-6972
 </span><span class="cx">/branches/OPENAM-3283-CTS-thread-exceptions/openam/openam-documentation/openam-doc-source:7270-7369
 </span><span class="cx">/branches/OPENAM-3425-class-cast-exception/openam/openam-documentation/openam-doc-source:8333-8359
 </span><span class="cx">/branches/OPENAM-3782-forgotten-password-changes/openam/openam-documentation/openam-doc-source:8747-8835
 </span><span class="cx">/branches/OPENAM-4028-connection-pool/openam/openam-documentation/openam-doc-source:9750-10171
 </span><span class="cx">/branches/OPENAM-OPENAM-3528-client-side-session-validation/openam/openam-documentation/openam-doc-source:7834-7844
 </span><span class="cx">/branches/ame4272/openam/openam-documentation/openam-doc-source:10073-10101
 </span><span class="cx">/branches/andy-ame-2227-v2/openam/openam-documentation/openam-doc-source:7508-7697
 </span><span class="cx">/branches/andyAme3102/openam/openam-documentation/openam-doc-source:8312-8413
 </span><span class="cx">/branches/andyOpenam1708/openam/openam-documentation/openam-doc-source:5576-5592
 </span><span class="cx">/branches/maven_merge/openam/openam-documentation/openam-doc-source:2556-3124
 </span><span class="cx">/branches/maven_merge/openam/openam-documentation/openam-site:2556-2631
 </span><span class="cx">/branches/oidc_authn/openam-documentation/openam-doc-source:8507,8540,8557-8559,8565-8566
 </span><span class="cx">/branches/openam-3049-cts-reaper-connection-usage/openam/openam-documentation/openam-doc-source:6658-6745
 </span><span class="cx">/branches/openam-3053-cts-tab-exception/openam/openam-documentation/openam-doc-source:6672-6721
 </span><span class="cx">/branches/openam-3072-cts-configuration/openam/openam-documentation/openam-doc-source:6691-6714
 </span><span class="cx">/branches/openam-3092-store-mode-error/openam/openam-documentation/openam-doc-source:6729-6733
 </span><span class="cx">/branches/openam-3110-create-or-update-bug/openam/openam-documentation/openam-doc-source:6767-6804
 </span><span class="cx">/branches/openam_10.1.0_SAML2_FIXES/openam-documentation/openam-doc-source:3725-3740
 </span><span class="cx">/branches/openam_10.1.0_jeff/openam-documentation/openam-doc-source:3128-3527
 </span><span class="cx">/branches/openam_10.1.0_jeff/openam-documentation/openam-site:3128-3287
 </span><span class="cx">/branches/openam_10.1.0_xacml3_JAS/openam/openam-documentation/openam-doc-source:4039-4140
 </span><span class="cx">/branches/openam_10.2.0_xacml3_JAS/openam/openam-documentation/openam-doc-source:4141-4379
 </span><span class="cx">/branches/pcunnington-AME-3115-refactor/openam/openam-documentation/openam-doc-source:8348-8473
 </span><span class="cx">/branches/pcunnington-AME-3158/openam/openam-documentation/openam-doc-source:8476-8577
 </span><span class="cx">/branches/pcunnington-oauth2/openam/openam-documentation/openam-doc-source:8710-8793
 </span><span class="cx">/branches/phcunnington-AME-3114/openam/openam-documentation/openam-doc-source:8314-8341
 </span><span class="cx">/branches/rest_sts_view_bean/openam-documentation/openam-doc-source:9690-9965
 </span><span class="cx">/branches/rwapshott-AME-1739/openam/openam-documentation/openam-doc-source:5331-5353
 </span><span class="cx">/branches/rwapshott-AME-215/openam/openam-documentation/openam-doc-source:4091-4155
 </span><span class="cx">/branches/rwapshott-AME-257/openam/openam-documentation/openam-doc-source:4047-4126
 </span><span class="cx">/branches/rwapshott-AME-804/openam/openam-documentation/openam-doc-source:4267-5404
 </span><span class="cx">/branches/rwapshott-ame-2027-cts-oids-should-follow-fr-oid-scheme/openam/openam-documentation/openam-doc-source:5609-5614
 </span><span class="cx">/branches/rwapshott-ame-2160-session-size/openam/openam-documentation/openam-doc-source:6086-6319
 </span><span class="cx">/branches/rwapshott-ame-2311-index-names/openam/openam-documentation/openam-doc-source:6058-6069
 </span><span class="cx">/branches/rwapshott-ame-258-cts-replication/openam/openam-documentation/openam-doc-source:5548-6055
 </span><span class="cx">/branches/rwapshott-openam-2198-session-resource-protection/openam/openam-documentation/openam-doc-source:5628-5824
 </span><span class="cx">/branches/rwapshott-openam-2526/openam/openam-documentation/openam-doc-source:5442-5484
 </span><span class="cx">/branches/rwapshott-openam-2716-cts-invalid-chars/openam/openam-documentation/openam-doc-source:6170-6194
 </span><span class="cx">/branches/rwapshott-openam-2729-saml2-error/openam/openam-documentation/openam-doc-source:6247-6257
 </span><span class="cx">/branches/sts_oidc_saml_redux/openam-documentation/openam-doc-source:8417-8422,8424,8440,8445-8446,8460,8490,8498
 </span><span class="cx">/branches/sts_restart_persistence/openam-documentation/openam-doc-source:9003-9005,9009-9414
 </span><span class="cx">/branches/sts_service_listeners/openam-documentation/openam-doc-source:9968-10031,10047-10048,10053
 </span><span class="cx">/branches/sts_token_gen_service/openam-documentation/openam-d \
oc-source:8706,8717-8720,8723-8725,8727-8728,8731,8737,8740-8742,8759-8760,8774-8776,8796-8797,8800-8801,8818-8819,8821
 </span><span class="cx">/branches/sts_token_gen_service2/openam-documentation/openam-doc-source:8844-8887,8894-9000
 </span><span class="cx">/trunk/openam/openam-documentation/openam-doc-source:3127-333 \
2,10107-10111,10114-10116,10119,10129-10131,10134-10136,10138-10143,10146,10159-10161,10172,10174-10176,10179,10182-10185,10191,10193,10196-10201,10204,10212
 </span><span class="cx">/trunk/openam/openam-documentation/openam-site:2556-2930
</span><span class="cx">/trunk/opensso/openam-site:2912-3070
</span><span class="cx">   + \
/branches/AME-2526-SFO-between-sites/openam/openam-documentation/openam-doc-source:7510-8258
 </span><span class="cx">/branches/AME-2629/openam/openam-documentation/openam-doc-source:7585-7632
 </span><span class="cx">/branches/AME-3405-session-read-from-cts/openam/openam-documentation/openam-doc-source:8749-8823
 </span><span class="cx">/branches/AME-3612-pcunnington/openam/openam-documentation/openam-doc-source:9534-9723
 </span><span class="cx">/branches/AME-3719/openam/openam-documentation/openam-doc-source:9517-9879
 </span><span class="cx">/branches/AME-3726-script-sandboxing/openam/openam-documentation/openam-doc-source:9663-9819
 </span><span class="cx">/branches/CTS-Async/openam/openam-documentation/openam-doc-source:8847-9739
 </span><span class="cx">/branches/IIS7PostData/openam/openam-documentation/openam-doc-source:224-261
 </span><span class="cx">/branches/IIS7PostData/openam/openam-documentation/openam-site:224-261
 </span><span class="cx">/branches/OAuth2_Maven/openam/openam-documentation/openam-doc-source:2756-3584
 </span><span class="cx">/branches/OPENAM-2961-forgot-password-404/openam/openam-documentation/openam-doc-source:8322-8362
 </span><span class="cx">/branches/OPENAM-3097-sessions-not-deleted/openam/openam-documentation/openam-doc-source:6910-6946
 </span><span class="cx">/branches/OPENAM-3130-session-quota/openam/openam-documentation/openam-doc-source:6958-6972
 </span><span class="cx">/branches/OPENAM-3283-CTS-thread-exceptions/openam/openam-documentation/openam-doc-source:7270-7369
 </span><span class="cx">/branches/OPENAM-3425-class-cast-exception/openam/openam-documentation/openam-doc-source:8333-8359
 </span><span class="cx">/branches/OPENAM-3782-forgotten-password-changes/openam/openam-documentation/openam-doc-source:8747-8835
 </span><span class="cx">/branches/OPENAM-4028-connection-pool/openam/openam-documentation/openam-doc-source:9750-10171
 </span><span class="cx">/branches/OPENAM-4384-ssoadm-classpath/openam/openam-documentation/openam-doc-source:10263-10264
 </span><span class="cx">/branches/OPENAM-OPENAM-3528-client-side-session-validation/openam/openam-documentation/openam-doc-source:7834-7844
 </span><span class="cx">/branches/ame4272/openam/openam-documentation/openam-doc-source:10073-10101
 </span><span class="cx">/branches/andy-ame-2227-v2/openam/openam-documentation/openam-doc-source:7508-7697
 </span><span class="cx">/branches/andyAme3102/openam/openam-documentation/openam-doc-source:8312-8413
 </span><span class="cx">/branches/andyOpenam1708/openam/openam-documentation/openam-doc-source:5576-5592
 </span><span class="cx">/branches/maven_merge/openam/openam-documentation/openam-doc-source:2556-3124
 </span><span class="cx">/branches/maven_merge/openam/openam-documentation/openam-site:2556-2631
 </span><span class="cx">/branches/oidc_authn/openam-documentation/openam-doc-source:8507,8540,8557-8559,8565-8566
 </span><span class="cx">/branches/openam-3049-cts-reaper-connection-usage/openam/openam-documentation/openam-doc-source:6658-6745
 </span><span class="cx">/branches/openam-3053-cts-tab-exception/openam/openam-documentation/openam-doc-source:6672-6721
 </span><span class="cx">/branches/openam-3072-cts-configuration/openam/openam-documentation/openam-doc-source:6691-6714
 </span><span class="cx">/branches/openam-3092-store-mode-error/openam/openam-documentation/openam-doc-source:6729-6733
 </span><span class="cx">/branches/openam-3110-create-or-update-bug/openam/openam-documentation/openam-doc-source:6767-6804
 </span><span class="cx">/branches/openam_10.1.0_SAML2_FIXES/openam-documentation/openam-doc-source:3725-3740
 </span><span class="cx">/branches/openam_10.1.0_jeff/openam-documentation/openam-doc-source:3128-3527
 </span><span class="cx">/branches/openam_10.1.0_jeff/openam-documentation/openam-site:3128-3287
 </span><span class="cx">/branches/openam_10.1.0_xacml3_JAS/openam/openam-documentation/openam-doc-source:4039-4140
 </span><span class="cx">/branches/openam_10.2.0_xacml3_JAS/openam/openam-documentation/openam-doc-source:4141-4379
 </span><span class="cx">/branches/pcunnington-AME-3115-refactor/openam/openam-documentation/openam-doc-source:8348-8473
 </span><span class="cx">/branches/pcunnington-AME-3158/openam/openam-documentation/openam-doc-source:8476-8577
 </span><span class="cx">/branches/pcunnington-oauth2/openam/openam-documentation/openam-doc-source:8710-8793
 </span><span class="cx">/branches/phcunnington-AME-3114/openam/openam-documentation/openam-doc-source:8314-8341
 </span><span class="cx">/branches/rest_sts_view_bean/openam-documentation/openam-doc-source:9690-9965
 </span><span class="cx">/branches/rwapshott-AME-1739/openam/openam-documentation/openam-doc-source:5331-5353
 </span><span class="cx">/branches/rwapshott-AME-215/openam/openam-documentation/openam-doc-source:4091-4155
 </span><span class="cx">/branches/rwapshott-AME-257/openam/openam-documentation/openam-doc-source:4047-4126
 </span><span class="cx">/branches/rwapshott-AME-804/openam/openam-documentation/openam-doc-source:4267-5404
 </span><span class="cx">/branches/rwapshott-ame-2027-cts-oids-should-follow-fr-oid-scheme/openam/openam-documentation/openam-doc-source:5609-5614
 </span><span class="cx">/branches/rwapshott-ame-2160-session-size/openam/openam-documentation/openam-doc-source:6086-6319
 </span><span class="cx">/branches/rwapshott-ame-2311-index-names/openam/openam-documentation/openam-doc-source:6058-6069
 </span><span class="cx">/branches/rwapshott-ame-258-cts-replication/openam/openam-documentation/openam-doc-source:5548-6055
 </span><span class="cx">/branches/rwapshott-openam-2198-session-resource-protection/openam/openam-documentation/openam-doc-source:5628-5824
 </span><span class="cx">/branches/rwapshott-openam-2526/openam/openam-documentation/openam-doc-source:5442-5484
 </span><span class="cx">/branches/rwapshott-openam-2716-cts-invalid-chars/openam/openam-documentation/openam-doc-source:6170-6194
 </span><span class="cx">/branches/rwapshott-openam-2729-saml2-error/openam/openam-documentation/openam-doc-source:6247-6257
 </span><span class="cx">/branches/sts_oidc_saml_redux/openam-documentation/openam-doc-source:8417-8422,8424,8440,8445-8446,8460,8490,8498
 </span><span class="cx">/branches/sts_restart_persistence/openam-documentation/openam-doc-source:9003-9005,9009-9414
 </span><span class="cx">/branches/sts_service_listeners/openam-documentation/openam-doc-source:9968-10031,10047-10048,10053
 </span><span class="cx">/branches/sts_token_gen_service/openam-documentation/openam-d \
oc-source:8706,8717-8720,8723-8725,8727-8728,8731,8737,8740-8742,8759-8760,8774-8776,8796-8797,8800-8801,8818-8819,8821
 </span><span class="cx">/branches/sts_token_gen_service2/openam-documentation/openam-doc-source:8844-8887,8894-9000
 </span><span class="cx">/trunk/openam/openam-documentation/openam-doc-source:3127-333 \
2,10107-10111,10114-10116,10119,10129-10131,10134-10136,10138-10143,10146,10159-10161, \
10172,10174-10176,10179,10182-10185,10191,10193,10196-10201,10204,10212,10214,10217-10 \
218,10222,10224,10229-10230,10243-10244,10249,10251,10253-10255,10258-10259,10265,10274,10276,10282,10288
 </span><span class="cx">/trunk/openam/openam-documentation/openam-site:2556-2930
</span><span class="cx">/trunk/opensso/openam-site:2912-3070
</span><a id="branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxadminguidechaprealmsxml"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/admin-guide/chap-realms.xml \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/admin-guide/chap-realms.xml	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/admin-guide/chap-realms.xml	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -24,12 +24,12 @@
</span><span class="cx">   !    
</span><span class="cx"> --&gt;
</span><span class="cx"> &lt;chapter xml:id='chap-realms'
</span><del>- xmlns='http://docbook.org/ns/docbook'
- version='5.0' xml:lang='en'
- xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
- xsi:schemaLocation='http://docbook.org/ns/docbook
-                     http://docbook.org/xml/5.0/xsd/docbook.xsd'
- xmlns:xlink='http://www.w3.org/1999/xlink'&gt;
</del><ins>+         xmlns='http://docbook.org/ns/docbook' version='5.0' \
xml:lang='en' +         xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+         xsi:schemaLocation='http://docbook.org/ns/docbook
+                             http://docbook.org/xml/5.0/xsd/docbook.xsd'
+         xmlns:xlink='http://www.w3.org/1999/xlink'
+         xmlns:xinclude='http://www.w3.org/2001/XInclude'&gt;
</ins><span class="cx">  &lt;title&gt;Configuring Realms&lt;/title&gt;
</span><span class="cx">  
</span><span class="cx">  \
&lt;indexterm&gt;&lt;primary&gt;Realms&lt;/primary&gt;&lt;/indexterm&gt; </span><span \
class="lines">@@ -326,17 +326,75 @@ </span><span class="cx">   &lt;step&gt;
</span><span class="cx">    &lt;para&gt;In the second screen, provide information on \
how to connect </span><span class="cx">    to your data store, and then click Finish \
to save your work.&lt;/para&gt; </span><del>-   
-   &lt;para&gt;See the &lt;link \
                xlink:href=&quot;admin-guide#chap-auth-services&quot;
-   xlink:role=&quot;http://docbook.org/xlink/role/olink&quot;&gt;chapter on
-   authentication&lt;/link&gt; for hints on connecting to
-   &lt;link xlink:href=&quot;admin-guide#ad-module-conf-hints&quot;
-   xlink:role=&quot;http://docbook.org/xlink/role/olink&quot;&gt;Active \
                Directory&lt;/link&gt;,
-   &lt;link xlink:href=&quot;admin-guide#ldap-module-conf-hints&quot;
-   xlink:role=&quot;http://docbook.org/xlink/role/olink&quot;&gt;LDAP \
                directory&lt;/link&gt;, and
-   &lt;link xlink:href=&quot;admin-guide#jdbc-module-conf-hints&quot;
-   xlink:role=&quot;http://docbook.org/xlink/role/olink&quot;&gt;JDBC&lt;/link&gt; \
                data
-   sources.&lt;/para&gt;
</del><ins>+
+   &lt;itemizedlist&gt;
+    &lt;para&gt;
+     See the following sections for hints depending on the type of data store.
+    &lt;/para&gt;
+
+    &lt;listitem&gt;
+     &lt;para&gt;
+      &lt;link
+       xlink:href=&quot;admin-guide#sec-data-stores-active-directory&quot;
+       xlink:role=&quot;http://docbook.org/xlink/role/olink&quot;
+       /&gt;
+     &lt;/para&gt;
+    &lt;/listitem&gt;
+
+    &lt;listitem&gt;
+     &lt;para&gt;
+      &lt;link
+       xlink:href=&quot;admin-guide#sec-data-stores-adam&quot;
+       xlink:role=&quot;http://docbook.org/xlink/role/olink&quot;
+       /&gt;
+     &lt;/para&gt;
+    &lt;/listitem&gt;
+
+    &lt;listitem&gt;
+     &lt;para&gt;
+      &lt;link
+       xlink:href=&quot;admin-guide#sec-data-stores-db&quot;
+       xlink:role=&quot;http://docbook.org/xlink/role/olink&quot;
+       /&gt;
+     &lt;/para&gt;
+    &lt;/listitem&gt;
+
+    &lt;listitem&gt;
+     &lt;para&gt;
+      &lt;link
+       xlink:href=&quot;admin-guide#sec-data-stores-generic-ldapv3&quot;
+       xlink:role=&quot;http://docbook.org/xlink/role/olink&quot;
+       /&gt;
+     &lt;/para&gt;
+    &lt;/listitem&gt;
+
+    &lt;listitem&gt;
+     &lt;para&gt;
+      &lt;link
+       xlink:href=&quot;admin-guide#sec-data-stores-opendj&quot;
+       xlink:role=&quot;http://docbook.org/xlink/role/olink&quot;
+       /&gt;
+     &lt;/para&gt;
+    &lt;/listitem&gt;
+
+    &lt;listitem&gt;
+     &lt;para&gt;
+      &lt;link
+       xlink:href=&quot;admin-guide#sec-data-stores-dsee&quot;
+       xlink:role=&quot;http://docbook.org/xlink/role/olink&quot;
+       /&gt;
+     &lt;/para&gt;
+    &lt;/listitem&gt;
+
+    &lt;listitem&gt;
+     &lt;para&gt;
+      &lt;link
+       xlink:href=&quot;admin-guide#sec-data-stores-tivoli&quot;
+       xlink:role=&quot;http://docbook.org/xlink/role/olink&quot;
+       /&gt;
+     &lt;/para&gt;
+    &lt;/listitem&gt;
+   &lt;/itemizedlist&gt;
</ins><span class="cx">   &lt;/step&gt;
</span><span class="cx">   &lt;step&gt;
</span><span class="cx">    &lt;para&gt;Click the Subjects tab, and make sure the \
connection to your </span><span class="lines">@@ -393,4 +451,12 @@
</span><span class="cx">    &lt;para&gt;Save your work.&lt;/para&gt;
</span><span class="cx">   &lt;/step&gt;
</span><span class="cx">  &lt;/procedure&gt;
</span><ins>+
+ &lt;xinclude:include \
href=&quot;../shared/sec-data-stores-active-directory.xml&quot; /&gt; + \
&lt;xinclude:include href=&quot;../shared/sec-data-stores-adam.xml&quot; /&gt; + \
&lt;xinclude:include href=&quot;../shared/sec-data-stores-db.xml&quot; /&gt; + \
&lt;xinclude:include href=&quot;../shared/sec-data-stores-generic-ldapv3.xml&quot; \
/&gt; + &lt;xinclude:include href=&quot;../shared/sec-data-stores-opendj.xml&quot; \
/&gt; + &lt;xinclude:include href=&quot;../shared/sec-data-stores-dsee.xml&quot; \
/&gt; + &lt;xinclude:include href=&quot;../shared/sec-data-stores-tivoli.xml&quot; \
/&gt; </ins><span class="cx"> &lt;/chapter&gt;
</span></span></pre></div>
<a id="branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxadminguidechaptuningxml"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/admin-guide/chap-tuning.xml \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/admin-guide/chap-tuning.xml	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/admin-guide/chap-tuning.xml	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -20,15 +20,15 @@
</span><span class="cx">   !
</span><span class="cx">   ! CCPL HEADER END
</span><span class="cx">   !
</span><del>-  !      Copyright 2011-2013 ForgeRock, Inc
</del><ins>+  !      Copyright 2011-2014 ForgeRock, Inc
</ins><span class="cx">   !    
</span><span class="cx"> --&gt;
</span><span class="cx"> &lt;chapter xml:id='chap-tuning'
</span><del>- xmlns='http://docbook.org/ns/docbook'
- version='5.0' xml:lang='en'
- xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
- xsi:schemaLocation='http://docbook.org/ns/docbook \
                http://docbook.org/xml/5.0/xsd/docbook.xsd'
- xmlns:xlink='http://www.w3.org/1999/xlink'&gt;
</del><ins>+         xmlns='http://docbook.org/ns/docbook'
+         version='5.0' xml:lang='en'
+         xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+         xsi:schemaLocation='http://docbook.org/ns/docbook
+                             http://docbook.org/xml/5.0/xsd/docbook.xsd'&gt;
</ins><span class="cx">  &lt;title&gt;Tuning OpenAM&lt;/title&gt;
</span><span class="cx">  \
&lt;indexterm&gt;&lt;primary&gt;Performance&lt;/primary&gt;&lt;/indexterm&gt; \
</span><span class="cx">  &lt;para&gt;This chapter covers key OpenAM tunings to \
ensure smoothly performing </span><span class="lines">@@ -84,8 +84,9 @@
</span><span class="cx">   &lt;section xml:id=&quot;tuning-ldap-settings&quot;&gt;
</span><span class="cx">    &lt;title&gt;LDAP Settings&lt;/title&gt;
</span><span class="cx">    
</span><del>-   &lt;para&gt;Tune both your LDAP data stores and also your LDAP \
                authentication
-   modules.&lt;/para&gt;
</del><ins>+   &lt;para&gt;
+    Tune both your LDAP data stores and also your LDAP authentication modules.
+   &lt;/para&gt;
</ins><span class="cx">    
</span><span class="cx">    &lt;para&gt;To change LDAP data store settings, browse to \
Access Control &amp;gt; </span><span class="cx">    &lt;replaceable&gt;Realm \
Name&lt;/replaceable&gt; &amp;gt; Data Stores &amp;gt; </span></span></pre></div>
<a id="branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxadminguidei \
magestrusteddevicemgmtpngfromrev10244trunkopenamopenamdocumentationopenamdocsourcesrcmaindocbkxadminguideimagestrusteddevicemgmtpng"></a>
 <div class="binary"><h4>Copied: \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/admin-guide/images/trusted-device-mgmt.png \
(from rev 10244, trunk/openam/openam-documentation/openam-doc-source/src/main/docbkx/admin-guide/images/trusted-device-mgmt.png)</h4>
 <pre class="diff"><span>
<span class="cx">(Binary files differ)
</span></span></pre></div>
<a id="branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxdevguidechaprestxml"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/dev-guide/chap-rest.xml \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/dev-guide/chap-rest.xml	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/dev-guide/chap-rest.xml	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -574,7 +574,7 @@
</span><span class="cx"> 
</span><span class="cx">    &lt;para&gt;
</span><span class="cx">     You can use the query string parameter,
</span><del>-    &lt;literal&gt;sessionUpgrade=&lt;replaceable&gt;tokenId&lt;/replaceable&gt;&lt;/literal&gt;,
 </del><ins>+    &lt;literal&gt;sessionUpgradeSSOTokenId=&lt;replaceable&gt;tokenId&lt;/replaceable&gt;&lt;/literal&gt;,
 </ins><span class="cx">     to request session upgrade.
</span><span class="cx">     For an explanation of session upgrade,
</span><span class="cx">     see the &lt;citetitle&gt;Administration \
Guide&lt;/citetitle&gt; section on, </span><span class="lines">@@ -1960,16 +1960,22 \
@@ </span><span class="cx"> {
</span><span class="cx">    &quot;type&quot;: &quot;NumericAttribute&quot;,
</span><span class="cx">    &quot;attributeName&quot;: &quot;gidNumber&quot;,
</span><del>-   &quot;caseSensitive&quot;: &quot;&amp;lt;=&quot;,
</del><ins>+   &quot;operator&quot;: &quot;LESS_THAN&quot;,
</ins><span class="cx">    &quot;value&quot;: &quot;1000&quot;
</span><span class="cx"> }
</span><span class="cx">         &lt;/programlisting&gt;
</span><span class="cx"> 
</span><del>-        &lt;para&gt;&lt;!-- This is my reading of \
                NumericAttributeCondition.java. Looks like a bug. --&gt;
-          &lt;literal&gt;&quot;caseSensitive&quot;&lt;/literal&gt; is optional, but \
                if used
-          then it should be set to a comparison operator, one of:
-          &lt;literal&gt;&amp;lt; &amp;lt;= = &gt; &gt;=&lt;/literal&gt;.
-          If not specified, then OpenAM checks for equality.
</del><ins>+        &lt;para&gt;
+          &lt;literal&gt;&quot;operator&quot;&lt;/literal&gt; is optional, but if \
used +          it must be one of the following comparison operators:
+          &lt;literal&gt;LESS_THAN&lt;/literal&gt;,
+          &lt;literal&gt;LESS_THAN_OR_EQUAL&lt;/literal&gt;,
+          &lt;literal&gt;EQUAL&lt;/literal&gt;,
+          &lt;literal&gt;GREATER_THAN_OR_EQUAL&lt;/literal&gt;, or
+          &lt;literal&gt;GREATER_THAN&lt;/literal&gt;.
+          Note that using symbols such as &amp;lt;, &amp;lt;=,=,&amp;gt;=, or \
&amp;gt; is not +         supported.
+          If not specified, then OpenAM checks for equality \
(&lt;literal&gt;EQUAL&lt;/literal&gt;). </ins><span class="cx">          \
&lt;/para&gt; </span><span class="cx">         &lt;/listitem&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -5570,6 +5576,25 @@
</span><span class="cx"> &lt;computeroutput&gt;{}&lt;/computeroutput&gt;
</span><span class="cx">     &lt;/screen&gt;
</span><span class="cx"> 
</span><ins>+    &lt;para&gt;Note that you can also use the \
&lt;literal&gt;email&lt;/literal&gt; attribute +     to locate the user. If both \
&lt;literal&gt;username&lt;/literal&gt; and &lt;literal&gt;mail&lt;/literal&gt; +     \
attributes are used, then a request error is issued. If more +     than one account \
has been registered with the same email address, +     the password reset process \
does not start.&lt;/para&gt; +
+    &lt;screen&gt;
+$ &lt;userinput&gt;curl \
+ --request POST \
+ --header &quot;Content-Type: application/json&quot; \
+ --data '{
+   &quot;email&quot;: &quot;demo@example.com&quot;,
+   &quot;subject&quot;: &quot;Reset your forgotten password with OpenAM&quot;,
+   &quot;message&quot;: &quot;Follow this link to reset your password&quot;
+ }' \
+ https://openam.example.com:8443/openam/json/users/?_action=forgotPassword&lt;/userinput&gt;
 +&lt;computeroutput&gt;{}&lt;/computeroutput&gt;
+    &lt;/screen&gt;
+
</ins><span class="cx">     &lt;para&gt;On success, the response is an empty JSON \
object &lt;literal&gt;{}&lt;/literal&gt; </span><span class="cx">     as shown in the \
example.&lt;/para&gt; </span><span class="cx">    &lt;/listitem&gt;
</span><span class="lines">@@ -5580,10 +5605,10 @@
</span><span class="cx">     but all on one line.&lt;/para&gt;
</span><span class="cx"> 
</span><span class="cx">     &lt;literallayout class=&quot;monospaced&quot;
</span><del>-    &gt;https://openam.example.com:8443/openam/json/confirmation/forgotPassword
 </del><ins>+    &gt;https://openam.example.com:8443/openam/json/XUI/confirm.html
</ins><span class="cx">      ?confirmationId=jrUZ3E7CK4UQJM5jnDHGNKH1UaQ=
</span><span class="cx">      &amp;amp;tokenId=M8cVqWqbKtCtpd/UqEAr0x25fxA=
</span><del>-     &amp;amp;username=demo&lt;/literallayout&gt;
</del><ins>+     &amp;amp;username=demo&amp;amp;realm=/&lt;/literallayout&gt;
</ins><span class="cx">    &lt;/listitem&gt;
</span><span class="cx"> 
</span><span class="cx">    &lt;listitem&gt;
</span><span class="lines">@@ -5595,7 +5620,9 @@
</span><span class="cx">     query string parameters as shown in the following \
example.&lt;/para&gt; </span><span class="cx"> 
</span><span class="cx">     &lt;para&gt;Your POST includes the new password as the \
value of the &quot;userpassword&quot; </span><del>-    field in the JSON \
payload.&lt;/para&gt; </del><ins>+     field in the JSON payload. You can also use \
the &lt;literal&gt;email&lt;/literal&gt; +     attribute instead of \
&lt;literal&gt;username&lt;/literal&gt;. +    &lt;/para&gt;
</ins><span class="cx"> 
</span><span class="cx">     &lt;screen&gt;
</span><span class="cx"> $ &lt;userinput&gt;curl \
</span><span class="lines">@@ -5608,53 +5635,12 @@
</span><span class="cx">  \
&quot;confirmationId&quot;:&quot;jrUZ3E7CK4UQJM5jnDHGNKH1UaQ=&quot; </span><span \
class="cx">  }' \ </span><span class="cx">  \
https://openam.example.com:8443/openam/json/users?_action=forgotPasswordReset&lt;/userinput&gt;
 </span><del>-&lt;computeroutput&gt;{
-    &quot;name&quot;: &quot;demo&quot;,
-    &quot;realm&quot;: &quot;/&quot;,
-    &quot;uid&quot;: [
-        &quot;demo&quot;
-    ],
-    &quot;mail&quot;: [
-        &quot;demo@example.com&quot;
-    ],
-    &quot;sn&quot;: [
-        &quot;demo&quot;
-    ],
-    &quot;userPassword&quot;: [
-        &quot;{SSHA}zgeBu4yOAy1i9QAgnldMCzW8LWX36ViVj9leig==&quot;
-    ],
-    &quot;cn&quot;: [
-        &quot;demo&quot;
-    ],
-    &quot;inetUserStatus&quot;: [
-        &quot;Active&quot;
-    ],
-    &quot;objectClass&quot;: [
-        &quot;devicePrintProfilesContainer&quot;,
-        &quot;person&quot;,
-        &quot;sunIdentityServerLibertyPPService&quot;,
-        &quot;inetorgperson&quot;,
-        &quot;sunFederationManagerDataStore&quot;,
-        &quot;iPlanetPreferences&quot;,
-        &quot;iplanet-am-auth-configuration-service&quot;,
-        &quot;organizationalperson&quot;,
-        &quot;sunFMSAML2NameIdentifier&quot;,
-        &quot;inetuser&quot;,
-        &quot;forgerock-am-dashboard-service&quot;,
-        &quot;iplanet-am-managed-person&quot;,
-        &quot;iplanet-am-user-service&quot;,
-        &quot;sunAMAuthAccountLockout&quot;,
-        &quot;top&quot;
-    ],
-    &quot;universalid&quot;: [
-        &quot;id=demo,ou=user,dc=openam,dc=forgerock,dc=org&quot;
-    ]
-}&lt;/computeroutput&gt;
</del><ins>+&lt;computeroutput&gt;{}&lt;/computeroutput&gt;
</ins><span class="cx">     &lt;/screen&gt;
</span><span class="cx"> 
</span><del>-    &lt;para&gt;On success, the response is the JSON representation of \
                the user
-    profile with the new password hashed according to the password storage
-    scheme for the identity repository.&lt;/para&gt;
</del><ins>+    &lt;para&gt;On success or failure, the REST call returns an empty \
message, so that +     information is not leaked.
+    &lt;/para&gt;
</ins><span class="cx">    &lt;/listitem&gt;
</span><span class="cx">   &lt;/orderedlist&gt;
</span><span class="cx"> 
</span><span class="lines">@@ -7479,7 +7465,8 @@
</span><span class="cx"> 
</span><span class="cx">    &lt;para&gt;OpenAM REST APIs respond to successful \
requests with HTTP status codes </span><span class="cx">    in the 2xx range. OpenAM \
REST APIs respond to error conditions with HTTP </span><del>-   status codes in the \
4xx and 5xx range. Status codes used are described in the </del><ins>+   status codes \
in the 4xx and 5xx range. Status codes used are described in +    the
</ins><span class="cx">    following list.&lt;/para&gt;
</span><span class="cx"> 
</span><span class="cx">    &lt;variablelist&gt;
</span></span></pre></div>
<a id="branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxinstallguidechapctsxml"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/install-guide/chap-cts.xml \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/install-guide/chap-cts.xml	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/install-guide/chap-cts.xml	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -159,10 +159,17 @@
</span><span class="cx">        &lt;listitem&gt;
</span><span class="cx">         \
&lt;para&gt;&lt;literal&gt;Password&lt;/literal&gt;&lt;/para&gt; </span><span \
class="cx">        &lt;/listitem&gt; </span><ins>+
</ins><span class="cx">        &lt;listitem&gt;
</span><del>-        &lt;para&gt;&lt;literal&gt;Max \
                Connections&lt;/literal&gt;&lt;/para&gt;
-        &lt;para&gt;&lt;literal&gt;20&lt;/literal&gt; (arbitrary \
number)&lt;/para&gt; </del><ins>+        &lt;para&gt;
+         &lt;literal&gt;Max Connections&lt;/literal&gt;
+        &lt;/para&gt;
+
+        &lt;para&gt;
+         &lt;literal&gt;20&lt;/literal&gt; (arbitrary number)
+        &lt;/para&gt;
</ins><span class="cx">        &lt;/listitem&gt;
</span><ins>+
</ins><span class="cx">        &lt;listitem&gt;
</span><span class="cx">         \
&lt;para&gt;&lt;literal&gt;Heartbeat&lt;/literal&gt;&lt;/para&gt; </span><span \
class="cx">         &lt;para&gt;&lt;literal&gt;10&lt;/literal&gt; (default, in \
seconds)&lt;/para&gt; </span></span></pre></div>
<a id="branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxreferencechapconfigrefxml"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/reference/chap-config-ref.xml \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/reference/chap-config-ref.xml	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/reference/chap-config-ref.xml	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -24,12 +24,12 @@
</span><span class="cx">   !    
</span><span class="cx"> --&gt;
</span><span class="cx"> &lt;chapter xml:id='chap-config-ref'
</span><del>- xmlns='http://docbook.org/ns/docbook'
- version='5.0' xml:lang='en'
- xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
- xsi:schemaLocation='http://docbook.org/ns/docbook
-                     http://docbook.org/xml/5.0/xsd/docbook.xsd'
- xmlns:xlink='http://www.w3.org/1999/xlink'&gt;
</del><ins>+         xmlns='http://docbook.org/ns/docbook'
+         version='5.0' xml:lang='en'
+         xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+         xsi:schemaLocation='http://docbook.org/ns/docbook
+                             http://docbook.org/xml/5.0/xsd/docbook.xsd'
+         xmlns:xlink='http://www.w3.org/1999/xlink'&gt;
</ins><span class="cx">  &lt;title&gt;Configuration Reference&lt;/title&gt;
</span><span class="cx"> 
</span><span class="cx">  \
&lt;indexterm&gt;&lt;primary&gt;Configuration&lt;/primary&gt;&lt;/indexterm&gt; \
</span><span class="lines">@@ -162,6 +162,73 @@ </span><span class="cx">             \
Authentication&lt;/citetitle&gt;&lt;/link&gt;.&lt;/para&gt; </span><span class="cx">  \
&lt;para&gt;This section presents the properties that you can set in the DAS \
properties file to configure your </span><span class="cx">           OpenAM \
instances.&lt;/para&gt; </span><ins>+
+    &lt;itemizedlist&gt;
+     &lt;para&gt;
+      This section describes the following sets of properties.
+     &lt;/para&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;xref linkend=&quot;das-properties&quot; /&gt;
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;xref linkend=&quot;security-credentials-to-read-config-data&quot; /&gt;
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;xref linkend=&quot;cache-notifications&quot; /&gt;
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;xref linkend=&quot;server-protocol-host-port-descriptor&quot; /&gt;
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;xref linkend=&quot;cert-db&quot; /&gt;
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;xref linkend=&quot;policy-decision-log&quot; /&gt;
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;xref linkend=&quot;das-monitoring&quot; /&gt;
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;xref linkend=&quot;general&quot; /&gt;
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;xref linkend=&quot;http-header-properties&quot; /&gt;
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       &lt;xref linkend=&quot;load-balancer&quot; /&gt;
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+    &lt;/itemizedlist&gt;
+
</ins><span class="cx">     &lt;variablelist xml:id=&quot;das-properties&quot;&gt;
</span><span class="cx">         &lt;title&gt;Administration&lt;/title&gt;
</span><span class="cx">         &lt;varlistentry&gt;
</span><span class="lines">@@ -711,6 +778,24 @@
</span><span class="cx">   &lt;para&gt;Under Configuration &amp;gt; Console you can \
customize how the OpenAM </span><span class="cx">   console appears, and what \
character sets are used.&lt;/para&gt; </span><span class="cx"> 
</span><ins>+  &lt;itemizedlist&gt;
+   &lt;para&gt;
+    This section describes the following sets of properties.
+   &lt;/para&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;console-administration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;console-g11n&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/itemizedlist&gt;
+
</ins><span class="cx">   &lt;variablelist \
xml:id=&quot;console-administration&quot;&gt; </span><span class="cx">    \
&lt;title&gt;Administration&lt;/title&gt; </span><span class="cx"> 
</span><span class="lines">@@ -840,6 +925,42 @@
</span><span class="cx">   server logging, monitoring, service URL naming, locale, \
cookie domain, and </span><span class="cx">   how OpenAM detects specific \
clients.&lt;/para&gt; </span><span class="cx"> 
</span><ins>+  &lt;itemizedlist&gt;
+   &lt;para&gt;
+    This section describes the following sets of properties.
+   &lt;/para&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;system-client-detection&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;system-logging&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;system-monitoring&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;system-platform&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;system-platform-attrs&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/itemizedlist&gt;
+
</ins><span class="cx">   &lt;variablelist \
xml:id=&quot;system-client-detection&quot;&gt; </span><span class="cx">    \
&lt;title&gt;Client Detection&lt;/title&gt; </span><span class="cx"> 
</span><span class="lines">@@ -1532,6 +1653,96 @@
</span><span class="cx">   federation services, for password reset, for policy \
configuration, for </span><span class="cx">   session management, and for dynamic \
user attributes.&lt;/para&gt; </span><span class="cx"> 
</span><ins>+  &lt;itemizedlist&gt;
+   &lt;para&gt;
+    This section describes the following sets of properties.
+   &lt;/para&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;common-federation-configuration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;dashboard-configuration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;email-service-configuration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;liberty-id-ff-service-configuration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;multi-federation-protocol-configuration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;oauth2-provider-configuration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;password-reset-configuration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;policy-configuration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;rest-security-configuration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;saml2-service-configuration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;saml2-soap-configuration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;sts-configuration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;session-configuration-attributes&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;user-configuration-attributes&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/itemizedlist&gt;
+
</ins><span class="cx">   &lt;variablelist \
xml:id=&quot;common-federation-configuration&quot;&gt; </span><span class="cx">    \
&lt;title&gt;Common Federation Configuration&lt;/title&gt; </span><span class="cx"> 
</span><span class="lines">@@ -3625,6 +3836,60 @@
</span><span class="cx">   application container where OpenAM runs for the changes to \
take </span><span class="cx">   effect.&lt;/para&gt;
</span><span class="cx"> 
</span><ins>+  &lt;itemizedlist&gt;
+   &lt;para&gt;
+    This section describes the following sets of properties.
+   &lt;/para&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;servers-general-configuration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;servers-security-configuration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;servers-session-configuration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;servers-sdk-configuration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;servers-directory-configuration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;servers-cts&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;servers-advanced-configuration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;xref linkend=&quot;sites-configuration&quot; /&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/itemizedlist&gt;
+
</ins><span class="cx">   &lt;variablelist \
xml:id=&quot;servers-general-configuration&quot;&gt; </span><span class="cx">    \
&lt;title&gt;Servers &amp;gt; General&lt;/title&gt; </span><span class="cx"> 
</span><span class="lines">@@ -4358,97 +4623,132 @@
</span><span class="cx">   &lt;variablelist xml:id=&quot;servers-cts&quot;&gt;
</span><span class="cx">     &lt;title&gt;Servers &amp;gt; CTS&lt;/title&gt;
</span><span class="cx"> 
</span><del>-    &lt;para&gt;The Core Token Service (CTS) does not need to be \
                configured in the same LDAP storage as the
-    external or embedded user store. The CTS can instead be configured on its own \
                external directory server.
-    There are some specific requirements for indexing and replication which need to \
                be accounted for.
-    In particular, WAN replication is an important consideration which needs to be \
                handled carefully for
-    optimum performance.&lt;/para&gt;
</del><ins>+    &lt;para&gt;
+     The Core Token Service (CTS) does not need to be configured
+     in the same LDAP storage as the external or embedded user store.
+     The CTS can instead be configured on its own external directory server.
+     There are some specific requirements for indexing and replication
+     which need to be accounted for.
+     In particular, WAN replication is an important consideration
+     which needs to be handled carefully for optimum performance.
+    &lt;/para&gt;
</ins><span class="cx"> 
</span><del>-    &lt;para&gt;You may also choose to set advanced properties related \
                to token size, including
-    &lt;literal&gt;com.sun.identity.session.repository.enableEncryption&lt;/literal&gt;,
                
-    &lt;literal&gt;com.sun.identity.session.repository.enableCompression&lt;/literal&gt;, \
                and
-    &lt;literal&gt;com.sun.identity.session.repository.enableAttributeCompression&lt;/literal&gt;. \
                For more information,
-    identify these variables in the following section: &lt;xref \
linkend=&quot;servers-advanced-configuration&quot; /&gt;.&lt;/para&gt; </del><ins>+   \
&lt;para&gt; +     You may also choose to set advanced properties related to token \
size, including +     \
&lt;literal&gt;com.sun.identity.session.repository.enableEncryption&lt;/literal&gt;, \
+     &lt;literal&gt;com.sun.identity.session.repository.enableCompression&lt;/literal&gt;,
 +     and &lt;literal&gt;com.sun.identity.session.repository.enableAttributeCompression&lt;/literal&gt;.
 +     For more information, identify these variables in the following section:
+     &lt;xref linkend=&quot;servers-advanced-configuration&quot; /&gt;.
+    &lt;/para&gt;
</ins><span class="cx"> 
</span><span class="cx">       &lt;varlistentry&gt;
</span><del>-        &lt;term&gt;Default Token Store&lt;/term&gt;
-        &lt;listitem&gt;
-            &lt;para&gt;If selected, CTS tokens are stored in the same external or \
                embedded datastore as is
-            used on an OpenAM configuration store. If you use the default token \
                store, you can only
-            configure the &lt;literal&gt;Root Suffix&lt;/literal&gt;. Associated \
                with the &lt;literal&gt;Directory Configuration&lt;/literal&gt;
-            tab associated with individual servers.&lt;/para&gt;
-        &lt;/listitem&gt;
</del><ins>+       &lt;term&gt;Default Token Store&lt;/term&gt;
+       &lt;listitem&gt;
+        &lt;para&gt;
+         If selected, CTS tokens are stored
+         in the same external or embedded datastore
+         as is used on an OpenAM configuration store.
+         If you use the default token store,
+         you can only configure the &lt;literal&gt;Root Suffix&lt;/literal&gt;.
+         Associated with the &lt;literal&gt;Directory Configuration&lt;/literal&gt; \
tab +         associated with individual servers.
+        &lt;/para&gt;
+       &lt;/listitem&gt;
</ins><span class="cx">     &lt;/varlistentry&gt;
</span><span class="cx"> 
</span><span class="cx">     &lt;varlistentry&gt;
</span><del>-        &lt;term&gt;External Token Store&lt;/term&gt;
-        &lt;listitem&gt;
-            &lt;para&gt;If you use OpenDJ, you can separate the CTS from the \
                configuration on different external servers.
-            On the external CTS server, you can also configure token schema and \
                indexes.&lt;/para&gt;
-        &lt;/listitem&gt;
</del><ins>+     &lt;term&gt;External Token Store&lt;/term&gt;
+     &lt;listitem&gt;
+      &lt;para&gt;
+       If you use OpenDJ, you can separate the CTS
+       from the configuration on different external servers.
+       On the external CTS server, you can also configure token schema and indexes.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
</ins><span class="cx">     &lt;/varlistentry&gt;
</span><span class="cx"> 
</span><span class="cx">     &lt;varlistentry&gt;
</span><del>-        &lt;term&gt;Root Suffix&lt;/term&gt;
-        &lt;listitem&gt;
-            &lt;para&gt;For either the default or external token stores, enter the \
                base DN for CTS storage information in
-            LDAP format, such as \
&lt;literal&gt;dc=cts,dc=forgerock,dc=com&lt;/literal&gt;. The &lt;literal&gt;Root \
                Suffix&lt;/literal&gt;
-            would be a database that can be maintained and replicated separately \
                from tha standard user datastore.&lt;/para&gt;
-        &lt;/listitem&gt;
</del><ins>+     &lt;term&gt;Root Suffix&lt;/term&gt;
+     &lt;listitem&gt;
+      &lt;para&gt;
+       For either the default or external token stores,
+       enter the base DN for CTS storage information in LDAP format,
+       such as &lt;literal&gt;dc=cts,dc=forgerock,dc=com&lt;/literal&gt;.
+       The &lt;literal&gt;Root Suffix&lt;/literal&gt; would be a database
+       that can be maintained and replicated separately
+       from the standard user datastore.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
</ins><span class="cx">     &lt;/varlistentry&gt;
</span><span class="cx"> 
</span><span class="cx">     &lt;varlistentry&gt;
</span><del>-        &lt;term&gt;SSL/TLS Enabled&lt;/term&gt;
-        &lt;listitem&gt;
-            &lt;para&gt;Access the directory service using StartTLS or \
                LDAPS.&lt;/para&gt;
-        &lt;/listitem&gt;
</del><ins>+     &lt;term&gt;SSL/TLS Enabled&lt;/term&gt;
+     &lt;listitem&gt;
+      &lt;para&gt;
+       Access the directory service using StartTLS or LDAPS.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
</ins><span class="cx">     &lt;/varlistentry&gt;
</span><span class="cx"> 
</span><span class="cx">     &lt;varlistentry&gt;
</span><del>-        &lt;term&gt;Directory Name&lt;/term&gt;
-        &lt;listitem&gt;
-            &lt;para&gt;The hostname of the external server.&lt;/para&gt;
-        &lt;/listitem&gt;
</del><ins>+     &lt;term&gt;Directory Name&lt;/term&gt;
+     &lt;listitem&gt;
+      &lt;para&gt;
+       The hostname of the external server.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
</ins><span class="cx">     &lt;/varlistentry&gt;
</span><span class="cx"> 
</span><span class="cx">     &lt;varlistentry&gt;
</span><del>-        &lt;term&gt;Port&lt;/term&gt;
-        &lt;listitem&gt;
-            &lt;para&gt;Specifies the TCP/IP port number used for communication to \
                to external datastore,
-            such as 389 for LDAP.&lt;/para&gt;
-        &lt;/listitem&gt;
</del><ins>+     &lt;term&gt;Port&lt;/term&gt;
+     &lt;listitem&gt;
+      &lt;para&gt;
+       Specifies the TCP/IP port number used for communication
+       with the external datastore, such as 389 for LDAP.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
</ins><span class="cx">     &lt;/varlistentry&gt;
</span><span class="cx"> 
</span><span class="cx">     &lt;varlistentry&gt;
</span><del>-        &lt;term&gt;Login Id&lt;/term&gt;
-        &lt;listitem&gt;
-            &lt;para&gt;Specifies the user, in DN format, needed to authenticate. \
                The user needs sufficient
-                privileges to read and write to the root suffix of the external \
                datastore.&lt;/para&gt;
-        &lt;/listitem&gt;
</del><ins>+     &lt;term&gt;Login Id&lt;/term&gt;
+     &lt;listitem&gt;
+      &lt;para&gt;
+       Specifies the user, in DN format, needed to authenticate.
+       The user needs sufficient privileges to read and write
+       to the root suffix of the external datastore.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
</ins><span class="cx">     &lt;/varlistentry&gt;
</span><span class="cx"> 
</span><span class="cx">     &lt;varlistentry&gt;
</span><del>-        &lt;term&gt;Password&lt;/term&gt;
-        &lt;listitem&gt;
-            &lt;para&gt;Specifies the password associated with the Login \
                Id.&lt;/para&gt;
-        &lt;/listitem&gt;
</del><ins>+     &lt;term&gt;Password&lt;/term&gt;
+     &lt;listitem&gt;
+      &lt;para&gt;
+       Specifies the password associated with the Login Id.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
</ins><span class="cx">     &lt;/varlistentry&gt;
</span><span class="cx"> 
</span><span class="cx">     &lt;varlistentry&gt;
</span><del>-        &lt;term&gt;Max Connections&lt;/term&gt;
-        &lt;listitem&gt;
-            &lt;para&gt;Notes the maximum number of remote connections to the \
                external datastore.&lt;/para&gt;
-        &lt;/listitem&gt;
</del><ins>+     &lt;term&gt;Max Connections&lt;/term&gt;
+     &lt;listitem&gt;
+      &lt;para&gt;
+       Notes the maximum number of remote connections to the external datastore.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
</ins><span class="cx">     &lt;/varlistentry&gt;
</span><span class="cx">       
</span><span class="cx">     &lt;varlistentry&gt;
</span><del>-        &lt;term&gt;Heartbeat&lt;/term&gt;
-        &lt;listitem&gt;
-            &lt;para&gt;Specifies how often OpenAM should send a heartbeat request \
                to the directory server
-            to ensure that the connection does not remain idle, in seconds. Default: \
                10.&lt;/para&gt;
-        &lt;/listitem&gt;
-    &lt;/varlistentry&gt;  
-
</del><ins>+     &lt;term&gt;Heartbeat&lt;/term&gt;
+     &lt;listitem&gt;
+      &lt;para&gt;
+       Specifies how often OpenAM should send a heartbeat request to the directory \
server +       to ensure that the connection does not remain idle, in seconds.
+       Default: 10.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+    &lt;/varlistentry&gt;
</ins><span class="cx">   &lt;/variablelist&gt;
</span><span class="cx"> 
</span><span class="cx">   &lt;variablelist \
xml:id=&quot;servers-advanced-configuration&quot;&gt; </span></span></pre></div>
<a id="branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxreferencechapendpointsxml"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/reference/chap-endpoints.xml \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/reference/chap-endpoints.xml	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/reference/chap-endpoints.xml	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -760,7 +760,7 @@
</span><span class="cx">             \
&lt;term&gt;&lt;literal&gt;userDenied.jsp&lt;/literal&gt;&lt;/term&gt; </span><span \
class="cx">             &lt;listitem&gt; </span><span class="cx">                 \
&lt;para&gt;Associated with role-based authentication. Tells a user when the required \
role has not been configured </span><del>-                    for that user. Message \
defined by the user.not.inrole parameter, defined in the amAuthUI.prooperties \
</del><ins>+                    for that user. Message defined by the user.not.inrole \
parameter, defined in the amAuthUI.properties </ins><span class="cx">                 \
file.&lt;/para&gt; </span><span class="cx">             &lt;/listitem&gt;
</span><span class="cx">         &lt;/varlistentry&gt;
</span></span></pre></div>
<a id="branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxreleasenoteschapwhatsnewxml"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/release-notes/chap-whats-new.xml \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/release-notes/chap-whats-new.xml	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/release-notes/chap-whats-new.xml	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -274,6 +274,21 @@
</span><span class="cx"> 
</span><span class="cx">   &lt;listitem&gt;
</span><span class="cx">     &lt;para&gt;
</span><ins>+     &lt;emphasis role=&quot;bold&quot;&gt;Configurable DN Cache for \
LDAP Data Stores&lt;/emphasis&gt;. +     OpenAM now has the capability to enable and \
disable DN caching. +     DN caching helps avoid DN lookups
+     that can happen in bursts during authentication.
+     (
+     &lt;link
+      xlink:show=&quot;new&quot;
+      xlink:href=&quot;https://bugster.forgerock.org/jira/browse/OPENAM-3822&quot;
+     &gt;OPENAM-3822&lt;/link&gt;
+     ).
+    &lt;/para&gt;
+  &lt;/listitem&gt;
+
+  &lt;listitem&gt;
+    &lt;para&gt;
</ins><span class="cx">      &lt;emphasis role=&quot;bold&quot;&gt;Quicker UI \
Customization&lt;/emphasis&gt;. </span><span class="cx">      While customizing the \
UI, you can set the advanced server property, </span><span class="cx">      \
&lt;literal&gt;org.forgerock.openam.core.resource.lookup.cache.enabled&lt;/literal&gt;,
 </span></span></pre></div>
<a id="branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxsharedsecda \
tastoresactivedirectoryxmlfromrev10288trunkopenamopenamdocumentationopenamdocsourcesrcmaindocbkxsharedsecdatastoresactivedirectoryxml"></a>
 <div class="copfile"><h4>Copied: \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-active-directory.xml \
(from rev 10288, trunk/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-active-directory.xml) \
(0 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-active-directory.xml	 \
                (rev 0)
+++ branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-active-directory.xml	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -0,0 +1,1001 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;!--
+  ! CCPL HEADER START
+  !
+  ! This work is licensed under the Creative Commons
+  ! Attribution-NonCommercial-NoDerivs 3.0 Unported License.
+  ! To view a copy of this license, visit
+  ! http://creativecommons.org/licenses/by-nc-nd/3.0/
+  ! or send a letter to Creative Commons, 444 Castro Street,
+  ! Suite 900, Mountain View, California, 94041, USA.
+  !
+  ! You can also obtain a copy of the license at
+  ! trunk/opendj3/legal-notices/CC-BY-NC-ND.txt.
+  ! See the License for the specific language governing permissions
+  ! and limitations under the License.
+  !
+  ! If applicable, add the following below this CCPL HEADER, with the fields
+  ! enclosed by brackets &quot;[]&quot; replaced with your own identifying \
information: +  !      Portions Copyright [yyyy] [name of copyright owner]
+  !
+  ! CCPL HEADER END
+  !
+  !      Copyright 2011-2014 ForgeRock AS
+  !
+--&gt;
+&lt;section xml:id=&quot;sec-data-stores-active-directory&quot;
+         xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en'
+         xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+         xsi:schemaLocation='http://docbook.org/ns/docbook
+                             http://docbook.org/xml/5.0/xsd/docbook.xsd'&gt;
+ &lt;title&gt;Hints for Configuring Active Directory Data Stores&lt;/title&gt;
+
+ &lt;para&gt;
+  Use these hints when configuring Active Directory Data Stores.
+ &lt;/para&gt;
+
+ &lt;indexterm&gt;
+  &lt;primary&gt;Data stores&lt;/primary&gt;
+  &lt;secondary&gt;Active Directory&lt;/secondary&gt;
+ &lt;/indexterm&gt;
+
+ &lt;para&gt;
+  &lt;command&gt;ssoadm&lt;/command&gt; service name:
+  &lt;literal&gt;sunIdentityRepositoryService&lt;/literal&gt;
+ &lt;/para&gt;
+
+ &lt;variablelist&gt;
+  &lt;varlistentry&gt;
+   &lt;term&gt;Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Name for the data store configuration
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Load schema when finished&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Add appropriate LDAP schema to the directory server
+     when saving the configuration.
+     The LDAP Bind DN user must have access to perform this operation.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;idRepoLoadSchema&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     false
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Server&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;literal&gt;&lt;replaceable&gt;host&lt;/replaceable&gt;:&lt;replaceable&gt;port&lt;/replaceable&gt;&lt;/literal&gt;
 +     to contact the directory server, with optional
+     &lt;literal&gt;|&lt;replaceable&gt;server_ID&lt;/replaceable&gt;|&lt;replaceable&gt;site_ID&lt;/replaceable&gt;&lt;/literal&gt;
 +     for deployments with multiple servers and sites
+    &lt;/para&gt;
+
+    &lt;orderedlist&gt;
+     &lt;para&gt;
+      OpenAM uses the optional settings to determine
+      which directory server to contact first.
+      OpenAM tries to contact directory servers
+      in the following priority order, with highest priority first.
+     &lt;/para&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       The first directory server in the list
+       whose &lt;replaceable&gt;server_ID&lt;/replaceable&gt;
+       matches the current OpenAM server
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       The first directory server in the list
+       whose &lt;replaceable&gt;site_ID&lt;/replaceable&gt;
+       matches the current OpenAM server
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       The first directory server in the remaining list
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+    &lt;/orderedlist&gt;
+
+    &lt;para&gt;
+     If the directory server is not available,
+     OpenAM proceeds to the next directory server in the list.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-ldap-server&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;&lt;replaceable&gt;host&lt;/replaceable&gt;:&lt;replaceable&gt;port&lt;/replaceable&gt;&lt;/literal&gt;
 +     of the initial directory server configured for this OpenAM server
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Bind DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Bind DN for connecting to the directory server.
+     Some OpenAM capabilities require write access to directory entries.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-authid&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;CN=Administrator,CN=Users,&lt;replaceable&gt;base-dn&lt;/replaceable&gt;&lt;/literal&gt;
 +    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Bind Password&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Bind password for connecting to the directory server
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-authpw&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Organization DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     The base DN under which to find user and group profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-organization_name&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;&lt;replaceable&gt;base-dn&lt;/replaceable&gt;&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP SSL/TLS Enabled&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Whether to use LDAPS or StartTLS to connect to the directory server.
+     If you enable SSL/TLS, OpenAM must be able to trust server certificates,
+     either because the server certificates were signed by a CA
+     whose certificate is already included in the trust store
+     used by the container where OpenAM runs,
+     or because you imported the certificates into the trust store.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-ssl-enabled&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     false
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Connection Pool Maximum Size&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Maximum number of connections to the directory server.
+     Make sure the directory service can cope
+     with the maximum number of client connections across all servers.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-connection_pool_max_size&lt;/literal&gt;
 +    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     10
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Connection Heartbeat Interval&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     How often to send a heartbeat request to the directory server
+     to ensure that the connection does not remain idle.
+     Some network administrators configure firewalls and load balancers
+     to drop connections that are idle for too long.
+     You can turn this off by setting the value to 0 or to a negative number.
+     To set the units for the interval use LDAP Connection Heartbeat Time Unit.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;openam-idrepo-ldapv3-heartbeat-interval&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     10
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Connection Heartbeat Time Unit&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Time unit for the LDAP Connection Heartbeat Interval setting
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;openam-idrepo-ldapv3-heartbeat-timeunit&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;second&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Maximum Results Returned from Search&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     A cap for the number of search results to request.
+     For example when using the Subjects tab to view profiles,
+     even if you set
+     Configuration &gt; Console &gt; Administration &gt; Maximum Results Returned \
from Search +     to a larger number, OpenAM does not exceed this setting.
+     Rather than raise this number,
+     consider narrowing your search to match fewer directory entries.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-max-result&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     1000
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Search Timeout&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Maximum time to wait for search results in seconds.
+     Does not apply to persistent searches.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-time-limit&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     10
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAPv3 Plug-in Search Scope&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP searches can apply to a single entry (SCOPE_BASE),
+     entries directly below the search DN (SCOPE_ONE),
+     or all entries below the search DN (SEARCH_SUB)
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-search-scope&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;SCOPE_SUB&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAPv3 Repository Plug-in Class Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     OpenAM identity repository implementation
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoClass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;org.forgerock.openam.idrepo.ldap.DJLDAPv3Repo&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name Mapping&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Map of OpenAM profile attribute names to directory server attribute names
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoAttributeMapping&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;userPassword=unicodePwd&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAPv3 Plug-in Supported Types and Operations&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Map of OpenAM operations that can be performed in the specified OpenAM contexts
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoSupportedOperations&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;group=read,create,edit,delete&lt;/literal&gt;,
+     &lt;literal&gt;realm=read,create,edit,delete,service&lt;/literal&gt;,
+     &lt;literal&gt;user=read,create,edit,delete&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Users Search Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for a user by name, match values against this attribute
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-users-search-attribute&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Users Search Filter&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for users, apply this LDAP search filter as well
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-users-search-filter&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;(objectclass=person)&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP People Container Naming Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute of the LDAP base DN which contains user profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-people-container-name&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP People Container Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute value of the LDAP base DN which contains user profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-people-container-value&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;users&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP User Object Class&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     User profiles have these LDAP object classes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     OpenAM handles only those attributes listed in this setting.
+     OpenAM discards any such unlisted attributes from requests
+     and the request proceeds without the attribute.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     For example, with default settings
+     if you request that OpenAM execute a search that asks for
+     the &lt;literal&gt;mailAlternateAddress&lt;/literal&gt; attribute,
+     OpenAM does the search, but does not request
+     &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;.
+     In the same way, OpenAM does perform an update operation
+     with a request to set the value of an unlisted attribute
+     like &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;,
+     but it drops the unlisted attribute from the update request.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-user-objectclass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;organizationalPerson&lt;/literal&gt;,
+     &lt;literal&gt;person&lt;/literal&gt;,
+     &lt;literal&gt;top&lt;/literal&gt;,
+     &lt;literal&gt;User&lt;/literal&gt;,
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP User Attributes&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     User profiles have these LDAP attributes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-user-attributes&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;assignedDashboard&lt;/literal&gt;,
+     &lt;literal&gt;cn&lt;/literal&gt;,
+     &lt;literal&gt;devicePrintProfiles&lt;/literal&gt;,
+     &lt;literal&gt;displayName&lt;/literal&gt;,
+     &lt;literal&gt;distinguishedName&lt;/literal&gt;,
+     &lt;literal&gt;dn&lt;/literal&gt;,
+     &lt;literal&gt;employeeNumber&lt;/literal&gt;,
+     &lt;literal&gt;givenName&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-auth-configuration&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-add-session-listener-on-all-sessions&lt;/literal&gt;,
 +     &lt;literal&gt;iplanet-am-session-destroy-sessions&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-get-valid-sessions&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-max-caching-time&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-max-idle-time&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-max-session-time&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-quota-limit&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-service-status&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-account-life&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-admin-start-dn&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-alias-list&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-auth-config&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-auth-modules&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-failure-url&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-federation-info-key&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-federation-info&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-login-status&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-password-reset-force-reset&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-password-reset-options&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-password-reset-question-answer&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-success-url&lt;/literal&gt;,
+     &lt;literal&gt;mail&lt;/literal&gt;,
+     &lt;literal&gt;name&lt;/literal&gt;,
+     &lt;literal&gt;objectclass&lt;/literal&gt;,
+     &lt;literal&gt;objectGUID&lt;/literal&gt;,
+     &lt;literal&gt;postalAddress&lt;/literal&gt;,
+     &lt;literal&gt;preferredlanguage&lt;/literal&gt;,
+     &lt;literal&gt;preferredLocale&lt;/literal&gt;,
+     &lt;literal&gt;preferredtimezone&lt;/literal&gt;,
+     &lt;literal&gt;sAMAccountName&lt;/literal&gt;,
+     &lt;literal&gt;sn&lt;/literal&gt;,
+     &lt;literal&gt;sun-fm-saml2-nameid-info&lt;/literal&gt;,
+     &lt;literal&gt;sun-fm-saml2-nameid-infokey&lt;/literal&gt;,
+     &lt;literal&gt;sunAMAuthInvalidAttemptsData&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityMSISDNNumber&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerDiscoEntries&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPAddressCard&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameAltCN&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameCN&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameFN&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameMN&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNamePT&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameSN&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsAge&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsBirthDay&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsDisplayLanguage&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsLanguage&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsTimeZone&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmergencyContact&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmploymentIdentityAltO&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmploymentIdentityJobTitle&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmploymentIdentityOrg&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEncryPTKey&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadegreetmesound&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeGreetSound&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeMugShot&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeNamePronounced&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeWebSite&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPInformalName&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityAltIdType&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityAltIdValue&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityDOB&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityGender&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityLegalName&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityMaritalStatus&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityVATIdType&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityVATIdValue&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPMsgContact&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPSignKey&lt;/literal&gt;,
+     &lt;literal&gt;telephoneNumber&lt;/literal&gt;,
+     &lt;literal&gt;unicodePwd&lt;/literal&gt;,
+     &lt;literal&gt;userAccountControl&lt;/literal&gt;,
+     &lt;literal&gt;userpassword&lt;/literal&gt;,
+     &lt;literal&gt;userPrincipalname&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Create User Attribute Mapping&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When creating a user profile,
+     apply this map of OpenAM profile attribute names
+     to directory server attribute names.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Attributes not mapped to another attribute
+     (for example, &lt;literal&gt;cn&lt;/literal&gt;)
+     and attributes mapped to themselves
+     (for example, &lt;literal&gt;cn=cn&lt;/literal&gt;)
+     take the value of the username
+     unless the attribute values are provided when creating the profile.
+     The object classes for user profile LDAP entries
+     generally require Common Name (cn) and Surname (sn) attributes,
+     so this prevents an LDAP constraint violation
+     when performing the add operation.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-createuser-attr-mapping&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;,
+     &lt;literal&gt;sn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name of User Status&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Attribute to check/set user status
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-isactive&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;userAccountControl&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;User Status Active Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Active users have the user status attribute set to this value.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-active&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     544
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;User Status Inactive Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Inactive users have the user status attribute set to this value.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-inactive&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     546
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Authentication Naming Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute for building the bind DN
+     when given a username and password
+     to authenticate a user against the directory server
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-auth-naming-attr&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Search Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for a group by name, match values against this attribute
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-groups-search-attribute&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Search Filter&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for groups, apply this LDAP search filter as well
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-groups-search-filter&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;(objectclass=group)&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Container Naming Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute of the LDAP base DN which contains group profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-container-name&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Container Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute value of the LDAP base DN which contains group profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-container-value&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;users&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Object Class&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Group profiles have these LDAP object classes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-objectclass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;Group&lt;/literal&gt;,
+     &lt;literal&gt;top&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Attributes&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Group profiles have these LDAP attributes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-attributes&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;,
+     &lt;literal&gt;distinguishedName&lt;/literal&gt;,
+     &lt;literal&gt;dn&lt;/literal&gt;,
+     &lt;literal&gt;member&lt;/literal&gt;,
+     &lt;literal&gt;name&lt;/literal&gt;,
+     &lt;literal&gt;objectCategory&lt;/literal&gt;,
+     &lt;literal&gt;objectclass&lt;/literal&gt;,
+     &lt;literal&gt;sAMAccountName&lt;/literal&gt;,
+     &lt;literal&gt;sAMAccountType&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name for Group Membership&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP attribute in the member's LDAP entry
+     whose values are the groups to which a member belongs
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-memberof&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name of Unique Member&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Attribute in the group's LDAP entry
+     whose values are the members of the group
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-uniquemember&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;member&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Persistent Search Base DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Base DN for LDAP persistent searches
+     used to receive notification of changes in directory server data
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-psearchbase&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;&lt;replaceable&gt;base-dn&lt;/replaceable&gt;&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Persistent Search Scope&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP searches can apply to a single entry (SCOPE_BASE),
+     entries directly below the search DN (SCOPE_ONE),
+     or all entries below the search DN (SEARCH_SUB)
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Specify either &lt;literal&gt;SCOPE_BASE&lt;/literal&gt;
+     or &lt;literal&gt;SCOPE_ONE&lt;/literal&gt;.
+     Do not specify &lt;literal&gt;SCOPE_SUB&lt;/literal&gt;,
+     as it can have a severe impact on Active Directory performance.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-psearch-scope&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;SCOPE_SUB&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;The Delay Time Between Retries&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     How long to wait after receiving an error result
+     that indicates OpenAM should try the LDAP operation again
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;com.iplanet.am.ldap.connection.delay.between.retries&lt;/literal&gt;
 +    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     1000 milliseconds
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;DN Cache Enabled&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Whether to enable the DN cache, which is used to cache DN lookups
+     that can happen in bursts during authentication.
+     As the cache can become stale when a user is moved or renamed,
+     enable DN caching when the directory service allows move/rename operations (Mod \
DN), +     and when OpenAM uses persistent searches to obtain notification of such \
updates. +    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-dncache-enabled&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     false
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;DN Cache Size&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Maximum number of DNs cached when caching is enabled
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-dncache-size&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     1500 items
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+ &lt;/variablelist&gt;
+&lt;/section&gt;
</ins></span></pre></div>
<a id="branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxsharedsecda \
tastoresadamxmlfromrev10288trunkopenamopenamdocumentationopenamdocsourcesrcmaindocbkxsharedsecdatastoresadamxml"></a>
 <div class="copfile"><h4>Copied: \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-adam.xml \
(from rev 10288, trunk/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-adam.xml) \
(0 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-adam.xml	 \
                (rev 0)
+++ branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-adam.xml	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -0,0 +1,1013 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;!--
+  ! CCPL HEADER START
+  !
+  ! This work is licensed under the Creative Commons
+  ! Attribution-NonCommercial-NoDerivs 3.0 Unported License.
+  ! To view a copy of this license, visit
+  ! http://creativecommons.org/licenses/by-nc-nd/3.0/
+  ! or send a letter to Creative Commons, 444 Castro Street,
+  ! Suite 900, Mountain View, California, 94041, USA.
+  !
+  ! You can also obtain a copy of the license at
+  ! trunk/opendj3/legal-notices/CC-BY-NC-ND.txt.
+  ! See the License for the specific language governing permissions
+  ! and limitations under the License.
+  !
+  ! If applicable, add the following below this CCPL HEADER, with the fields
+  ! enclosed by brackets &quot;[]&quot; replaced with your own identifying \
information: +  !      Portions Copyright [yyyy] [name of copyright owner]
+  !
+  ! CCPL HEADER END
+  !
+  !      Copyright 2011-2014 ForgeRock AS
+  !
+--&gt;
+&lt;section xml:id=&quot;sec-data-stores-adam&quot;
+         xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en'
+         xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+         xsi:schemaLocation='http://docbook.org/ns/docbook
+                             http://docbook.org/xml/5.0/xsd/docbook.xsd'&gt;
+ &lt;title&gt;Hints for Configuring Active Directory Application Mode (ADAM) Data \
Stores&lt;/title&gt; +
+ &lt;para&gt;
+  Use these hints when configuring Active Directory Application Mode (ADAM) Data \
Stores. + &lt;/para&gt;
+
+ &lt;indexterm&gt;
+  &lt;primary&gt;Data stores&lt;/primary&gt;
+  &lt;secondary&gt;Active Directory Application Mode (ADAM)&lt;/secondary&gt;
+ &lt;/indexterm&gt;
+
+ &lt;para&gt;
+  &lt;command&gt;ssoadm&lt;/command&gt; service name:
+  &lt;literal&gt;sunIdentityRepositoryService&lt;/literal&gt;
+ &lt;/para&gt;
+
+ &lt;variablelist&gt;
+  &lt;varlistentry&gt;
+   &lt;term&gt;Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Name for the data store configuration
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Load schema when finished&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Add appropriate LDAP schema to the directory server
+     when saving the configuration.
+     The LDAP Bind DN user must have access to perform this operation.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;idRepoLoadSchema&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     false
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Server&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;literal&gt;&lt;replaceable&gt;host&lt;/replaceable&gt;:&lt;replaceable&gt;port&lt;/replaceable&gt;&lt;/literal&gt;
 +     to contact the directory server, with optional
+     &lt;literal&gt;|&lt;replaceable&gt;server_ID&lt;/replaceable&gt;|&lt;replaceable&gt;site_ID&lt;/replaceable&gt;&lt;/literal&gt;
 +     for deployments with multiple servers and sites
+    &lt;/para&gt;
+
+    &lt;orderedlist&gt;
+     &lt;para&gt;
+      OpenAM uses the optional settings to determine
+      which directory server to contact first.
+      OpenAM tries to contact directory servers
+      in the following priority order, with highest priority first.
+     &lt;/para&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       The first directory server in the list
+       whose &lt;replaceable&gt;server_ID&lt;/replaceable&gt;
+       matches the current OpenAM server
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       The first directory server in the list
+       whose &lt;replaceable&gt;site_ID&lt;/replaceable&gt;
+       matches the current OpenAM server
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       The first directory server in the remaining list
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+    &lt;/orderedlist&gt;
+
+    &lt;para&gt;
+     If the directory server is not available,
+     OpenAM proceeds to the next directory server in the list.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-ldap-server&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;&lt;replaceable&gt;host&lt;/replaceable&gt;:&lt;replaceable&gt;port&lt;/replaceable&gt;&lt;/literal&gt;
 +     of the initial directory server configured for this OpenAM server
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Bind DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Bind DN for connecting to the directory server.
+     Some OpenAM capabilities require write access to directory entries.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-authid&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;CN=Administrator,CN=Users,&lt;replaceable&gt;base-dn&lt;/replaceable&gt;&lt;/literal&gt;
 +    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Bind Password&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Bind password for connecting to the directory server
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-authpw&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Organization DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     The base DN under which to find user and group profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-organization_name&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;&lt;replaceable&gt;base-dn&lt;/replaceable&gt;&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP SSL/TLS Enabled&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Whether to use LDAPS or StartTLS to connect to the directory server.
+     If you enable SSL/TLS, OpenAM must be able to trust server certificates,
+     either because the server certificates were signed by a CA
+     whose certificate is already included in the trust store
+     used by the container where OpenAM runs,
+     or because you imported the certificates into the trust store.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-ssl-enabled&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     false
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Connection Pool Maximum Size&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Maximum number of connections to the directory server.
+     Make sure the directory service can cope
+     with the maximum number of client connections across all servers.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-connection_pool_max_size&lt;/literal&gt;
 +    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     10
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Connection Heartbeat Interval&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     How often to send a heartbeat request to the directory server
+     to ensure that the connection does not remain idle.
+     Some network administrators configure firewalls
+     and load balancers to drop connections that are idle for too long.
+     You can turn this off by setting the value to 0 or to a negative number.
+     To set the units for the interval use LDAP Connection Heartbeat Time Unit.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;openam-idrepo-ldapv3-heartbeat-interval&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     10
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Connection Heartbeat Time Unit&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Time unit for the LDAP Connection Heartbeat Interval setting
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;openam-idrepo-ldapv3-heartbeat-timeunit&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;second&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Maximum Results Returned from Search&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     A cap for the number of search results to request.
+     For example when using the Subjects tab to view profiles,
+     even if you set
+     Configuration &gt; Console &gt; Administration &gt; Maximum Results Returned \
from Search +     to a larger number, OpenAM does not exceed this setting.
+     Rather than raise this number,
+     consider narrowing your search to match fewer directory entries.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-max-result&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     1000
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Search Timeout&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Maximum time to wait for search results in seconds.
+     Does not apply to persistent searches.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-time-limit&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     10
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAPv3 Plug-in Search Scope&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP searches can apply to a single entry (SCOPE_BASE),
+     entries directly below the search DN (SCOPE_ONE),
+     or all entries below the search DN (SEARCH_SUB)
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-search-scope&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;SCOPE_SUB&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAPv3 Repository Plug-in Class Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     OpenAM identity repository implementation
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoClass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;org.forgerock.openam.idrepo.ldap.DJLDAPv3Repo&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name Mapping&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Map of OpenAM profile attribute names to directory server attribute names
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoAttributeMapping&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;userPassword=unicodePwd&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAPv3 Plug-in Supported Types and Operations&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Map of OpenAM operations that can be performed in the specified OpenAM contexts
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoSupportedOperations&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;group=read,create,edit,delete&lt;/literal&gt;,
+     &lt;literal&gt;realm=read,create,edit,delete,service&lt;/literal&gt;,
+     &lt;literal&gt;user=read,create,edit,delete&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Users Search Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for a user by name, match values against this attribute
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-users-search-attribute&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Users Search Filter&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for users, apply this LDAP search filter as well
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-users-search-filter&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;(objectclass=person)&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP People Container Naming Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute of the LDAP base DN which contains user profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-people-container-name&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP People Container Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute value of the LDAP base DN which contains user profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-people-container-value&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP User Object Class&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     User profiles have these LDAP object classes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     OpenAM handles only those attributes listed in this setting.
+     OpenAM discards any unlisted attributes from requests
+     and the request proceeds without the attribute.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     For example, with default settings
+     if you request that OpenAM execute a search that asks for
+     the &lt;literal&gt;mailAlternateAddress&lt;/literal&gt; attribute,
+     OpenAM does the search, but does not request
+     &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;.
+     In the same way, OpenAM does perform an update operation
+     with a request to set the value of an unlisted attribute
+     like &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;,
+     but it drops the unlisted attribute from the update request.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-user-objectclass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;devicePrintProfilesContainer&lt;/literal&gt;,
+     &lt;literal&gt;forgerock-am-dashboard-service&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-auth-configuration-service&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-managed-person&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-service&lt;/literal&gt;,
+     &lt;literal&gt;iPlanetPreferences&lt;/literal&gt;,
+     &lt;literal&gt;organizationalPerson&lt;/literal&gt;,
+     &lt;literal&gt;person&lt;/literal&gt;,
+     &lt;literal&gt;sunAMAuthAccountLockout&lt;/literal&gt;,
+     &lt;literal&gt;sunFederationManagerDataStore&lt;/literal&gt;,
+     &lt;literal&gt;sunFMSAML2NameIdentifier&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerLibertyPPService&lt;/literal&gt;,
+     &lt;literal&gt;top&lt;/literal&gt;,
+     &lt;literal&gt;User&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP User Attributes&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     User profiles have these LDAP attributes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     OpenAM handles only those attributes listed in this setting.
+     OpenAM discards any unlisted attributes from requests
+     and the request proceeds without the attribute.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     For example, with default settings
+     if you request that OpenAM execute a search that asks for
+     the &lt;literal&gt;mailAlternateAddress&lt;/literal&gt; attribute,
+     OpenAM does the search, but does not request
+     &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;.
+     In the same way, OpenAM does perform an update operation
+     with a request to set the value of an unlisted attribute
+     like &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;,
+     but it drops the unlisted attribute from the update request.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-user-attributes&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;assignedDashboard&lt;/literal&gt;,
+     &lt;literal&gt;cn&lt;/literal&gt;,
+     &lt;literal&gt;devicePrintProfiles&lt;/literal&gt;,
+     &lt;literal&gt;displayName&lt;/literal&gt;,
+     &lt;literal&gt;distinguishedName&lt;/literal&gt;,
+     &lt;literal&gt;dn&lt;/literal&gt;,
+     &lt;literal&gt;employeeNumber&lt;/literal&gt;,
+     &lt;literal&gt;givenName&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-auth-configuration&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-add-session-listener-on-all-sessions&lt;/literal&gt;,
 +     &lt;literal&gt;iplanet-am-session-destroy-sessions&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-get-valid-sessions&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-max-caching-time&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-max-idle-time&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-max-session-time&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-quota-limit&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-service-status&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-account-life&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-admin-start-dn&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-alias-list&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-auth-config&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-auth-modules&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-failure-url&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-federation-info-key&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-federation-info&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-login-status&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-password-reset-force-reset&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-password-reset-options&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-password-reset-question-answer&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-success-url&lt;/literal&gt;,
+     &lt;literal&gt;mail&lt;/literal&gt;,
+     &lt;literal&gt;name&lt;/literal&gt;,
+     &lt;literal&gt;objectclass&lt;/literal&gt;,
+     &lt;literal&gt;objectGUID&lt;/literal&gt;,
+     &lt;literal&gt;postalAddress&lt;/literal&gt;,
+     &lt;literal&gt;preferredlanguage&lt;/literal&gt;,
+     &lt;literal&gt;preferredLocale&lt;/literal&gt;,
+     &lt;literal&gt;preferredtimezone&lt;/literal&gt;,
+     &lt;literal&gt;sAMAccountName&lt;/literal&gt;,
+     &lt;literal&gt;sn&lt;/literal&gt;,
+     &lt;literal&gt;sun-fm-saml2-nameid-info&lt;/literal&gt;,
+     &lt;literal&gt;sun-fm-saml2-nameid-infokey&lt;/literal&gt;,
+     &lt;literal&gt;sunAMAuthInvalidAttemptsData&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityMSISDNNumber&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerDiscoEntries&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPAddressCard&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameAltCN&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameCN&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameFN&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameMN&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNamePT&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameSN&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsAge&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsBirthDay&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsDisplayLanguage&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsLanguage&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsTimeZone&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmergencyContact&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmploymentIdentityAltO&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmploymentIdentityJobTitle&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmploymentIdentityOrg&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEncryPTKey&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadegreetmesound&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeGreetSound&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeMugShot&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeNamePronounced&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeWebSite&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPInformalName&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityAltIdType&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityAltIdValue&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityDOB&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityGender&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityLegalName&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityMaritalStatus&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityVATIdType&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityVATIdValue&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPMsgContact&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPSignKey&lt;/literal&gt;,
+     &lt;literal&gt;telephoneNumber&lt;/literal&gt;,
+     &lt;literal&gt;unicodePwd&lt;/literal&gt;,
+     &lt;literal&gt;userAccountControl&lt;/literal&gt;,
+     &lt;literal&gt;userpassword&lt;/literal&gt;,
+     &lt;literal&gt;userPrincipalname&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Create User Attribute Mapping&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When creating a user profile,
+     apply this map of OpenAM profile attribute names
+     to directory server attribute names.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Attributes not mapped to another attribute
+     (for example, &lt;literal&gt;cn&lt;/literal&gt;)
+     and attributes mapped to themselves
+     (for example, &lt;literal&gt;cn=cn&lt;/literal&gt;)
+     take the value of the username
+     unless the attribute values are provided when creating the profile.
+     The object classes for user profile LDAP entries
+     generally require Common Name (cn) and Surname (sn) attributes,
+     so this prevents an LDAP constraint violation
+     when performing the add operation.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-createuser-attr-mapping&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;,
+     &lt;literal&gt;sn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name of User Status&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Attribute to check/set user status
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-isactive&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;msDS-UserAccountDisabled&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;User Status Active Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Active users have the user status attribute set to this value.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-active&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     FALSE
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;User Status Inactive Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Inactive users have the user status attribute set to this value.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-inactive&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     TRUE
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Authentication Naming Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute for building the bind DN when given a username and password
+     to authenticate a user against the directory server
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-auth-naming-attr&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Search Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for a group by name, match values against this attribute
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-groups-search-attribute&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Search Filter&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for groups, apply this LDAP search filter as well
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-groups-search-filter&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;(objectclass=group)&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Container Naming Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute of the LDAP base DN which contains group profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-container-name&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Container Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute value of the LDAP base DN which contains group profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-container-value&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Object Class&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Group profiles have these LDAP object classes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-objectclass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;Group&lt;/literal&gt;,
+     &lt;literal&gt;top&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Attributes&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Group profiles have these LDAP attributes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-attributes&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;,
+     &lt;literal&gt;distinguishedName&lt;/literal&gt;,
+     &lt;literal&gt;dn&lt;/literal&gt;,
+     &lt;literal&gt;member&lt;/literal&gt;,
+     &lt;literal&gt;name&lt;/literal&gt;,
+     &lt;literal&gt;objectCategory&lt;/literal&gt;,
+     &lt;literal&gt;objectclass&lt;/literal&gt;,
+     &lt;literal&gt;sAMAccountName&lt;/literal&gt;,
+     &lt;literal&gt;sAMAccountType&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name for Group Membership&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP attribute in the member's LDAP entry
+     whose values are the groups to which a member belongs
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-memberof&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name of Unique Member&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Attribute in the group's LDAP entry
+     whose values are the members of the group
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-uniquemember&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;member&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Persistent Search Base DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Base DN for LDAP persistent searches used
+     to receive notification of changes in directory server data
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-psearchbase&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;&lt;replaceable&gt;base-dn&lt;/replaceable&gt;&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Persistent Search Scope&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP searches can apply to a single entry (SCOPE_BASE),
+     entries directly below the search DN (SCOPE_ONE),
+     or all entries below the search DN (SEARCH_SUB)
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Specify either &lt;literal&gt;SCOPE_BASE&lt;/literal&gt;
+     or &lt;literal&gt;SCOPE_ONE&lt;/literal&gt;.
+     Do not specify &lt;literal&gt;SCOPE_SUB&lt;/literal&gt;,
+     as it can have a severe impact on Active Directory performance.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-psearch-scope&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;SCOPE_SUB&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;The Delay Time Between Retries&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     How long to wait after receiving an error result
+     that indicates OpenAM should try the LDAP operation again
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;com.iplanet.am.ldap.connection.delay.between.retries&lt;/literal&gt;
 +    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     1000 milliseconds
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;DN Cache Enabled&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Whether to enable the DN cache, which is used to cache DN lookups
+     that can happen in bursts during authentication.
+     As the cache can become stale when a user is moved or renamed,
+     enable DN caching when the directory service allows move/rename operations (Mod \
DN), +     and when OpenAM uses persistent searches to obtain notification of such \
updates. +    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-dncache-enabled&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     false
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;DN Cache Size&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Maximum number of DNs cached when caching is enabled
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-dncache-size&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     1500 items
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+ &lt;/variablelist&gt;
+&lt;/section&gt;
</ins></span></pre></div>
<a id="branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxsharedsecda \
tastoresdbxmlfromrev10288trunkopenamopenamdocumentationopenamdocsourcesrcmaindocbkxsharedsecdatastoresdbxml"></a>
 <div class="copfile"><h4>Copied: \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-db.xml \
(from rev 10288, trunk/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-db.xml) \
(0 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-db.xml	 \
                (rev 0)
+++ branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-db.xml	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -0,0 +1,538 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;!--
+  ! CCPL HEADER START
+  !
+  ! This work is licensed under the Creative Commons
+  ! Attribution-NonCommercial-NoDerivs 3.0 Unported License.
+  ! To view a copy of this license, visit
+  ! http://creativecommons.org/licenses/by-nc-nd/3.0/
+  ! or send a letter to Creative Commons, 444 Castro Street,
+  ! Suite 900, Mountain View, California, 94041, USA.
+  !
+  ! You can also obtain a copy of the license at
+  ! trunk/opendj3/legal-notices/CC-BY-NC-ND.txt.
+  ! See the License for the specific language governing permissions
+  ! and limitations under the License.
+  !
+  ! If applicable, add the following below this CCPL HEADER, with the fields
+  ! enclosed by brackets &quot;[]&quot; replaced with your own identifying \
information: +  !      Portions Copyright [yyyy] [name of copyright owner]
+  !
+  ! CCPL HEADER END
+  !
+  !      Copyright 2011-2014 ForgeRock AS
+  !
+--&gt;
+&lt;section xml:id=&quot;sec-data-stores-db&quot;
+         xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en'
+         xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+         xsi:schemaLocation='http://docbook.org/ns/docbook
+                             http://docbook.org/xml/5.0/xsd/docbook.xsd'
+         xmlns:xlink='http://www.w3.org/1999/xlink'&gt;
+ &lt;title&gt;Hints for Configuring Database Repository (Early Access) Data \
Stores&lt;/title&gt; +
+ &lt;para&gt;
+  Use these hints when configuring Database Repository (Early Access) Data Stores.
+ &lt;/para&gt;
+
+ &lt;important&gt;
+  &lt;para&gt;
+   This feature is in Early Access,
+   meaning it is not generally supported for use in production environments.
+   If you expect to use a relational database as an identity repository
+   other than for development or testing purposes,
+   first confirm supportability of your configuration with an expert.
+   You can contact ForgeRock at
+   &lt;link xlink:href=&quot;mailto:info@forgerock.com&quot;&gt;info@forgerock.com&lt;/link&gt;.
 +  &lt;/para&gt;
+ &lt;/important&gt;
+
+ &lt;indexterm&gt;
+  &lt;primary&gt;Data stores&lt;/primary&gt;
+  &lt;secondary&gt;Database Repository (Early Access)&lt;/secondary&gt;
+ &lt;/indexterm&gt;
+
+ &lt;para&gt;
+  &lt;command&gt;ssoadm&lt;/command&gt; service name:
+  &lt;literal&gt;sunIdentityRepositoryService&lt;/literal&gt;
+ &lt;/para&gt;
+
+ &lt;variablelist&gt;
+  &lt;varlistentry&gt;
+   &lt;term&gt;Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Name for the data store configuration
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Load schema when finished&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Add the appropriate schema to the database on saving the configuration.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;idRepoLoadSchema&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     false
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Database Data Access Object Plugin Class Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     OpenAM data access implementation
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-dao-class-name&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;com.sun.identity.idm.plugins.database.JdbcSimpleUserDao&lt;/literal&gt;
 +    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Connection Type&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Whether to connect directly to the database,
+     or to connect through JNDI provided by the container where OpenAM runs
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-dao-JDBCConnectionType&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     Connection is retrieved via programmatic connection
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Database DataSource Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Data source name from the container configuration when connecting over JNDI
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-DataSourceJndiName&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;java:comp/env/jdbc/openssousersdb&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;JDBC Driver Class Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Driver class used when connecting directly
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-JDBCDriver&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;com.mysql.jdbc.Driver&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;JDBC Driver URL&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     URL used when connecting directly
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-JDBCUrl&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;jdbc:mysql://127.0.0.1:3306/test&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Connect This User to Database&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Username used when connecting directly
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-JDBCDbuser&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;root&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Password for Connecting to Database&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Password used when connecting directly
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-JDBCDbpassword&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Maximum Results Returned from Search&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     A cap for the number of search results to request.
+     For example when using the Subjects tab to view profiles,
+     even if you set
+     Configuration &gt; Console &gt; Administration &gt; Maximum Results Returned \
from Search +     to a larger number, OpenAM does not exceed this setting.
+     Rather than raise this number,
+     consider narrowing your search to match fewer profiles.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-config-max-result&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     1000
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Database Repository Plugin Class Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     OpenAM identity repository implementation
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoClass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;com.sun.identity.idm.plugins.database.DatabaseRepo&lt;/literal&gt;
 +    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name Mapping&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Map of OpenAM profile attribute names to database column names
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoAttributeMapping&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;iplanet-am-user-account-life=iplanet_am_user_account_life&lt;/literal&gt;,
 +     &lt;literal&gt;iplanet-am-user-alias-list=iplanet_am_user_alias_list&lt;/literal&gt;,
 +     &lt;literal&gt;iplanet-am-user-auth-config=iplanet_am_user_auth_config&lt;/literal&gt;,
 +     &lt;literal&gt;iplanet-am-user-failure-url=iplanet_am_user_failure_url&lt;/literal&gt;,
 +     &lt;literal&gt;iplanet-am-user-password-reset-force-reset=iplanet_am_user_password_reset_force_reset&lt;/literal&gt;,
 +     &lt;literal&gt;iplanet-am-user-password-reset-question-answer=iplanet_am_user_password_reset_question_answer&lt;/literal&gt;,
 +     &lt;literal&gt;iplanet-am-user-password-resetoptions=iplanet_am_user_password_resetoptions&lt;/literal&gt;,
 +     &lt;literal&gt;iplanet-am-user-success-url=iplanet_am_user_success_url&lt;/literal&gt;
 +    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Database Plug-in Supported Types and Operations&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Map of OpenAM operations that can be performed in the specified OpenAM contexts
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-sunIdRepoSupportedOperations&lt;/literal&gt;
 +    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;group=read,create,edit,delete&lt;/literal&gt;,
+     &lt;literal&gt;user=read,create,edit,delete,service&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Database User Table Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Table to store user profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-UserTableName&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;opensso_users&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;List of User Attributes Names in Database&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Columns for user profile attributes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-UserAttrs&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;ChangePassword&lt;/literal&gt;,
+     &lt;literal&gt;cn&lt;/literal&gt;,
+     &lt;literal&gt;employeenumber&lt;/literal&gt;,
+     &lt;literal&gt;givenname&lt;/literal&gt;,
+     &lt;literal&gt;inetuserstatus&lt;/literal&gt;,
+     &lt;literal&gt;iplanet_am_user_account_life&lt;/literal&gt;,
+     &lt;literal&gt;iplanet_am_user_alias_list&lt;/literal&gt;,
+     &lt;literal&gt;iplanet_am_user_auth_config&lt;/literal&gt;,
+     &lt;literal&gt;iplanet_am_user_failure_url&lt;/literal&gt;,
+     &lt;literal&gt;iplanet_am_user_password_reset_force_reset&lt;/literal&gt;,
+     &lt;literal&gt;iplanet_am_user_password_reset_question_answer&lt;/literal&gt;,
+     &lt;literal&gt;iplanet_am_user_password_resetoptions&lt;/literal&gt;,
+     &lt;literal&gt;iplanet_am_user_success_url&lt;/literal&gt;,
+     &lt;literal&gt;mail&lt;/literal&gt;,
+     &lt;literal&gt;manager&lt;/literal&gt;,
+     &lt;literal&gt;postaladdress&lt;/literal&gt;,
+     &lt;literal&gt;preferredlocale&lt;/literal&gt;,
+     &lt;literal&gt;sn&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityMSISDNNumber&lt;/literal&gt;,
+     &lt;literal&gt;telephonenumber&lt;/literal&gt;,
+     &lt;literal&gt;uid&lt;/literal&gt;,
+     &lt;literal&gt;userpassword&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;User Password Attribute Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Column for user passwords
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-UserPasswordAttr&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;userpassword&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;User ID Attribute Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Column for user IDs
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-UserIDAttr&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;uid&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name of User Status&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Column to check/set user status
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-UserStatusAttr&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;inetuserstatus&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;User Status Active Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Active users have the user status set to this value.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-activeValue&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;Active&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;User Status Inactive Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Inactive users have the user status set to this value.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-inactiveValue&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;Inactive&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Users Search Attribute in Database&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Key for looking up user profiles by name
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-config-users-search-attribute&lt;/literal&gt;
 +    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Database Membership table name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Table to store group profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-MembershipTableName&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;groups&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Membership ID Attribute Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Column for group IDs
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-MembershipIDAttr&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;group_name&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Membership Search Attribute in Database&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Key for looking up group profiles by name
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-opensso-database-membership-search-attribute&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+ &lt;/variablelist&gt;
+&lt;/section&gt;
</ins></span></pre></div>
<a id="branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxsharedsecda \
tastoresdseexmlfromrev10288trunkopenamopenamdocumentationopenamdocsourcesrcmaindocbkxsharedsecdatastoresdseexml"></a>
 <div class="copfile"><h4>Copied: \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-dsee.xml \
(from rev 10288, trunk/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-dsee.xml) \
(0 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-dsee.xml	 \
                (rev 0)
+++ branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-dsee.xml	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -0,0 +1,1261 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;!--
+  ! CCPL HEADER START
+  !
+  ! This work is licensed under the Creative Commons
+  ! Attribution-NonCommercial-NoDerivs 3.0 Unported License.
+  ! To view a copy of this license, visit
+  ! http://creativecommons.org/licenses/by-nc-nd/3.0/
+  ! or send a letter to Creative Commons, 444 Castro Street,
+  ! Suite 900, Mountain View, California, 94041, USA.
+  !
+  ! You can also obtain a copy of the license at
+  ! trunk/opendj3/legal-notices/CC-BY-NC-ND.txt.
+  ! See the License for the specific language governing permissions
+  ! and limitations under the License.
+  !
+  ! If applicable, add the following below this CCPL HEADER, with the fields
+  ! enclosed by brackets &quot;[]&quot; replaced with your own identifying \
information: +  !      Portions Copyright [yyyy] [name of copyright owner]
+  !
+  ! CCPL HEADER END
+  !
+  !      Copyright 2011-2014 ForgeRock AS
+  !
+--&gt;
+&lt;section xml:id=&quot;sec-data-stores-dsee&quot;
+         xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en'
+         xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+         xsi:schemaLocation='http://docbook.org/ns/docbook
+                             http://docbook.org/xml/5.0/xsd/docbook.xsd'&gt;
+ &lt;title&gt;Hints for Configuring Sun DS with OpenAM schema Data \
Stores&lt;/title&gt; +
+ &lt;para&gt;
+  Use these hints when configuring Data Stores
+  for Oracle DSEE or Sun DSEE using OpenAM schema.
+ &lt;/para&gt;
+
+ &lt;indexterm&gt;
+  &lt;primary&gt;Data stores&lt;/primary&gt;
+  &lt;secondary&gt;Oracle DSEE&lt;/secondary&gt;
+ &lt;/indexterm&gt;
+
+ &lt;para&gt;
+  &lt;command&gt;ssoadm&lt;/command&gt; service name:
+  &lt;literal&gt;sunIdentityRepositoryService&lt;/literal&gt;
+ &lt;/para&gt;
+
+ &lt;variablelist&gt;
+  &lt;varlistentry&gt;
+   &lt;term&gt;Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Name for the data store configuration
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Load schema when finished&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Add appropriate LDAP schema to the directory server
+     when saving the configuration.
+     The LDAP Bind DN user must have access to perform this operation.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;idRepoLoadSchema&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     false
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Server&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;literal&gt;&lt;replaceable&gt;host&lt;/replaceable&gt;:&lt;replaceable&gt;port&lt;/replaceable&gt;&lt;/literal&gt;
 +     to contact the directory server, with optional
+     &lt;literal&gt;|&lt;replaceable&gt;server_ID&lt;/replaceable&gt;|&lt;replaceable&gt;site_ID&lt;/replaceable&gt;&lt;/literal&gt;
 +     for deployments with multiple servers and sites
+    &lt;/para&gt;
+
+    &lt;orderedlist&gt;
+     &lt;para&gt;
+      OpenAM uses the optional settings to determine
+      which directory server to contact first.
+      OpenAM tries to contact directory servers
+      in the following priority order, with highest priority first.
+     &lt;/para&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       The first directory server in the list
+       whose &lt;replaceable&gt;server_ID&lt;/replaceable&gt;
+       matches the current OpenAM server
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       The first directory server in the list
+       whose &lt;replaceable&gt;site_ID&lt;/replaceable&gt;
+       matches the current OpenAM server
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       The first directory server in the remaining list
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+    &lt;/orderedlist&gt;
+
+    &lt;para&gt;
+     If the directory server is not available,
+     OpenAM proceeds to the next directory server in the list.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-ldap-server&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;&lt;replaceable&gt;host&lt;/replaceable&gt;:&lt;replaceable&gt;port&lt;/replaceable&gt;&lt;/literal&gt;
 +     of the initial directory server configured for this OpenAM server
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Bind DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Bind DN for connecting to the directory server.
+     Some OpenAM capabilities require write access to directory entries.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-authid&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn=dsameuser,ou=DSAME \
Users,&lt;replaceable&gt;base-dn&lt;/replaceable&gt;&lt;/literal&gt; +    \
&lt;/para&gt; +   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Bind Password&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Bind password for connecting to the directory server
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-authpw&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Organization DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     The base DN under which to find user and group profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-organization_name&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;&lt;replaceable&gt;base-dn&lt;/replaceable&gt;&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP SSL/TLS Enabled&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Whether to use LDAPS or StartTLS to connect to the directory server.
+     If you enable SSL/TLS, OpenAM must be able to trust server certificates,
+     either because the server certificates were signed by a CA
+     whose certificate is already included in the trust store
+     used by the container where OpenAM runs,
+     or because you imported the certificates into the trust store.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-ssl-enabled&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     false
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Connection Pool Maximum Size&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Maximum number of connections to the directory server.
+     Make sure the directory service can cope
+     with the maximum number of client connections across all servers.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-connection_pool_max_size&lt;/literal&gt;
 +    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     10
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Connection Heartbeat Interval&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     How often to send a heartbeat request to the directory server
+     to ensure that the connection does not remain idle.
+     Some network administrators configure firewalls
+     and load balancers to drop connections that are idle for too long.
+     You can turn this off by setting the value to 0 or to a negative number.
+     To set the units for the interval use LDAP Connection Heartbeat Time Unit.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;openam-idrepo-ldapv3-heartbeat-interval&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     10
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Connection Heartbeat Time Unit&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Time unit for the LDAP Connection Heartbeat Interval setting
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;openam-idrepo-ldapv3-heartbeat-timeunit&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;second&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Maximum Results Returned from Search&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     A cap for the number of search results to request.
+     For example when using the Subjects tab to view profiles,
+     even if you set
+     Configuration &gt; Console &gt; Administration &gt; Maximum Results Returned \
from Search +     to a larger number, OpenAM does not exceed this setting.
+     Rather than raise this number,
+     consider narrowing your search to match fewer directory entries.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-max-result&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     1000
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Search Timeout&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Maximum time to wait for search results in seconds.
+     Does not apply to persistent searches.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-time-limit&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     10
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAPv3 Plug-in Search Scope&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP searches can apply to a single entry (SCOPE_BASE),
+     entries directly below the search DN (SCOPE_ONE),
+     or all entries below the search DN (SEARCH_SUB)
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-search-scope&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;SCOPE_SUB&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAPv3 Repository Plug-in Class Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     OpenAM identity repository implementation
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoClass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;org.forgerock.openam.idrepo.ldap.DJLDAPv3Repo&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name Mapping&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Map of OpenAM profile attribute names to directory server attribute names
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoAttributeMapping&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAPv3 Plug-in Supported Types and Operations&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Map of OpenAM operations that can be performed in the specified OpenAM contexts
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoSupportedOperations&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;filteredrole=read,create,edit,delete&lt;/literal&gt;,
+     &lt;literal&gt;group=read,create,edit,delete&lt;/literal&gt;,
+     &lt;literal&gt;realm=read,create,edit,delete,service&lt;/literal&gt;,
+     &lt;literal&gt;role=read,create,edit,delete&lt;/literal&gt;,
+     &lt;literal&gt;user=read,create,edit,delete,service&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Users Search Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for a user by name, match values against this attribute
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-users-search-attribute&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;uid&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Users Search Filter&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for users, apply this LDAP search filter as well
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-users-search-filter&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;(objectclass=inetorgperson)&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP People Container Naming Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute of the LDAP base DN which contains user profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-people-container-name&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;ou&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP People Container Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute value of the LDAP base DN which contains user profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-people-container-value&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;people&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP User Object Class&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     User profiles have these LDAP object classes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     OpenAM handles only those attributes listed in this setting.
+     OpenAM discards any unlisted attributes from requests
+     and the request proceeds without the attribute.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     For example, with default settings
+     if you request that OpenAM execute a search that asks for
+     the &lt;literal&gt;mailAlternateAddress&lt;/literal&gt; attribute,
+     OpenAM does the search, but does not request
+     &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;.
+     In the same way, OpenAM does perform an update operation
+     with a request to set the value of an unlisted attribute
+     like &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;,
+     but it drops the unlisted attribute from the update request.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-user-objectclass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;devicePrintProfilesContainer&lt;/literal&gt;,
+     &lt;literal&gt;forgerock-am-dashboard-service&lt;/literal&gt;,
+     &lt;literal&gt;inetadmin&lt;/literal&gt;,
+     &lt;literal&gt;inetorgperson&lt;/literal&gt;,
+     &lt;literal&gt;inetuser&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-auth-configuration-service&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-managed-person&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-service&lt;/literal&gt;,
+     &lt;literal&gt;iPlanetPreferences&lt;/literal&gt;,
+     &lt;literal&gt;organizationalperson&lt;/literal&gt;,
+     &lt;literal&gt;person&lt;/literal&gt;,
+     &lt;literal&gt;sunAMAuthAccountLockout&lt;/literal&gt;,
+     &lt;literal&gt;sunFederationManagerDataStore&lt;/literal&gt;,
+     &lt;literal&gt;sunFMSAML2NameIdentifier&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerLibertyPPService&lt;/literal&gt;,
+     &lt;literal&gt;top&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP User Attributes&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     User profiles have these LDAP attributes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     OpenAM handles only those attributes listed in this setting.
+     OpenAM discards any unlisted attributes from requests
+     and the request proceeds without the attribute.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     For example, with default settings
+     if you request that OpenAM execute a search that asks for
+     the &lt;literal&gt;mailAlternateAddress&lt;/literal&gt; attribute,
+     OpenAM does the search, but does not request
+     &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;.
+     In the same way, OpenAM does perform an update operation
+     with a request to set the value of an unlisted attribute
+     like &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;,
+     but it drops the unlisted attribute from the update request.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-user-attributes&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;sunIdentityServerPPDemographicsBirthDay&lt;/literal&gt;,
+     &lt;literal&gt;uid&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityLegalName&lt;/literal&gt;,
+     &lt;literal&gt;manager&lt;/literal&gt;,
+     &lt;literal&gt;assignedDashboard&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameSN&lt;/literal&gt;,
+     &lt;literal&gt;userPassword&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-get-valid-sessions&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmploymentIdentityJobTitle&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-password-reset-question-answer&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityDOB&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmergencyContact&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameCN&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-success-url&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-admin-start-dn&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-federation-info&lt;/literal&gt;,
+     &lt;literal&gt;userCertificate&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeGreetSound&lt;/literal&gt;,
+     &lt;literal&gt;sunAMAuthInvalidAttemptsData&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeNamePronounced&lt;/literal&gt;,
+     &lt;literal&gt;distinguishedName&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsTimeZone&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityMSISDNNumber&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-max-caching-time&lt;/literal&gt;,
+     &lt;literal&gt;sn&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-quota-limit&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-max-session-time&lt;/literal&gt;,
+     &lt;literal&gt;adminRole&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmploymentIdentityAltO&lt;/literal&gt;,
+     &lt;literal&gt;objectClass&lt;/literal&gt;,
+     &lt;literal&gt;sun-fm-saml2-nameid-info&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityMaritalStatus&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-login-status&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityAltIdType&lt;/literal&gt;,
+     &lt;literal&gt;devicePrintProfiles&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-max-idle-time&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadegreetmesound&lt;/literal&gt;,
+     &lt;literal&gt;cn&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-password-reset-options&lt;/literal&gt;,
+     &lt;literal&gt;telephoneNumber&lt;/literal&gt;,
+     &lt;literal&gt;preferredlanguage&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-federation-info-key&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPMsgContact&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityGender&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-alias-list&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameFN&lt;/literal&gt;,
+     &lt;literal&gt;caCertificate&lt;/literal&gt;,
+     &lt;literal&gt;inetUserStatus&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameMN&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEncryPTKey&lt;/literal&gt;,
+     &lt;literal&gt;givenName&lt;/literal&gt;,
+     &lt;literal&gt;memberOf&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-static-group-dn&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityVATIdValue&lt;/literal&gt;,
+     &lt;literal&gt;preferredLocale&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-service-status&lt;/literal&gt;,
+     &lt;literal&gt;sun-fm-saml2-nameid-infokey&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsAge&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerDiscoEntries&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityVATIdType&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-auth-config&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-failure-url&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPAddressCard&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNamePT&lt;/literal&gt;,
+     &lt;literal&gt;dn&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-add-session-listener-on-all-sessions&lt;/literal&gt;,
 +     &lt;literal&gt;mail&lt;/literal&gt;,
+     &lt;literal&gt;authorityRevocationList&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-password-reset-force-reset&lt;/literal&gt;,
+     &lt;literal&gt;inetUserHttpURL&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityAltIdValue&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameAltCN&lt;/literal&gt;,
+     &lt;literal&gt;preferredtimezone&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPInformalName&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPSignKey&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmploymentIdentityOrg&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-destroy-sessions&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeMugShot&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeWebSite&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsDisplayLanguage&lt;/literal&gt;,
+     &lt;literal&gt;postalAddress&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-auth-configuration&lt;/literal&gt;,
+     &lt;literal&gt;employeeNumber&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-auth-modules&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-account-life&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsLanguage&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Create User Attribute Mapping&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When creating a user profile,
+     apply this map of OpenAM profile attribute names
+     to directory server attribute names.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Attributes not mapped to another attribute
+     (for example, &lt;literal&gt;cn&lt;/literal&gt;)
+     and attributes mapped to themselves
+     (for example, &lt;literal&gt;cn=cn&lt;/literal&gt;)
+     take the value of the username
+     unless the attribute values are provided when creating the profile.
+     The object classes for user profile LDAP entries
+     generally require Common Name (cn) and Surname (sn) attributes,
+     so this prevents an LDAP constraint violation
+     when performing the add operation.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-createuser-attr-mapping&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;,
+     &lt;literal&gt;sn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name of User Status&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Attribute to check/set user status
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-isactive&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;inetuserstatus&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;User Status Active Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Active users have the user status attribute set to this value.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-active&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;Active&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;User Status Inactive Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Inactive users have the user status attribute set to this value.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-inactive&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;Inactive&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Authentication Naming Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute for building the bind DN when given a username and password
+     to authenticate a user against the directory server
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-auth-naming-attr&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;uid&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Search Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for a group by name, match values against this attribute
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-groups-search-attribute&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Search Filter&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for groups, apply this LDAP search filter as well
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-groups-search-filter&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;(objectclass=groupOfUniqueNames)&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Container Naming Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute of the LDAP base DN which contains group profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-container-name&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;ou&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Container Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute value of the LDAP base DN which contains group profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-container-value&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;groups&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Object Class&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Group profiles have these LDAP object classes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-objectclass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;groupofuniquenames&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-managed-group&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-managed-static-group&lt;/literal&gt;,
+     &lt;literal&gt;groupofurls&lt;/literal&gt;,
+     &lt;literal&gt;top&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Attributes&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Group profiles have these LDAP attributes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-attributes&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-group-subscribable&lt;/literal&gt;,
+     &lt;literal&gt;dn&lt;/literal&gt;,
+     &lt;literal&gt;objectclass&lt;/literal&gt;,
+     &lt;literal&gt;uniqueMember&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name for Group Membership&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP attribute in the member's LDAP entry
+     whose values are the groups to which a member belongs
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-memberof&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name of Unique Member&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Attribute in the group's LDAP entry
+     whose values are the members of the group
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-uniquemember&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;uniqueMember&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name of Group Member URL&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Attribute in the dynamic group's LDAP entry
+     whose values are LDAP URLs specifying members of the group
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-memberurl&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;memberUrl&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Roles Search Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for a role by name, match values against this attribute
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-roles-search-attribute&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Roles Search Filter&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for roles, apply this LDAP search filter as well
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-roles-search-filter&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;(&amp;amp;(objectclass=ldapsubentry)(objectclass=nsmanagedroledefinition))&lt;/literal&gt;
 +    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Roles Object Class&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Role profiles have these LDAP object classes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-role-objectclass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;ldapsubentry&lt;/literal&gt;,
+     &lt;literal&gt;nsmanagedroledefinition&lt;/literal&gt;,
+     &lt;literal&gt;nsroledefinition&lt;/literal&gt;,
+     &lt;literal&gt;nssimpleroledefinition&lt;/literal&gt;,
+     &lt;literal&gt;top&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Filter Roles Search Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for a filtered role by name, match values against this attribute
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-filterroles-search-attribute&lt;/literal&gt;
 +    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Filter Roles Search Filter&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for filtered roles, apply this LDAP search filter as well
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-filterroles-search-filter&lt;/literal&gt;
 +    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;(&amp;amp;(objectclass=ldapsubentry)(objectclass=nsfilteredroledefinition))&lt;/literal&gt;
 +    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Filter Roles Object Class&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Filtered role profiles have these LDAP object classes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-filterrole-objectclass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;ldapsubentry&lt;/literal&gt;,
+     &lt;literal&gt;nscomplexroledefinition&lt;/literal&gt;,
+     &lt;literal&gt;nsfilteredroledefinition&lt;/literal&gt;,
+     &lt;literal&gt;nsroledefinition&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Filter Roles Attributes&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Filtered role profiles have these LDAP attributes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-filterrole-attributes&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;nsRoleFilter&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name for Filtered Role Membership&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP attribute in the member's LDAP entry
+     whose values are the filtered roles to which a member belongs
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-nsrole&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;nsrole&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name of Role Membership&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP attribute in the member's LDAP entry
+     whose values are the roles to which a member belongs
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-nsroledn&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;nsRoleDN&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name of Filtered Role Filter&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP attribute whose values are the filters for filtered roles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-nsrolefilter&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;nsRoleFilter&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Persistent Search Base DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Base DN for LDAP persistent searches used
+     to receive notification of changes in directory server data
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-psearchbase&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;&lt;replaceable&gt;base-dn&lt;/replaceable&gt;&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Persistent Search Filter&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP filter to apply when performing persistent searches
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-psearch-filter&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;(objectclass=*)&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Persistent Search Scope&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP searches can apply to a single entry (SCOPE_BASE),
+     entries directly below the search DN (SCOPE_ONE),
+     or all entries below the search DN (SEARCH_SUB)
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-psearch-scope&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;SCOPE_SUB&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;The Delay Time Between Retries&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     How long to wait after receiving an error result
+     that indicates OpenAM should try the LDAP operation again
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;com.iplanet.am.ldap.connection.delay.between.retries&lt;/literal&gt;
 +    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     1000 milliseconds
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;DN Cache Enabled&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Whether to enable the DN cache, which is used to cache DN lookups
+     that can happen in bursts during authentication.
+     As the cache can become stale when a user is moved or renamed,
+     enable DN caching when the directory service allows move/rename operations (Mod \
DN), +     and when OpenAM uses persistent searches to obtain notification of such \
updates. +    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-dncache-enabled&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     true
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;DN Cache Size&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Maximum number of DNs cached when caching is enabled
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-dncache-size&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     1500 items
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+ &lt;/variablelist&gt;
+&lt;/section&gt;
</ins></span></pre></div>
<a id="branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxsharedsecda \
tastoresgenericldapv3xmlfromrev10288trunkopenamopenamdocumentationopenamdocsourcesrcmaindocbkxsharedsecdatastoresgenericldapv3xml"></a>
 <div class="copfile"><h4>Copied: \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-generic-ldapv3.xml \
(from rev 10288, trunk/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-generic-ldapv3.xml) \
(0 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-generic-ldapv3.xml	 \
                (rev 0)
+++ branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-generic-ldapv3.xml	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -0,0 +1,978 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;!--
+  ! CCPL HEADER START
+  !
+  ! This work is licensed under the Creative Commons
+  ! Attribution-NonCommercial-NoDerivs 3.0 Unported License.
+  ! To view a copy of this license, visit
+  ! http://creativecommons.org/licenses/by-nc-nd/3.0/
+  ! or send a letter to Creative Commons, 444 Castro Street,
+  ! Suite 900, Mountain View, California, 94041, USA.
+  !
+  ! You can also obtain a copy of the license at
+  ! trunk/opendj3/legal-notices/CC-BY-NC-ND.txt.
+  ! See the License for the specific language governing permissions
+  ! and limitations under the License.
+  !
+  ! If applicable, add the following below this CCPL HEADER, with the fields
+  ! enclosed by brackets &quot;[]&quot; replaced with your own identifying \
information: +  !      Portions Copyright [yyyy] [name of copyright owner]
+  !
+  ! CCPL HEADER END
+  !
+  !      Copyright 2011-2014 ForgeRock AS
+  !
+--&gt;
+&lt;section xml:id=&quot;sec-data-stores-generic-ldapv3&quot;
+         xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en'
+         xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+         xsi:schemaLocation='http://docbook.org/ns/docbook
+                             http://docbook.org/xml/5.0/xsd/docbook.xsd'&gt;
+ &lt;title&gt;Hints for Configuring Generic LDAPv3 Data Stores&lt;/title&gt;
+
+ &lt;para&gt;
+  Use these hints when configuring Generic LDAPv3 compliant Data Stores.
+ &lt;/para&gt;
+
+ &lt;indexterm&gt;
+  &lt;primary&gt;Data stores&lt;/primary&gt;
+  &lt;secondary&gt;Generic LDAPv3&lt;/secondary&gt;
+ &lt;/indexterm&gt;
+
+ &lt;para&gt;
+  &lt;command&gt;ssoadm&lt;/command&gt; service name:
+  &lt;literal&gt;sunIdentityRepositoryService&lt;/literal&gt;
+ &lt;/para&gt;
+
+ &lt;variablelist&gt;
+  &lt;varlistentry&gt;
+   &lt;term&gt;Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Name for the data store configuration
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Load schema when finished&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Add appropriate LDAP schema to the directory server
+     when saving the configuration.
+     The LDAP Bind DN user must have access to perform this operation.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;idRepoLoadSchema&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     false
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Server&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;literal&gt;&lt;replaceable&gt;host&lt;/replaceable&gt;:&lt;replaceable&gt;port&lt;/replaceable&gt;&lt;/literal&gt;
 +     to contact the directory server, with optional
+     &lt;literal&gt;|&lt;replaceable&gt;server_ID&lt;/replaceable&gt;|&lt;replaceable&gt;site_ID&lt;/replaceable&gt;&lt;/literal&gt;
 +     for deployments with multiple servers and sites
+    &lt;/para&gt;
+
+    &lt;orderedlist&gt;
+     &lt;para&gt;
+      OpenAM uses the optional settings to determine
+      which directory server to contact first.
+      OpenAM tries to contact directory servers
+      in the following priority order, with highest priority first.
+     &lt;/para&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       The first directory server in the list
+       whose &lt;replaceable&gt;server_ID&lt;/replaceable&gt;
+       matches the current OpenAM server
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       The first directory server in the list
+       whose &lt;replaceable&gt;site_ID&lt;/replaceable&gt;
+       matches the current OpenAM server
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       The first directory server in the remaining list
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+    &lt;/orderedlist&gt;
+
+    &lt;para&gt;
+     If the directory server is not available,
+     OpenAM proceeds to the next directory server in the list.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-ldap-server&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;&lt;replaceable&gt;host&lt;/replaceable&gt;:&lt;replaceable&gt;port&lt;/replaceable&gt;&lt;/literal&gt;
 +     of the initial directory server configured for this OpenAM server
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Bind DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Bind DN for connecting to the directory server.
+     Some OpenAM capabilities require write access to directory entries.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-authid&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Bind Password&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Bind password for connecting to the directory server
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-authpw&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Organization DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     The base DN under which to find user and group profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-organization_name&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;&lt;replaceable&gt;base-dn&lt;/replaceable&gt;&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP SSL/TLS Enabled&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Whether to use LDAPS or StartTLS to connect to the directory server.
+     If you enable SSL/TLS, OpenAM must be able to trust server certificates,
+     either because the server certificates were signed by a CA
+     whose certificate is already included in the trust store
+     used by the container where OpenAM runs,
+     or because you imported the certificates into the trust store.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-ssl-enabled&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     false
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Connection Pool Maximum Size&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Maximum number of connections to the directory server.
+     Make sure the directory service can cope
+     with the maximum number of client connections across all servers.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-connection_pool_max_size&lt;/literal&gt;
 +    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     10
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Connection Heartbeat Interval&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     How often to send a heartbeat request to the directory server
+     to ensure that the connection does not remain idle.
+     Some network administrators configure firewalls
+     and load balancers to drop connections that are idle for too long.
+     You can turn this off by setting the value to 0 or to a negative number.
+     To set the units for the interval use LDAP Connection Heartbeat Time Unit.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;openam-idrepo-ldapv3-heartbeat-interval&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     10
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Connection Heartbeat Time Unit&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Time unit for the LDAP Connection Heartbeat Interval setting
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;openam-idrepo-ldapv3-heartbeat-timeunit&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;second&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Maximum Results Returned from Search&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     A cap for the number of search results to request.
+     For example when using the Subjects tab to view profiles,
+     even if you set
+     Configuration &gt; Console &gt; Administration &gt; Maximum Results Returned \
from Search +     to a larger number, OpenAM does not exceed this setting.
+     Rather than raise this number,
+     consider narrowing your search to match fewer directory entries.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-max-result&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     1000
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Search Timeout&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Maximum time to wait for search results in seconds.
+     Does not apply to persistent searches.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-time-limit&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     10
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAPv3 Plug-in Search Scope&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP searches can apply to a single entry (SCOPE_BASE),
+     entries directly below the search DN (SCOPE_ONE),
+     or all entries below the search DN (SEARCH_SUB)
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-search-scope&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;SCOPE_SUB&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAPv3 Repository Plug-in Class Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     OpenAM identity repository implementation
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoClass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;org.forgerock.openam.idrepo.ldap.DJLDAPv3Repo&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name Mapping&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Map of OpenAM profile attribute names to directory server attribute names
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoAttributeMapping&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAPv3 Plug-in Supported Types and Operations&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Map of OpenAM operations that can be performed in the specified OpenAM contexts
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoSupportedOperations&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;realm=read,create,edit,delete,service&lt;/literal&gt;,
+     &lt;literal&gt;user=read,create,edit,delete&lt;/literal&gt;,
+     &lt;literal&gt;group=read,create,edit,delete&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Users Search Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for a user by name, match values against this attribute
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-users-search-attribute&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;uid&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Users Search Filter&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for users, apply this LDAP search filter as well
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-users-search-filter&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;(objectclass=inetorgperson)&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP People Container Naming Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute of the LDAP base DN which contains user profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-people-container-name&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP People Container Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute value of the LDAP base DN which contains user profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-people-container-value&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP User Object Class&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     User profiles have these LDAP object classes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     OpenAM handles only those attributes listed in this setting.
+     OpenAM discards any unlisted attributes from requests
+     and the request proceeds without the attribute.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     For example, with default settings
+     if you request that OpenAM execute a search that asks for
+     the &lt;literal&gt;mailAlternateAddress&lt;/literal&gt; attribute,
+     OpenAM does the search, but does not request
+     &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;.
+     In the same way, OpenAM does perform an update operation
+     with a request to set the value of an unlisted attribute
+     like &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;,
+     but it drops the unlisted attribute from the update request.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-user-objectclass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;inetorgperson&lt;/literal&gt;,
+     &lt;literal&gt;inetUser&lt;/literal&gt;,
+     &lt;literal&gt;organizationalPerson&lt;/literal&gt;,
+     &lt;literal&gt;person&lt;/literal&gt;,
+     &lt;literal&gt;top&lt;/literal&gt;,
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP User Attributes&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     User profiles have these LDAP attributes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     OpenAM handles only those attributes listed in this setting.
+     OpenAM discards any unlisted attributes from requests
+     and the request proceeds without the attribute.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     For example, with default settings
+     if you request that OpenAM execute a search that asks for
+     the &lt;literal&gt;mailAlternateAddress&lt;/literal&gt; attribute,
+     OpenAM does the search, but does not request
+     &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;.
+     In the same way, OpenAM does perform an update operation
+     with a request to set the value of an unlisted attribute
+     like &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;,
+     but it drops the unlisted attribute from the update request.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-user-attributes&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;uid&lt;/literal&gt;,
+     &lt;literal&gt;caCertificate&lt;/literal&gt;,
+     &lt;literal&gt;authorityRevocationList&lt;/literal&gt;,
+     &lt;literal&gt;inetUserStatus&lt;/literal&gt;,
+     &lt;literal&gt;mail&lt;/literal&gt;,
+     &lt;literal&gt;sn&lt;/literal&gt;,
+     &lt;literal&gt;manager&lt;/literal&gt;,
+     &lt;literal&gt;userPassword&lt;/literal&gt;,
+     &lt;literal&gt;adminRole&lt;/literal&gt;,
+     &lt;literal&gt;objectClass&lt;/literal&gt;,
+     &lt;literal&gt;givenName&lt;/literal&gt;,
+     &lt;literal&gt;memberOf&lt;/literal&gt;,
+     &lt;literal&gt;cn&lt;/literal&gt;,
+     &lt;literal&gt;telephoneNumber&lt;/literal&gt;,
+     &lt;literal&gt;preferredlanguage&lt;/literal&gt;,
+     &lt;literal&gt;userCertificate&lt;/literal&gt;,
+     &lt;literal&gt;postalAddress&lt;/literal&gt;,
+     &lt;literal&gt;dn&lt;/literal&gt;,
+     &lt;literal&gt;employeeNumber&lt;/literal&gt;,
+     &lt;literal&gt;distinguishedName&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Create User Attribute Mapping&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When creating a user profile,
+     apply this map of OpenAM profile attribute names
+     to directory server attribute names.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Attributes not mapped to another attribute
+     (for example, &lt;literal&gt;cn&lt;/literal&gt;)
+     and attributes mapped to themselves
+     (for example, &lt;literal&gt;cn=cn&lt;/literal&gt;)
+     take the value of the username
+     unless the attribute values are provided when creating the profile.
+     The object classes for user profile LDAP entries
+     generally require Common Name (cn) and Surname (sn) attributes,
+     so this prevents an LDAP constraint violation
+     when performing the add operation.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-createuser-attr-mapping&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;, &lt;literal&gt;sn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name of User Status&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Attribute to check/set user status
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-isactive&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;inetuserstatus&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;User Status Active Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Active users have the user status attribute set to this value.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-active&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;Active&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;User Status Inactive Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Inactive users have the user status attribute set to this value.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-inactive&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;Inactive&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Authentication Naming Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute for building the bind DN when given a username and password
+     to authenticate a user against the directory server
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-auth-naming-attr&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;uid&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Search Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for a group by name, match values against this attribute
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-groups-search-attribute&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Search Filter&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for groups, apply this LDAP search filter as well
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-groups-search-filter&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;(objectclass=groupOfUniqueNames)&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Container Naming Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute of the LDAP base DN which contains group profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-container-name&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;ou&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Container Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute value of the LDAP base DN which contains group profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-container-value&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;groups&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Object Class&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Group profiles have these LDAP object classes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-objectclass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;groupofuniquenames&lt;/literal&gt;,
+     &lt;literal&gt;top&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Attributes&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Group profiles have these LDAP attributes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-attributes&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;ou&lt;/literal&gt;,
+     &lt;literal&gt;cn&lt;/literal&gt;,
+     &lt;literal&gt;description&lt;/literal&gt;,
+     &lt;literal&gt;dn&lt;/literal&gt;,
+     &lt;literal&gt;objectclass&lt;/literal&gt;,
+     &lt;literal&gt;uniqueMember&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name for Group Membership&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP attribute in the member's LDAP entry
+     whose values are the groups to which a member belongs
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-memberof&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name of Unique Member&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Attribute in the group's LDAP entry
+     whose values are the members of the group
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-uniquemember&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;uniqueMember&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name of Group Member URL&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Attribute in the dynamic group's LDAP entry
+     whose value is a URL specifying the members of the group
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-memberurl&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;memberUrl&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Default Group Member's User DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     DN of member added to all newly created groups
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-dftgroupmember&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Persistent Search Base DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Base DN for LDAP persistent searches used
+     to receive notification of changes in directory server data
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-psearchbase&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;&lt;replaceable&gt;base-dn&lt;/replaceable&gt;&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Persistent Search Filter&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP filter to apply when performing persistent searches
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-psearch-filter&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;(objectclass=*)&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Persistent Search Scope&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP searches can apply to a single entry (SCOPE_BASE),
+     entries directly below the search DN (SCOPE_ONE),
+     or all entries below the search DN (SEARCH_SUB)
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-psearch-scope&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;SCOPE_SUB&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;The Delay Time Between Retries&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     How long to wait after receiving an error result
+     that indicates OpenAM should try the LDAP operation again
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;com.iplanet.am.ldap.connection.delay.between.retries&lt;/literal&gt;
 +    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     1000 milliseconds
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;DN Cache Enabled&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Whether to enable the DN cache, which is used to cache DN lookups
+     that can happen in bursts during authentication.
+     As the cache can become stale when a user is moved or renamed,
+     enable DN caching when the directory service allows move/rename operations (Mod \
DN), +     and when OpenAM uses persistent searches to obtain notification of such \
updates. +    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-dncache-enabled&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     false
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;DN Cache Size&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Maximum number of DNs cached when caching is enabled
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-dncache-size&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     1500 items
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+ &lt;/variablelist&gt;
+&lt;/section&gt;
</ins></span></pre></div>
<a id="branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxsharedsecda \
tastoresopendjxmlfromrev10288trunkopenamopenamdocumentationopenamdocsourcesrcmaindocbkxsharedsecdatastoresopendjxml"></a>
 <div class="copfile"><h4>Copied: \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-opendj.xml \
(from rev 10288, trunk/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-opendj.xml) \
(0 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-opendj.xml	 \
                (rev 0)
+++ branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-opendj.xml	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -0,0 +1,1031 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;!--
+  ! CCPL HEADER START
+  !
+  ! This work is licensed under the Creative Commons
+  ! Attribution-NonCommercial-NoDerivs 3.0 Unported License.
+  ! To view a copy of this license, visit
+  ! http://creativecommons.org/licenses/by-nc-nd/3.0/
+  ! or send a letter to Creative Commons, 444 Castro Street,
+  ! Suite 900, Mountain View, California, 94041, USA.
+  !
+  ! You can also obtain a copy of the license at
+  ! trunk/opendj3/legal-notices/CC-BY-NC-ND.txt.
+  ! See the License for the specific language governing permissions
+  ! and limitations under the License.
+  !
+  ! If applicable, add the following below this CCPL HEADER, with the fields
+  ! enclosed by brackets &quot;[]&quot; replaced with your own identifying \
information: +  !      Portions Copyright [yyyy] [name of copyright owner]
+  !
+  ! CCPL HEADER END
+  !
+  !      Copyright 2011-2014 ForgeRock AS
+  !
+--&gt;
+&lt;section xml:id=&quot;sec-data-stores-opendj&quot;
+         xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en'
+         xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+         xsi:schemaLocation='http://docbook.org/ns/docbook
+                             http://docbook.org/xml/5.0/xsd/docbook.xsd'&gt;
+ &lt;title&gt;Hints for Configuring OpenDJ Data Stores&lt;/title&gt;
+
+ &lt;para&gt;
+  Use these hints when configuring OpenDJ Data Stores.
+ &lt;/para&gt;
+
+ &lt;indexterm&gt;
+  &lt;primary&gt;Data stores&lt;/primary&gt;
+  &lt;secondary&gt;OpenDJ&lt;/secondary&gt;
+ &lt;/indexterm&gt;
+
+ &lt;para&gt;
+  &lt;command&gt;ssoadm&lt;/command&gt; service name:
+  &lt;literal&gt;sunIdentityRepositoryService&lt;/literal&gt;
+ &lt;/para&gt;
+
+ &lt;variablelist&gt;
+  &lt;varlistentry&gt;
+   &lt;term&gt;Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Name for the data store configuration
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Load schema when finished&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Add appropriate LDAP schema to the directory server
+     when saving the configuration.
+     The LDAP Bind DN user must have access to perform this operation.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;idRepoLoadSchema&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     false
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Server&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;literal&gt;&lt;replaceable&gt;host&lt;/replaceable&gt;:&lt;replaceable&gt;port&lt;/replaceable&gt;&lt;/literal&gt;
 +     to contact the directory server, with optional
+     &lt;literal&gt;|&lt;replaceable&gt;server_ID&lt;/replaceable&gt;|&lt;replaceable&gt;site_ID&lt;/replaceable&gt;&lt;/literal&gt;
 +     for deployments with multiple servers and sites
+    &lt;/para&gt;
+
+    &lt;orderedlist&gt;
+     &lt;para&gt;
+      OpenAM uses the optional settings to determine
+      which directory server to contact first.
+      OpenAM tries to contact directory servers
+      in the following priority order, with highest priority first.
+     &lt;/para&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       The first directory server in the list
+       whose &lt;replaceable&gt;server_ID&lt;/replaceable&gt;
+       matches the current OpenAM server
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       The first directory server in the list
+       whose &lt;replaceable&gt;site_ID&lt;/replaceable&gt;
+       matches the current OpenAM server
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       The first directory server in the remaining list
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+    &lt;/orderedlist&gt;
+
+    &lt;para&gt;
+     If the directory server is not available,
+     OpenAM proceeds to the next directory server in the list.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-ldap-server&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;&lt;replaceable&gt;host&lt;/replaceable&gt;:&lt;replaceable&gt;port&lt;/replaceable&gt;&lt;/literal&gt;
 +     of the initial directory server configured for this OpenAM server
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Bind DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Bind DN for connecting to the directory server.
+     Some OpenAM capabilities require write access to directory entries.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-authid&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Bind Password&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Bind password for connecting to the directory server
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-authpw&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Organization DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     The base DN under which to find user and group profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-organization_name&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;&lt;replaceable&gt;base-dn&lt;/replaceable&gt;&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP SSL/TLS Enabled&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Whether to use LDAPS or StartTLS to connect to the directory server.
+     If you enable SSL/TLS, OpenAM must be able to trust server certificates,
+     either because the server certificates were signed by a CA
+     whose certificate is already included in the trust store
+     used by the container where OpenAM runs,
+     or because you imported the certificates into the trust store.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-ssl-enabled&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     false
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Connection Pool Maximum Size&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Maximum number of connections to the directory server.
+     Make sure the directory service can cope
+     with the maximum number of client connections across all servers.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-connection_pool_max_size&lt;/literal&gt;
 +    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     10
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Connection Heartbeat Interval&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     How often to send a heartbeat request to the directory server
+     to ensure that the connection does not remain idle.
+     Some network administrators configure firewalls
+     and load balancers to drop connections that are idle for too long.
+     You can turn this off by setting the value to 0 or to a negative number.
+     To set the units for the interval use LDAP Connection Heartbeat Time Unit.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;openam-idrepo-ldapv3-heartbeat-interval&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     10
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Connection Heartbeat Time Unit&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Time unit for the LDAP Connection Heartbeat Interval setting
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;openam-idrepo-ldapv3-heartbeat-timeunit&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;second&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Maximum Results Returned from Search&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     A cap for the number of search results to request.
+     For example when using the Subjects tab to view profiles,
+     even if you set
+     Configuration &gt; Console &gt; Administration &gt; Maximum Results Returned \
from Search +     to a larger number, OpenAM does not exceed this setting.
+     Rather than raise this number,
+     consider narrowing your search to match fewer directory entries.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-max-result&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     1000
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Search Timeout&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Maximum time to wait for search results in seconds.
+     Does not apply to persistent searches.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-time-limit&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     10
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAPv3 Plug-in Search Scope&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP searches can apply to a single entry (SCOPE_BASE),
+     entries directly below the search DN (SCOPE_ONE),
+     or all entries below the search DN (SEARCH_SUB)
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-search-scope&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;SCOPE_SUB&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAPv3 Repository Plug-in Class Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     OpenAM identity repository implementation
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoClass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;org.forgerock.openam.idrepo.ldap.DJLDAPv3Repo&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name Mapping&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Map of OpenAM profile attribute names to directory server attribute names
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoAttributeMapping&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAPv3 Plug-in Supported Types and Operations&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Map of OpenAM operations that can be performed in the specified OpenAM contexts
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoSupportedOperations&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;realm=read,create,edit,delete,service&lt;/literal&gt;,
+     &lt;literal&gt;user=read,create,edit,delete&lt;/literal&gt;,
+     &lt;literal&gt;group=read,create,edit,delete&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Users Search Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for a user by name, match values against this attribute
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-users-search-attribute&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;uid&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Users Search Filter&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for users, apply this LDAP search filter as well
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-users-search-filter&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;(objectclass=inetorgperson)&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP People Container Naming Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute of the LDAP base DN which contains user profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-people-container-name&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;ou&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP People Container Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute value of the LDAP base DN which contains user profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-people-container-value&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;people&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP User Object Class&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     User profiles have these LDAP object classes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     OpenAM handles only those attributes listed in this setting.
+     OpenAM discards any unlisted attributes from requests
+     and the request proceeds without the attribute.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     For example, with default settings
+     if you request that OpenAM execute a search that asks for
+     the &lt;literal&gt;mailAlternateAddress&lt;/literal&gt; attribute,
+     OpenAM does the search, but does not request
+     &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;.
+     In the same way, OpenAM does perform an update operation
+     with a request to set the value of an unlisted attribute
+     like &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;,
+     but it drops the unlisted attribute from the update request.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-user-objectclass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;devicePrintProfilesContainer&lt;/literal&gt;,
+     &lt;literal&gt;forgerock-am-dashboard-service&lt;/literal&gt;,
+     &lt;literal&gt;inetorgperson&lt;/literal&gt;,
+     &lt;literal&gt;inetuser&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-auth-configuration-service&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-managed-person&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-service&lt;/literal&gt;,
+     &lt;literal&gt;iPlanetPreferences&lt;/literal&gt;,
+     &lt;literal&gt;organizationalperson&lt;/literal&gt;,
+     &lt;literal&gt;person&lt;/literal&gt;,
+     &lt;literal&gt;sunAMAuthAccountLockout&lt;/literal&gt;,
+     &lt;literal&gt;sunFederationManagerDataStore&lt;/literal&gt;,
+     &lt;literal&gt;sunFMSAML2NameIdentifier&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerLibertyPPService&lt;/literal&gt;,
+     &lt;literal&gt;top&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP User Attributes&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     User profiles have these LDAP attributes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     OpenAM handles only those attributes listed in this setting.
+     OpenAM discards any unlisted attributes from requests
+     and the request proceeds without the attribute.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     For example, with default settings
+     if you request that OpenAM execute a search that asks for
+     the &lt;literal&gt;mailAlternateAddress&lt;/literal&gt; attribute,
+     OpenAM does the search, but does not request
+     &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;.
+     In the same way, OpenAM does perform an update operation
+     with a request to set the value of an unlisted attribute
+     like &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;,
+     but it drops the unlisted attribute from the update request.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-user-attributes&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;sunIdentityServerPPDemographicsBirthDay&lt;/literal&gt;,
+     &lt;literal&gt;uid&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityLegalName&lt;/literal&gt;,
+     &lt;literal&gt;manager&lt;/literal&gt;,
+     &lt;literal&gt;assignedDashboard&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameSN&lt;/literal&gt;,
+     &lt;literal&gt;userPassword&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-get-valid-sessions&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmploymentIdentityJobTitle&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-password-reset-question-answer&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityDOB&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmergencyContact&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameCN&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-success-url&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-admin-start-dn&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-federation-info&lt;/literal&gt;,
+     &lt;literal&gt;userCertificate&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeGreetSound&lt;/literal&gt;,
+     &lt;literal&gt;sunAMAuthInvalidAttemptsData&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeNamePronounced&lt;/literal&gt;,
+     &lt;literal&gt;distinguishedName&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsTimeZone&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityMSISDNNumber&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-max-caching-time&lt;/literal&gt;,
+     &lt;literal&gt;sn&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-quota-limit&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-max-session-time&lt;/literal&gt;,
+     &lt;literal&gt;adminRole&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmploymentIdentityAltO&lt;/literal&gt;,
+     &lt;literal&gt;objectClass&lt;/literal&gt;,
+     &lt;literal&gt;sun-fm-saml2-nameid-info&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityMaritalStatus&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-login-status&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityAltIdType&lt;/literal&gt;,
+     &lt;literal&gt;devicePrintProfiles&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-max-idle-time&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadegreetmesound&lt;/literal&gt;,
+     &lt;literal&gt;cn&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-password-reset-options&lt;/literal&gt;,
+     &lt;literal&gt;telephoneNumber&lt;/literal&gt;,
+     &lt;literal&gt;preferredlanguage&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-federation-info-key&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPMsgContact&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityGender&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-alias-list&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameFN&lt;/literal&gt;,
+     &lt;literal&gt;caCertificate&lt;/literal&gt;,
+     &lt;literal&gt;inetUserStatus&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameMN&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEncryPTKey&lt;/literal&gt;,
+     &lt;literal&gt;givenName&lt;/literal&gt;,
+     &lt;literal&gt;memberOf&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityVATIdValue&lt;/literal&gt;,
+     &lt;literal&gt;preferredLocale&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-service-status&lt;/literal&gt;,
+     &lt;literal&gt;sun-fm-saml2-nameid-infokey&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsAge&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerDiscoEntries&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityVATIdType&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-auth-config&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-failure-url&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPAddressCard&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNamePT&lt;/literal&gt;,
+     &lt;literal&gt;dn&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-add-session-listener-on-all-sessions&lt;/literal&gt;,
 +     &lt;literal&gt;mail&lt;/literal&gt;,
+     &lt;literal&gt;authorityRevocationList&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-password-reset-force-reset&lt;/literal&gt;,
+     &lt;literal&gt;inetUserHttpURL&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityAltIdValue&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameAltCN&lt;/literal&gt;,
+     &lt;literal&gt;preferredtimezone&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPInformalName&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPSignKey&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmploymentIdentityOrg&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-destroy-sessions&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeMugShot&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeWebSite&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsDisplayLanguage&lt;/literal&gt;,
+     &lt;literal&gt;postalAddress&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-auth-configuration&lt;/literal&gt;,
+     &lt;literal&gt;employeeNumber&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-account-life&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-auth-modules&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsLanguage&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Create User Attribute Mapping&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When creating a user profile,
+     apply this map of OpenAM profile attribute names
+     to directory server attribute names.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Attributes not mapped to another attribute
+     (for example, &lt;literal&gt;cn&lt;/literal&gt;)
+     and attributes mapped to themselves
+     (for example, &lt;literal&gt;cn=cn&lt;/literal&gt;)
+     take the value of the username
+     unless the attribute values are provided when creating the profile.
+     The object classes for user profile LDAP entries
+     generally require Common Name (cn) and Surname (sn) attributes,
+     so this prevents an LDAP constraint violation
+     when performing the add operation.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-createuser-attr-mapping&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;, &lt;literal&gt;sn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name of User Status&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Attribute to check/set user status
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-isactive&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;inetuserstatus&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;User Status Active Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Active users have the user status attribute set to this value.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-active&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;Active&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;User Status Inactive Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Inactive users have the user status attribute set to this value.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-inactive&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;Inactive&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Authentication Naming Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute for building the bind DN when given a username and password
+     to authenticate a user against the directory server
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-auth-naming-attr&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;uid&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Search Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for a group by name, match values against this attribute
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-groups-search-attribute&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Search Filter&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for groups, apply this LDAP search filter as well
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-groups-search-filter&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;(objectclass=groupOfUniqueNames)&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Container Naming Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute of the LDAP base DN which contains group profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-container-name&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;ou&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Container Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute value of the LDAP base DN which contains group profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-container-value&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;groups&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Object Class&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Group profiles have these LDAP object classes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-objectclass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;groupofuniquenames&lt;/literal&gt;,
+     &lt;literal&gt;top&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Attributes&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Group profiles have these LDAP attributes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-attributes&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;,
+     &lt;literal&gt;dn&lt;/literal&gt;,
+     &lt;literal&gt;objectclass&lt;/literal&gt;,
+     &lt;literal&gt;uniqueMember&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name for Group Membership&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP attribute in the member's LDAP entry
+     whose values are the groups to which a member belongs
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-memberof&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name of Unique Member&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Attribute in the group's LDAP entry
+     whose values are the members of the group
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-uniquemember&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;uniqueMember&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Persistent Search Base DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Base DN for LDAP persistent searches used
+     to receive notification of changes in directory server data
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-psearchbase&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;&lt;replaceable&gt;base-dn&lt;/replaceable&gt;&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Persistent Search Filter&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP filter to apply when performing persistent searches
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-psearch-filter&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;(objectclass=*)&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Persistent Search Scope&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP searches can apply to a single entry (SCOPE_BASE),
+     entries directly below the search DN (SCOPE_ONE),
+     or all entries below the search DN (SEARCH_SUB)
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-psearch-scope&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;SCOPE_SUB&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;The Delay Time Between Retries&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     How long to wait after receiving an error result
+     that indicates OpenAM should try the LDAP operation again
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     The OpenDJ data store uses this setting only for persistent searches.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;com.iplanet.am.ldap.connection.delay.between.retries&lt;/literal&gt;
 +    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     1000 milliseconds
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;DN Cache Enabled&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Whether to enable the DN cache, which is used to cache DN lookups
+     that can happen in bursts during authentication.
+     As the cache can become stale when a user is moved or renamed,
+     enable DN caching when the directory service allows move/rename operations (Mod \
DN), +     and when OpenAM uses persistent searches to obtain notification of such \
updates. +    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-dncache-enabled&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     true
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;DN Cache Size&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Maximum number of DNs cached when caching is enabled
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-dncache-size&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     1500 items
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+ &lt;/variablelist&gt;
+&lt;/section&gt;
</ins></span></pre></div>
<a id="branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxsharedsecda \
tastorestivolixmlfromrev10288trunkopenamopenamdocumentationopenamdocsourcesrcmaindocbkxsharedsecdatastorestivolixml"></a>
 <div class="copfile"><h4>Copied: \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-tivoli.xml \
(from rev 10288, trunk/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-tivoli.xml) \
(0 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-tivoli.xml	 \
                (rev 0)
+++ branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/shared/sec-data-stores-tivoli.xml	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -0,0 +1,1032 @@
</span><ins>+&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
+&lt;!--
+  ! CCPL HEADER START
+  !
+  ! This work is licensed under the Creative Commons
+  ! Attribution-NonCommercial-NoDerivs 3.0 Unported License.
+  ! To view a copy of this license, visit
+  ! http://creativecommons.org/licenses/by-nc-nd/3.0/
+  ! or send a letter to Creative Commons, 444 Castro Street,
+  ! Suite 900, Mountain View, California, 94041, USA.
+  !
+  ! You can also obtain a copy of the license at
+  ! trunk/opendj3/legal-notices/CC-BY-NC-ND.txt.
+  ! See the License for the specific language governing permissions
+  ! and limitations under the License.
+  !
+  ! If applicable, add the following below this CCPL HEADER, with the fields
+  ! enclosed by brackets &quot;[]&quot; replaced with your own identifying \
information: +  !      Portions Copyright [yyyy] [name of copyright owner]
+  !
+  ! CCPL HEADER END
+  !
+  !      Copyright 2011-2014 ForgeRock AS
+  !
+--&gt;
+&lt;section xml:id=&quot;sec-data-stores-tivoli&quot;
+         xmlns='http://docbook.org/ns/docbook' version='5.0' xml:lang='en'
+         xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
+         xsi:schemaLocation='http://docbook.org/ns/docbook
+                             http://docbook.org/xml/5.0/xsd/docbook.xsd'&gt;
+ &lt;title&gt;Hints for Configuring Tivoli Directory Server Data \
Stores&lt;/title&gt; +
+ &lt;para&gt;
+  Use these hints when configuring Tivoli Directory Server Data Stores.
+ &lt;/para&gt;
+
+ &lt;indexterm&gt;
+  &lt;primary&gt;Data stores&lt;/primary&gt;
+  &lt;secondary&gt;Tivoli Directory Server&lt;/secondary&gt;
+ &lt;/indexterm&gt;
+
+ &lt;para&gt;
+  &lt;command&gt;ssoadm&lt;/command&gt; service name:
+  &lt;literal&gt;sunIdentityRepositoryService&lt;/literal&gt;
+ &lt;/para&gt;
+
+ &lt;variablelist&gt;
+  &lt;varlistentry&gt;
+   &lt;term&gt;Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Name for the data store configuration
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Load schema when finished&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Add appropriate LDAP schema to the directory server
+     when saving the configuration.
+     The LDAP Bind DN user must have access to perform this operation.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;idRepoLoadSchema&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     false
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Server&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     &lt;literal&gt;&lt;replaceable&gt;host&lt;/replaceable&gt;:&lt;replaceable&gt;port&lt;/replaceable&gt;&lt;/literal&gt;
 +     to contact the directory server, with optional
+     &lt;literal&gt;|&lt;replaceable&gt;server_ID&lt;/replaceable&gt;|&lt;replaceable&gt;site_ID&lt;/replaceable&gt;&lt;/literal&gt;
 +     for deployments with multiple servers and sites
+    &lt;/para&gt;
+
+    &lt;orderedlist&gt;
+     &lt;para&gt;
+      OpenAM uses the optional settings to determine
+      which directory server to contact first.
+      OpenAM tries to contact directory servers
+      in the following priority order, with highest priority first.
+     &lt;/para&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       The first directory server in the list
+       whose &lt;replaceable&gt;server_ID&lt;/replaceable&gt;
+       matches the current OpenAM server
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       The first directory server in the list
+       whose &lt;replaceable&gt;site_ID&lt;/replaceable&gt;
+       matches the current OpenAM server
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
+      &lt;para&gt;
+       The first directory server in the remaining list
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+    &lt;/orderedlist&gt;
+
+    &lt;para&gt;
+     If the directory server is not available,
+     OpenAM proceeds to the next directory server in the list.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-ldap-server&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;&lt;replaceable&gt;host&lt;/replaceable&gt;:&lt;replaceable&gt;port&lt;/replaceable&gt;&lt;/literal&gt;
 +     of the initial directory server configured for this OpenAM server
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Bind DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Bind DN for connecting to the directory server.
+     Some OpenAM capabilities require write access to directory entries.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-authid&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Bind Password&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Bind password for connecting to the directory server
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-authpw&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Organization DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     The base DN under which to find user and group profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-organization_name&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;&lt;replaceable&gt;base-dn&lt;/replaceable&gt;&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP SSL/TLS Enabled&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Whether to use LDAPS or StartTLS to connect to the directory server.
+     If you enable SSL/TLS, OpenAM must be able to trust server certificates,
+     either because the server certificates were signed by a CA
+     whose certificate is already included in the trust store
+     used by the container where OpenAM runs,
+     or because you imported the certificates into the trust store.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-ssl-enabled&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     false
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Connection Pool Maximum Size&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Maximum number of connections to the directory server.
+     Make sure the directory service can cope
+     with the maximum number of client connections across all servers.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-connection_pool_max_size&lt;/literal&gt;
 +    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     10
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Connection Heartbeat Interval&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     How often to send a heartbeat request to the directory server
+     to ensure that the connection does not remain idle.
+     Some network administrators configure firewalls
+     and load balancers to drop connections that are idle for too long.
+     You can turn this off by setting the value to 0 or to a negative number.
+     To set the units for the interval use LDAP Connection Heartbeat Time Unit.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;openam-idrepo-ldapv3-heartbeat-interval&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     10
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Connection Heartbeat Time Unit&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Time unit for the LDAP Connection Heartbeat Interval setting
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;openam-idrepo-ldapv3-heartbeat-timeunit&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;second&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Maximum Results Returned from Search&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     A cap for the number of search results to request.
+     For example when using the Subjects tab to view profiles,
+     even if you set
+     Configuration &gt; Console &gt; Administration &gt; Maximum Results Returned \
from Search +     to a larger number, OpenAM does not exceed this setting.
+     Rather than raise this number,
+     consider narrowing your search to match fewer directory entries.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-max-result&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     1000
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Search Timeout&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Maximum time to wait for search results in seconds.
+     Does not apply to persistent searches.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-time-limit&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     10
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAPv3 Plug-in Search Scope&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP searches can apply to a single entry (SCOPE_BASE),
+     entries directly below the search DN (SCOPE_ONE),
+     or all entries below the search DN (SEARCH_SUB)
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-search-scope&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;SCOPE_SUB&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAPv3 Repository Plug-in Class Name&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     OpenAM identity repository implementation
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoClass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;org.forgerock.openam.idrepo.ldap.DJLDAPv3Repo&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name Mapping&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Map of OpenAM profile attribute names to directory server attribute names
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoAttributeMapping&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAPv3 Plug-in Supported Types and Operations&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Map of OpenAM operations that can be performed in the specified OpenAM contexts
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sunIdRepoSupportedOperations&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;group=read,create,edit,delete&lt;/literal&gt;,
+     &lt;literal&gt;realm=read,create,edit,delete,service&lt;/literal&gt;,
+     &lt;literal&gt;user=read,create,edit,delete,service&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Users Search Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for a user by name, match values against this attribute
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-users-search-attribute&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Users Search Filter&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for users, apply this LDAP search filter as well
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-users-search-filter&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;(objectclass=inetorgperson)&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP People Container Naming Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute of the LDAP base DN which contains user profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-people-container-name&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;ou&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP People Container Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute value of the LDAP base DN which contains user profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-people-container-value&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP User Object Class&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     User profiles have these LDAP object classes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     OpenAM handles only those attributes listed in this setting.
+     OpenAM discards any unlisted attributes from requests
+     and the request proceeds without the attribute.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     For example, with default settings
+     if you request that OpenAM execute a search that asks for
+     the &lt;literal&gt;mailAlternateAddress&lt;/literal&gt; attribute,
+     OpenAM does the search, but does not request
+     &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;.
+     In the same way, OpenAM does perform an update operation
+     with a request to set the value of an unlisted attribute
+     like &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;,
+     but it drops the unlisted attribute from the update request.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-user-objectclass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;devicePrintProfilesContainer&lt;/literal&gt;,
+     &lt;literal&gt;forgerock-am-dashboard-service&lt;/literal&gt;,
+     &lt;literal&gt;inetorgperson&lt;/literal&gt;,
+     &lt;literal&gt;inetuser&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-auth-configuration-service&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-managed-person&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-service&lt;/literal&gt;,
+     &lt;literal&gt;iPlanetPreferences&lt;/literal&gt;,
+     &lt;literal&gt;organizationalperson&lt;/literal&gt;,
+     &lt;literal&gt;person&lt;/literal&gt;,
+     &lt;literal&gt;sunAMAuthAccountLockout&lt;/literal&gt;,
+     &lt;literal&gt;sunFederationManagerDataStore&lt;/literal&gt;,
+     &lt;literal&gt;sunFMSAML2NameIdentifier&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerLibertyPPService&lt;/literal&gt;,
+     &lt;literal&gt;top&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP User Attributes&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     User profiles have these LDAP attributes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     OpenAM handles only those attributes listed in this setting.
+     OpenAM discards any unlisted attributes from requests
+     and the request proceeds without the attribute.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     For example, with default settings
+     if you request that OpenAM execute a search that asks for
+     the &lt;literal&gt;mailAlternateAddress&lt;/literal&gt; attribute,
+     OpenAM does the search, but does not request
+     &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;.
+     In the same way, OpenAM does perform an update operation
+     with a request to set the value of an unlisted attribute
+     like &lt;literal&gt;mailAlternateAddress&lt;/literal&gt;,
+     but it drops the unlisted attribute from the update request.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-user-attributes&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;adminRole&lt;/literal&gt;,
+     &lt;literal&gt;assignedDashboard&lt;/literal&gt;,
+     &lt;literal&gt;authorityRevocationList&lt;/literal&gt;,
+     &lt;literal&gt;caCertificate&lt;/literal&gt;,
+     &lt;literal&gt;cn&lt;/literal&gt;,
+     &lt;literal&gt;devicePrintProfiles&lt;/literal&gt;,
+     &lt;literal&gt;distinguishedName&lt;/literal&gt;,
+     &lt;literal&gt;dn&lt;/literal&gt;,
+     &lt;literal&gt;employeeNumber&lt;/literal&gt;,
+     &lt;literal&gt;givenName&lt;/literal&gt;,
+     &lt;literal&gt;inetUserHttpURL&lt;/literal&gt;,
+     &lt;literal&gt;inetUserStatus&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-auth-configuration&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-add-session-listener-on-all-sessions&lt;/literal&gt;,
 +     &lt;literal&gt;iplanet-am-session-destroy-sessions&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-get-valid-sessions&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-max-caching-time&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-max-idle-time&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-max-session-time&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-quota-limit&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-session-service-status&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-account-life&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-admin-start-dn&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-alias-list&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-auth-config&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-auth-modules&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-failure-url&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-federation-info-key&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-federation-info&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-login-status&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-password-reset-force-reset&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-password-reset-options&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-password-reset-question-answer&lt;/literal&gt;,
+     &lt;literal&gt;iplanet-am-user-success-url&lt;/literal&gt;,
+     &lt;literal&gt;mail&lt;/literal&gt;,
+     &lt;literal&gt;manager&lt;/literal&gt;,
+     &lt;literal&gt;memberOf&lt;/literal&gt;,
+     &lt;literal&gt;objectClass&lt;/literal&gt;,
+     &lt;literal&gt;postalAddress&lt;/literal&gt;,
+     &lt;literal&gt;preferredlanguage&lt;/literal&gt;,
+     &lt;literal&gt;preferredLocale&lt;/literal&gt;,
+     &lt;literal&gt;preferredtimezone&lt;/literal&gt;,
+     &lt;literal&gt;sn&lt;/literal&gt;,
+     &lt;literal&gt;sun-fm-saml2-nameid-info&lt;/literal&gt;,
+     &lt;literal&gt;sun-fm-saml2-nameid-infokey&lt;/literal&gt;,
+     &lt;literal&gt;sunAMAuthInvalidAttemptsData&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityMSISDNNumber&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerDiscoEntries&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPAddressCard&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameAltCN&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameCN&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameFN&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameMN&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNamePT&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPCommonNameSN&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsAge&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsBirthDay&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsDisplayLanguage&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsLanguage&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPDemographicsTimeZone&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmergencyContact&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmploymentIdentityAltO&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmploymentIdentityJobTitle&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEmploymentIdentityOrg&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPEncryPTKey&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadegreetmesound&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeGreetSound&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeMugShot&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeNamePronounced&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPFacadeWebSite&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPInformalName&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityAltIdType&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityAltIdValue&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityDOB&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityGender&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityLegalName&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityMaritalStatus&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityVATIdType&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPLegalIdentityVATIdValue&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPMsgContact&lt;/literal&gt;,
+     &lt;literal&gt;sunIdentityServerPPSignKey&lt;/literal&gt;,
+     &lt;literal&gt;telephoneNumber&lt;/literal&gt;,
+     &lt;literal&gt;uid&lt;/literal&gt;,
+     &lt;literal&gt;userCertificate&lt;/literal&gt;,
+     &lt;literal&gt;userPassword&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Create User Attribute Mapping&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When creating a user profile,
+     apply this map of OpenAM profile attribute names
+     to directory server attribute names.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Attributes not mapped to another attribute
+     (for example, &lt;literal&gt;cn&lt;/literal&gt;)
+     and attributes mapped to themselves
+     (for example, &lt;literal&gt;cn=cn&lt;/literal&gt;)
+     take the value of the username
+     unless the attribute values are provided when creating the profile.
+     The object classes for user profile LDAP entries
+     generally require Common Name (cn) and Surname (sn) attributes,
+     so this prevents an LDAP constraint violation
+     when performing the add operation.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-createuser-attr-mapping&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;, &lt;literal&gt;sn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name of User Status&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Attribute to check/set user status
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-isactive&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;inetuserstatus&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;User Status Active Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Active users have the user status attribute set to this value.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-active&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;Active&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;User Status Inactive Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Inactive users have the user status attribute set to this value.
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-inactive&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;Inactive&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Authentication Naming Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute for building the bind DN when given a username and password
+     to authenticate a user against the directory server
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-auth-naming-attr&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Search Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for a group by name, match values against this attribute
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-groups-search-attribute&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Search Filter&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     When searching for groups, apply this LDAP search filter as well
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-groups-search-filter&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;(objectclass=groupOfNames)&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Container Naming Attribute&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute of the LDAP base DN which contains group profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-container-name&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;ou&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Container Value&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     RDN attribute value of the LDAP base DN which contains group profiles
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-container-value&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Object Class&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Group profiles have these LDAP object classes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-objectclass&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;groupofnames&lt;/literal&gt;, &lt;literal&gt;top&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;LDAP Groups Attributes&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Group profiles have these LDAP attributes
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-group-attributes&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;cn&lt;/literal&gt;,
+     &lt;literal&gt;description&lt;/literal&gt;,
+     &lt;literal&gt;dn&lt;/literal&gt;,
+     &lt;literal&gt;member&lt;/literal&gt;,
+     &lt;literal&gt;objectclass&lt;/literal&gt;,
+     &lt;literal&gt;ou&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name for Group Membership&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP attribute in the member's LDAP entry
+     whose values are the groups to which a member belongs
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-memberof&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Attribute Name of Unique Member&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Attribute in the group's LDAP entry
+     whose values are the members of the group
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-uniquemember&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;member&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Default Group Member's User DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     DN of member added to all newly created groups
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-dftgroupmember&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Persistent Search Base DN&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Base DN for LDAP persistent searches used
+     to receive notification of changes in directory server data
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-psearchbase&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;&lt;replaceable&gt;base-dn&lt;/replaceable&gt;&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Persistent Search Filter&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP filter to apply when performing persistent searches
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-psearch-filter&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;(objectclass=*)&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;Persistent Search Scope&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     LDAP searches can apply to a single entry (SCOPE_BASE),
+     entries directly below the search DN (SCOPE_ONE),
+     or all entries below the search DN (SEARCH_SUB)
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-config-psearch-scope&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     &lt;literal&gt;SCOPE_SUB&lt;/literal&gt;
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;The Delay Time Between Retries&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     How long to wait after receiving an error result
+     that indicates OpenAM should try the LDAP operation again
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;com.iplanet.am.ldap.connection.delay.between.retries&lt;/literal&gt;
 +    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     1000 milliseconds
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;DN Cache Enabled&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Whether to enable the DN cache, which is used to cache DN lookups
+     that can happen in bursts during authentication.
+     As the cache can become stale when a user is moved or renamed,
+     enable DN caching when the directory service allows move/rename operations (Mod \
DN), +     and when OpenAM uses persistent searches to obtain notification of such \
updates. +    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-dncache-enabled&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     true
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+
+  &lt;varlistentry&gt;
+   &lt;term&gt;DN Cache Size&lt;/term&gt;
+   &lt;listitem&gt;
+    &lt;para&gt;
+     Maximum number of DNs cached when caching is enabled
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     &lt;command&gt;ssoadm&lt;/command&gt; attribute:
+     &lt;literal&gt;sun-idrepo-ldapv3-dncache-size&lt;/literal&gt;
+    &lt;/para&gt;
+
+    &lt;para&gt;
+     Default:
+     1500 items
+    &lt;/para&gt;
+   &lt;/listitem&gt;
+  &lt;/varlistentry&gt;
+ &lt;/variablelist&gt;
+&lt;/section&gt;
</ins></span></pre></div>
<a id="branchesAME3423openamopenamdocumentationopenamdocsourcesrcmaindocbkxwebreleasenoteschapwebagentsxml"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/web-release-notes/chap-web-agents.xml \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/web-release-notes/chap-web-agents.xml	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-documentation/openam-doc-source/src/main/docbkx/web-release-notes/chap-web-agents.xml	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -302,7 +302,7 @@
</span><span class="cx">    &lt;section \
xml:id=&quot;platform-requirements-web-agents&quot;&gt; </span><span class="cx">     \
&lt;title&gt;Web Agents Platform Requirements&lt;/title&gt; </span><span class="cx"> 
</span><del>-    &lt;para&gt;Apache HTTP web policy agents have been tested on Linux \
2.6 or later, </del><ins>+    &lt;para&gt;Apache HTTP web policy agents run on Linux \
2.6.18 or later, </ins><span class="cx">     and on Oracle Solaris 10 or \
later.&lt;/para&gt; </span><span class="cx"> 
</span><span class="cx">     &lt;para&gt;The Microsoft IIS 6 web policy agent has \
been tested on Windows Server </span><span class="lines">@@ -320,6 +320,20 @@
</span><span class="cx"> --&gt;
</span><span class="cx"> 
</span><span class="cx">     &lt;para&gt;
</span><ins>+     Before installing web policy agents on Linux,
+     make sure the system can run &lt;command&gt;gcc&lt;/command&gt; 4.4.7.
+     &lt;literal&gt;libc.so.6&lt;/literal&gt; must be available
+     and it must support the GLIBC_2.3 ABI.
+     You can check this by running the following command:
+     &lt;command&gt;strings libc.so.6 | grep GLIBC_2&lt;/command&gt;.
+     Also, &lt;literal&gt;libstdc++.so.6&lt;/literal&gt; must be available
+     and it must support GLIBCXX_3.4 and CXXABI_1.3.
+     You can check this by running the following commands:
+     &lt;command&gt;strings libstdc++.so.6 | grep GLIBCXX_3&lt;/command&gt;
+     and &lt;command&gt;strings libstdc++.so.6 | grep CXXABI_1&lt;/command&gt;.
+    &lt;/para&gt;
+
+    &lt;para&gt;
</ins><span class="cx">      Before installing the IIS 7 web policy agent on \
Microsoft IIS 7 or IIS 8, </span><span class="cx">      make sure that the optional \
Application Development component of </span><span class="cx">      Web Server (IIS) \
is installed. </span><span class="lines">@@ -373,6 +387,22 @@
</span><span class="cx">      &lt;/listitem&gt;
</span><span class="cx"> 
</span><span class="cx">      &lt;listitem&gt;
</span><ins>+      &lt;para&gt;
+       On Linux, library requirements have changed.
+       Make sure the system can run &lt;command&gt;gcc&lt;/command&gt; 4.4.7.
+       &lt;literal&gt;libc.so.6&lt;/literal&gt; must be available
+       and it must support the GLIBC_2.3 ABI.
+       You can check this by running the following command:
+       &lt;command&gt;strings libc.so.6 | grep GLIBC_2&lt;/command&gt;.
+       Also, &lt;literal&gt;libstdc++.so.6&lt;/literal&gt; must be available
+       and it must support GLIBCXX_3.4 and CXXABI_1.3.
+       You can check this by running the following commands:
+       &lt;command&gt;strings libstdc++.so.6 | grep GLIBCXX_3&lt;/command&gt;
+       and &lt;command&gt;strings libstdc++.so.6 | grep CXXABI_1&lt;/command&gt;.
+      &lt;/para&gt;
+     &lt;/listitem&gt;
+
+     &lt;listitem&gt;
</ins><span class="cx">       &lt;para&gt;IIS web policy agents no longer rely on the \
Windows registry to </span><span class="cx">       determine where to find \
configuration settings. Instead, IIS agents </span><span class="cx">       determine \
the relative location of their configuration properties files \
</span></span></pre></div> <a \
id="branchesAME3423openamopenamentitlementssrcmainjavacomsunidentityentitlementPrivilegeManagerjava"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/PrivilegeManager.java \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/PrivilegeManager.java	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/PrivilegeManager.java	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -186,6 +186,19 @@
</span><span class="cx">         throws EntitlementException;
</span><span class="cx"> 
</span><span class="cx">     /**
</span><ins>+     * Modifies the specified policy.
+     *
+     * @param existingName
+     *         The existing policy name
+     * @param privilege
+     *         The new policy content
+     *
+     * @throws EntitlementException
+     *         When an error occurs during modification
+     */
+    public abstract void modifyPrivilege(String existingName, Privilege privilege) \
throws EntitlementException; +
+    /**
</ins><span class="cx">      * Returns a set of privilege names for a given search \
criteria. </span><span class="cx">      *
</span><span class="cx">      * @param filter Set of search filter.
</span></span></pre></div>
<a id="branchesAME3423openamopenamfederationopenamfederationlibrarysrcmainjavacomsunidentitysaml2profileIDPSSOUtiljava"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-federation/openam-federation-library/src/main/java/com/sun/identity/saml2/profile/IDPSSOUtil.java \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-federation/openam-federation-library/src/main/java/com/sun/identity/saml2/profile/IDPSSOUtil.java	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-federation/openam-federation-library/src/main/java/com/sun/identity/saml2/profile/IDPSSOUtil.java	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -1403,20 +1403,18 @@
</span><span class="cx">                 allowCreate = nameIDPolicy.isAllowCreate();
</span><span class="cx">                 spNameQualifier = \
nameIDPolicy.getSPNameQualifier(); </span><span class="cx">                 if \
(spNameQualifier != null &amp;&amp; !spNameQualifier.isEmpty()) { </span><del>-       \
                AffiliationDescriptorType affiDesc = metaManager.
-                            getAffiliationDescriptor(realm, spNameQualifier);
</del><ins>+                    AffiliationDescriptorType affiDesc = \
metaManager.getAffiliationDescriptor(realm, spNameQualifier); </ins><span class="cx"> \
 </span><span class="cx">                     if (affiDesc != null) {
</span><del>-                        if (affiDesc.getAffiliateMember().contains(
-                                remoteEntityID)) {
-
</del><ins>+                        if \
(affiDesc.getAffiliateMember().contains(remoteEntityID)) { </ins><span class="cx">    \
isAffiliation = true; </span><span class="cx">                             \
remoteEntityID = spNameQualifier; </span><span class="cx">                         } \
else { </span><del>-                            throw new \
                SAML2Exception(SAML2Utils.bundle.
-                                    getString(&quot;spNotAffiliationMember&quot;));
</del><ins>+                            throw new \
SAML2Exception(SAML2Utils.bundle.getString(&quot;spNotAffiliationMember&quot;)); \
</ins><span class="cx">                         } </span><span class="cx">            \
} </span><ins>+                } else {
+                    spNameQualifier = recipientEntityID;
</ins><span class="cx">                 }
</span><span class="cx">             }
</span><span class="cx">         } else {
</span><span class="lines">@@ -1515,8 +1513,7 @@
</span><span class="cx"> 
</span><span class="cx">             IDPAccountMapper idpAccountMapper =
</span><span class="cx">                     SAML2Utils.getIDPAccountMapper(realm, \
idpEntityID); </span><del>-            nameID = idpAccountMapper.getNameID(session, \
                idpEntityID,
-                    spNameQualifier, realm, nameIDFormat);
</del><ins>+            nameID = idpAccountMapper.getNameID(session, idpEntityID, \
spNameQualifier, realm, nameIDFormat); </ins><span class="cx"> 
</span><span class="cx">             // If the IdP has received a request from a \
remote SP for which it has </span><span class="cx">             // been configured \
not to persist the Federation if unspecified NameID </span></span></pre></div>
<a id="branchesAME3423openamopenamforgerockrestsrcmainjavaorgforgerockopenamforgerockrestentitlementsJsonPolicyParserjava"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/JsonPolicyParser.java \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/JsonPolicyParser.java	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/JsonPolicyParser.java	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -40,6 +40,7 @@
</span><span class="cx"> import java.util.List;
</span><span class="cx"> import java.util.TimeZone;
</span><span class="cx"> 
</span><ins>+import static org.apache.commons.lang.StringUtils.isBlank;
</ins><span class="cx"> 
</span><span class="cx"> /**
</span><span class="cx">  * Parses entitlements policies (&quot;privileges&quot;) \
to/from JSON representations. </span><span class="lines">@@ -74,10 +75,6 @@
</span><span class="cx">     public Privilege parsePolicy(String name, JsonValue \
json) </span><span class="cx">             throws EntitlementException {
</span><span class="cx"> 
</span><del>-        if (name == null || name.trim().isEmpty()) {
-            throw new \
                EntitlementException(EntitlementException.MISSING_PRIVILEGE_NAME);
-        }
-
</del><span class="cx">         if (json == null || json.isNull()) {
</span><span class="cx">             throw new \
EntitlementException(EntitlementException.INVALID_JSON); </span><span class="cx">     \
} </span><span class="lines">@@ -128,14 +125,22 @@
</span><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><del>-    private Privilege parsePrivilege(String name, JsonValue jsonValue) \
throws EntitlementException { </del><ins>+    private Privilege parsePrivilege(String \
providedName, JsonValue jsonValue) throws EntitlementException { </ins><span \
class="cx">         try { </span><span class="cx">             // Note: this is a bit \
ugly as we re-serialise the JsonValue back into a JSON String to then parse it \
</span><span class="cx">             // again using Jackson. Unfortunately, that \
appears to be the easiest way as JsonValue does not support </span><span class="cx">  \
// data binding. </span><span class="cx">             JsonPolicy policy = \
MAPPER.readValue(jsonValue.toString(), JsonPolicy.class); </span><span class="cx">    \
Privilege privilege = policy.asPrivilege(); </span><del>-            \
privilege.setName(name); </del><ins>+
+            if (isBlank(privilege.getName())) {
+                privilege.setName(providedName);
+            }
+
+            if (isBlank(privilege.getName())) {
+                throw new \
EntitlementException(EntitlementException.MISSING_PRIVILEGE_NAME); +            }
+
</ins><span class="cx">             return privilege;
</span><span class="cx">         } catch (UnrecognizedPropertyException ex) {
</span><span class="cx">             throw new \
EntitlementException(EntitlementException.INVALID_VALUE, </span></span></pre></div>
<a id="branchesAME3423openamopenamforgerockrestsrcmainjavaorgforgerockopenamforgerockrestentitlementsPolicyResourcejava"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/PolicyResource.java \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/PolicyResource.java	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/PolicyResource.java	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -148,7 +148,14 @@
</span><span class="cx">     @Override
</span><span class="cx">     public void createInstance(ServerContext context, \
CreateRequest request, ResultHandler&lt;Resource&gt; handler) { </span><span \
class="cx">         try { </span><del>-            Privilege policy = \
policyParser.parsePolicy(determineNewPolicyName(request), request.getContent()); \
</del><ins>+            final String providedName = request.getNewResourceId(); +     \
Privilege policy = policyParser.parsePolicy(providedName, request.getContent()); +
+            if (isNotBlank(providedName) &amp;&amp; \
!providedName.equals(policy.getName())) { +                // Resource name and json \
body name do not match. +                throw new \
EntitlementException(EntitlementException.POLICY_NAME_MISMATCH); +            }
+
</ins><span class="cx">             \
policyStoreProvider.getPolicyStore(context).create(policy); </span><span class="cx">  \
handler.handleResult(policyResource(policy)); </span><span class="cx">         } \
catch (EntitlementException ex) { </span><span class="lines">@@ -157,34 +164,6 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     /**
</span><del>-     * Determines the policy name to use for a new policy based on \
                either the name specified in the URL (for PUT
-     * requests) or the name specified in the JSON body (for POST requests). If \
                neither is specified then an error is
-     * raised as we do not support auto-generating policy names. If both are \
                specified, and they are different, then
-     * an error is raised indicating client confusion.
-     *
-     * @param request the create request for the policy.
-     * @return the name to use for the new policy.
-     * @throws EntitlementException if the name cannot be determined from the \
                request.
-     */
-    private String determineNewPolicyName(CreateRequest request) throws \
                EntitlementException {
-
-        String requestPolicyName = request.getNewResourceId();
-        String jsonPolicyName = \
                request.getContent().get(&quot;name&quot;).asString();
-
-        if (isNotBlank(requestPolicyName) &amp;&amp; isNotBlank(jsonPolicyName) \
                &amp;&amp; !requestPolicyName.equals(jsonPolicyName)) {
-            throw new \
                EntitlementException(EntitlementException.POLICY_NAME_MISMATCH);
-        }
-
-        String policyName = isNotBlank(requestPolicyName) ? requestPolicyName : \
                jsonPolicyName;
-
-        if (isBlank(policyName)) {
-            throw new \
                EntitlementException(EntitlementException.MISSING_PRIVILEGE_NAME);
-        }
-
-        return policyName;
-    }
-
-    /**
</del><span class="cx">      * {@inheritDoc}
</span><span class="cx">      */
</span><span class="cx">     @Override
</span><span class="lines">@@ -260,7 +239,7 @@
</span><span class="cx">                                ResultHandler&lt;Resource&gt; \
handler) { </span><span class="cx">         try {
</span><span class="cx">             Privilege policy = \
policyParser.parsePolicy(resourceId, request.getContent()); </span><del>-            \
Resource result = policyResource(policyStoreProvider.getPolicyStore(context).update(policy));
 </del><ins>+            Resource result = \
policyResource(policyStoreProvider.getPolicyStore(context).update(resourceId, \
policy)); </ins><span class="cx">             handler.handleResult(result);
</span><span class="cx">         } catch (EntitlementException ex) {
</span><span class="cx">             \
handler.handleError(resourceErrorHandler.handleError(request, ex)); \
</span></span></pre></div> <a \
id="branchesAME3423openamopenamforgerockrestsrcmainjavaorgforgerockopenamforgerockrestentitlementsPolicyStorejava"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/PolicyStore.java \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/PolicyStore.java	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/PolicyStore.java	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -50,10 +50,11 @@
</span><span class="cx"> 
</span><span class="cx">     /**
</span><span class="cx">      * Updates the given policy to match the new definition.
</span><ins>+     * @param existingName the existing policy name
</ins><span class="cx">      * @param policy the policy to update.
</span><span class="cx">      * @throws EntitlementException if an error occurs or \
the policy does not exist. </span><span class="cx">      */
</span><del>-    Privilege update(Privilege policy) throws EntitlementException;
</del><ins>+    Privilege update(String existingName, Privilege policy) throws \
EntitlementException; </ins><span class="cx"> 
</span><span class="cx">     /**
</span><span class="cx">      * Deletes the given policy from the policy store.
</span></span></pre></div>
<a id="branchesAME3423openamopenamforgerockrestsrcmainjavaorgforgerockopenamforgerockrestentitlementsPrivilegePolicyStorejava"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/PrivilegePolicyStore.java \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/PrivilegePolicyStore.java	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/PrivilegePolicyStore.java	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -69,8 +69,8 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     @Override
</span><del>-    public Privilege update(Privilege policy) throws \
                EntitlementException {
-        privilegeManager.modifyPrivilege(policy);
</del><ins>+    public Privilege update(String existingName, Privilege policy) throws \
EntitlementException { +        privilegeManager.modifyPrivilege(existingName, \
policy); </ins><span class="cx">         return policy;
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="branchesAME3423openamopenamforgerockrestsrcmainjavaorgforgerockopenamforgerockrestentitlementsmodeljsonJsonPolicyjava"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/model/json/JsonPolicy.java \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/model/json/JsonPolicy.java	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/model/json/JsonPolicy.java	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -94,6 +94,19 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     /**
</span><ins>+     * Set the policy name.
+     *
+     * @param name
+     *         The name of the policy
+     *
+     * @throws EntitlementException
+     *         Should some error occur whilst setting the name
+     */
+    public void setName(String name) throws EntitlementException {
+        privilege.setName(name);
+    }
+
+    /**
</ins><span class="cx">      * Returns {@code true} if this policy is active (i.e., \
in use). </span><span class="cx">      *
</span><span class="cx">      * @return true if the policy is active, otherwise \
false. </span></span></pre></div>
<a id="branchesAME3423openamopenamforgerockrestsrcmainjavaorgforgerockopenamforgerockrestguiceForgerockRestGuiceModulejava"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/forgerockrest/guice/ForgerockRestGuiceModule.java \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/forgerockrest/guice/ForgerockRestGuiceModule.java	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/forgerockrest/guice/ForgerockRestGuiceModule.java	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -55,6 +55,7 @@
</span><span class="cx"> import org.forgerock.openam.rest.router.RestEndpointManager;
</span><span class="cx"> import \
org.forgerock.openam.rest.router.RestEndpointManagerProxy; </span><span class="cx"> \
import org.forgerock.openam.utils.AMKeyProvider; </span><ins>+import \
org.forgerock.openidconnect.ClientDAO; </ins><span class="cx"> import \
org.forgerock.util.SignatureUtil; </span><span class="cx"> 
</span><span class="cx"> import javax.inject.Inject;
</span></span></pre></div>
<a id="branchesAME3423openamopenamforgerockrestsrcmainjavaorgforgerockopenamoauth2restTokenResourcejava"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/oauth2/rest/TokenResource.java \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/oauth2/rest/TokenResource.java	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-forgerock-rest/src/main/java/org/forgerock/openam/oauth2/rest/TokenResource.java	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -1,7 +1,7 @@
</span><span class="cx"> /*
</span><span class="cx">  * DO NOT REMOVE COPYRIGHT NOTICES OR THIS HEADER.
</span><span class="cx">  *
</span><del>- * Copyright (c) 2012-2014 ForgeRock AS. All rights reserved.
</del><ins>+ * Copyright 2012-2014 ForgeRock AS.
</ins><span class="cx">  *
</span><span class="cx">  * The contents of this file are subject to the terms
</span><span class="cx">  * of the Common Development and Distribution License
</span><span class="lines">@@ -21,6 +21,7 @@
</span><span class="cx">  * your own identifying information:
</span><span class="cx">  * &quot;Portions copyright [year] [name of copyright \
owner]&quot; </span><span class="cx">  */
</span><ins>+
</ins><span class="cx"> package org.forgerock.openam.oauth2.rest;
</span><span class="cx"> 
</span><span class="cx"> import com.iplanet.am.util.SystemProperties;
</span><span class="lines">@@ -32,12 +33,14 @@
</span><span class="cx"> import com.sun.identity.idm.IdType;
</span><span class="cx"> import com.sun.identity.security.AdminTokenAction;
</span><span class="cx"> import com.sun.identity.shared.Constants;
</span><del>-import org.forgerock.oauth2.core.exceptions.UnauthorizedClientException;
</del><ins>+import com.sun.identity.shared.locale.Locale;
+import org.apache.commons.lang.StringUtils;
</ins><span class="cx"> import org.forgerock.json.fluent.JsonValue;
</span><span class="cx"> import org.forgerock.json.resource.ActionRequest;
</span><span class="cx"> import \
org.forgerock.json.resource.CollectionResourceProvider; </span><span class="cx"> \
import org.forgerock.json.resource.CreateRequest; </span><span class="cx"> import \
org.forgerock.json.resource.DeleteRequest; </span><ins>+import \
org.forgerock.json.resource.InternalServerErrorException; </ins><span class="cx"> \
import org.forgerock.json.resource.NotFoundException; </span><span class="cx"> import \
org.forgerock.json.resource.NotSupportedException; </span><span class="cx"> import \
org.forgerock.json.resource.PatchRequest; </span><span class="lines">@@ -52,25 +55,54 \
@@ </span><span class="cx"> import org.forgerock.json.resource.ServerContext;
</span><span class="cx"> import \
org.forgerock.json.resource.ServiceUnavailableException; </span><span class="cx"> \
import org.forgerock.json.resource.UpdateRequest; </span><ins>+import \
org.forgerock.json.resource.servlet.HttpContext; </ins><span class="cx"> import \
org.forgerock.oauth2.core.OAuth2Constants; </span><del>-import \
org.forgerock.openam.oauth2.IdentityManager; </del><ins>+import \
org.forgerock.oauth2.core.OAuth2ProviderSettings; +import \
org.forgerock.oauth2.core.OAuth2Request; +import \
org.forgerock.oauth2.core.exceptions.ServerException; +import \
org.forgerock.oauth2.core.exceptions.UnauthorizedClientException; +import \
org.forgerock.openam.cts.api.filter.TokenFilter; </ins><span class="cx"> import \
org.forgerock.openam.cts.exceptions.CoreTokenException; </span><span class="cx"> \
import org.forgerock.openam.forgerockrest.RestUtils; </span><ins>+import \
org.forgerock.openam.oauth2.IdentityManager; </ins><span class="cx"> import \
org.forgerock.openam.oauth2.OAuthTokenStore; </span><ins>+import \
org.forgerock.openam.oauth2.OpenAMOAuth2ProviderSettingsFactory; +import \
org.forgerock.openidconnect.Client; +import org.forgerock.openidconnect.ClientDAO;
</ins><span class="cx"> 
</span><span class="cx"> import javax.inject.Inject;
</span><ins>+import java.net.HttpURLConnection;
</ins><span class="cx"> import java.security.AccessController;
</span><ins>+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
</ins><span class="cx"> import java.util.HashMap;
</span><ins>+import java.util.List;
</ins><span class="cx"> import java.util.Map;
</span><span class="cx"> import java.util.Set;
</span><span class="cx"> 
</span><ins>+import static org.forgerock.json.fluent.JsonValue.*;
+import static org.forgerock.oauth2.core.OAuth2Constants.CoreTokenParams.*;
+import static org.forgerock.oauth2.core.OAuth2Constants.Params.GRANT_TYPE;
+import static org.forgerock.oauth2.core.OAuth2Constants.Params.REALM;
+import static org.forgerock.oauth2.core.OAuth2Constants.Token.OAUTH_ACCESS_TOKEN;
+import static org.forgerock.oauth2.core.OAuth2Constants.TokenEndpoint.CLIENT_CREDENTIALS;
 +
</ins><span class="cx"> public class TokenResource implements \
CollectionResourceProvider { </span><span class="cx"> 
</span><del>-    private OAuthTokenStore tokenStore;
</del><ins>+    private static final DateFormat DATE_FORMATTER = (new \
SimpleDateFormat()).getDateTimeInstance(DateFormat.MEDIUM, +            \
DateFormat.SHORT); +    public static final String EXPIRE_TIME_KEY = \
&quot;expireTime&quot;; +    private final ClientDAO clientDao;
</ins><span class="cx"> 
</span><ins>+    private final OAuthTokenStore tokenStore;
+    private final OpenAMOAuth2ProviderSettingsFactory oAuth2ProviderSettingsFactory;
+
</ins><span class="cx">     private static SSOToken token = (SSOToken) \
AccessController.doPrivileged(AdminTokenAction.getInstance()); </span><span \
class="cx">     private static String adminUser = \
SystemProperties.get(Constants.AUTHENTICATION_SUPER_USER); </span><span class="cx">   \
private static AMIdentity adminUserId = null; </span><ins>+
</ins><span class="cx">     static {
</span><span class="cx">         if (adminUser != null) {
</span><span class="cx">             adminUserId = new AMIdentity(token,
</span><span class="lines">@@ -81,217 +113,385 @@
</span><span class="cx">     private final IdentityManager identityManager;
</span><span class="cx"> 
</span><span class="cx">     @Inject
</span><del>-    public TokenResource(final OAuthTokenStore tokenStore, final \
IdentityManager identityManager) { </del><ins>+    public \
TokenResource(OAuthTokenStore tokenStore, ClientDAO clientDao, IdentityManager \
identityManager, +            OpenAMOAuth2ProviderSettingsFactory \
oAuth2ProviderSettingsFactory) { </ins><span class="cx">         this.tokenStore = \
tokenStore; </span><ins>+        this.clientDao = clientDao;
</ins><span class="cx">         this.identityManager = identityManager;
</span><ins>+        this.oAuth2ProviderSettingsFactory = \
oAuth2ProviderSettingsFactory; </ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     @Override
</span><del>-    public void actionCollection(ServerContext context, ActionRequest \
                actionRequest, ResultHandler&lt;JsonValue&gt; handler){
-        final ResourceException e =
-                new NotSupportedException(&quot;Actions are not supported for \
                resource instances&quot;);
-        handler.handleError(e);
</del><ins>+    public void actionCollection(ServerContext context, ActionRequest \
actionRequest, ResultHandler&lt;JsonValue&gt; handler) { +        \
handler.handleError(new NotSupportedException(&quot;Actions are not supported for \
resource instances&quot;)); </ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     @Override
</span><span class="cx">     public void actionInstance(ServerContext context, String \
resourceId, ActionRequest request, </span><del>-                               \
                ResultHandler&lt;JsonValue&gt; handler){
-        final ResourceException e =
-                new NotSupportedException(&quot;Actions are not supported for \
                resource instances&quot;);
-        handler.handleError(e);
</del><ins>+            ResultHandler&lt;JsonValue&gt; handler) {
+
+        String actionId = request.getAction();
+
+        if (&quot;revoke&quot;.equalsIgnoreCase(actionId)) {
+            if (deleteToken(context, resourceId, handler, true)) {
+                handler.handleResult(json(object()));
+            }
+        } else {
+            handler.handleError(new NotSupportedException(&quot;Action not \
supported.&quot;)); +        }
</ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     @Override
</span><del>-    public void createInstance(ServerContext context, CreateRequest \
                createRequest, ResultHandler&lt;Resource&gt; handler){
-        final ResourceException e =
-                new NotSupportedException(&quot;Create is not supported for resource \
                instances&quot;);
-        handler.handleError(e);
</del><ins>+    public void createInstance(ServerContext context, CreateRequest \
createRequest, ResultHandler&lt;Resource&gt; handler) { +        \
handler.handleError(new NotSupportedException(&quot;Create is not supported for \
resource instances&quot;)); </ins><span class="cx">     }
</span><span class="cx"> 
</span><del>-    @Override
-    public void deleteInstance(ServerContext context, String resourceId, \
                DeleteRequest request,
-                               ResultHandler&lt;Resource&gt; handler){
-        //only admin can delete
-        AMIdentity uid = null;
</del><ins>+    /**
+     * Deletes the token with the provided token id.
+     *
+     * @param context The context.
+     * @param tokenId The token id.
+     * @param handler The handler.
+     * @param deleteRefreshToken Whether to delete associated refresh token, if \
token id is for an access token. +     * @return {@code true} if the token has been \
deleted. +     */
+    private boolean deleteToken(ServerContext context, String tokenId, \
ResultHandler&lt;?&gt; handler, +            boolean deleteRefreshToken) {
</ins><span class="cx">         try {
</span><del>-        	//first check if SSOToken is valid
-        	uid = getUid(context);
</del><ins>+            AMIdentity uid = getUid(context);
</ins><span class="cx"> 
</span><del>-        	JsonValue response = null;
-            try {
-            	response = tokenStore.read(resourceId);
-                if (response == null){
-                    throw new NotFoundException(&quot;Token Not Found&quot;, null);
</del><ins>+            JsonValue token = tokenStore.read(tokenId);
+            if (token == null) {
+                throw new NotFoundException(&quot;Token Not Found&quot;, null);
+            }
+            String username = getAttributeValue(token, USERNAME);
+            if (username == null || username.isEmpty()) {
+                throw new PermanentException(HttpURLConnection.HTTP_NOT_FOUND, \
&quot;Not Found&quot;, null); +            }
+
+            String grantType = getAttributeValue(token, GRANT_TYPE);
+
+            if (grantType != null &amp;&amp; \
grantType.equalsIgnoreCase(CLIENT_CREDENTIALS)) { +                if \
(deleteRefreshToken) { +                    deleteAccessTokensRefreshToken(token);
</ins><span class="cx">                 }
</span><del>-                Set&lt;String&gt; usernameSet = \
(Set&lt;String&gt;)response.get(OAuth2Constants.CoreTokenParams.USERNAME).getObject();
                
-                String username= null;
-                if (usernameSet != null &amp;&amp; !usernameSet.isEmpty()){
-                    username = usernameSet.iterator().next();
-                }
-                if(username == null || username.isEmpty()){
-                    throw new PermanentException(404, &quot;Not Found&quot;, null);
-                }
-                
-                Set&lt;String&gt; grantTypes = (Set&lt;String&gt;) \
                response.get(OAuth2Constants.Params.GRANT_TYPE).getObject();
-                String grantType = null;
-                if (grantTypes != null &amp;&amp; !grantTypes.isEmpty()){
-                    grantType = grantTypes.iterator().next();
-                }
-                
-                if (grantType != null &amp;&amp; \
                grantType.equalsIgnoreCase(OAuth2Constants.TokenEndpoint.CLIENT_CREDENTIALS)) \
                {
-                    tokenStore.delete(resourceId);
</del><ins>+                tokenStore.delete(tokenId);
+            } else {
+                String realm = getAttributeValue(token, REALM);
+                AMIdentity uid2 = identityManager.getResourceOwnerIdentity(username, \
realm); +                if (uid.equals(uid2) || uid.equals(adminUserId)) {
+                    if (deleteRefreshToken) {
+                        deleteAccessTokensRefreshToken(token);
+                    }
+                    tokenStore.delete(tokenId);
</ins><span class="cx">                 } else {
</span><del>-                    Set&lt;String&gt; realms = (Set&lt;String&gt;) \
                response.get(OAuth2Constants.CoreTokenParams.REALM).getObject();
-                    String realm = null;
-                    if (realms != null &amp;&amp; !realms.isEmpty()){
-                        realm = realms.iterator().next();
-                    }
-                    AMIdentity uid2 = \
                identityManager.getResourceOwnerIdentity(username, realm);
-                    if (uid.equals(uid2) || uid.equals(adminUserId)) {
-                        tokenStore.delete(resourceId);
-                    } else {
-                        throw new PermanentException(401, &quot;Unauthorized&quot;, \
                null);
-                    }
</del><ins>+                    throw new PermanentException(401, \
&quot;Unauthorized&quot;, null); </ins><span class="cx">                 }
</span><del>-            } catch (CoreTokenException e) {
-                throw new ServiceUnavailableException(e.getMessage(),e);
</del><span class="cx">             }
</span><del>-            Map&lt; String, String&gt; responseVal = new HashMap&lt; \
                String, String&gt;();
-            responseVal.put(&quot;success&quot;, &quot;true&quot;);
-            response = new JsonValue(responseVal);
-            Resource resource = new Resource(resourceId, &quot;1&quot;, response);
-            handler.handleResult(resource);
-        } catch (ResourceException e){
</del><ins>+
+            return true;
+
+        } catch (CoreTokenException e) {
+            handler.handleError(new ServiceUnavailableException(e.getMessage(), e));
+        } catch (ResourceException e) {
</ins><span class="cx">             handler.handleError(e);
</span><del>-        } catch (SSOException e){
-            handler.handleError(new PermanentException(401, &quot;Unauthorized&quot; \
                ,e));
-        } catch (IdRepoException e){
-            handler.handleError(new PermanentException(401, &quot;Unauthorized&quot; \
,e)); </del><ins>+        } catch (SSOException e) {
+            handler.handleError(new PermanentException(401, \
&quot;Unauthorized&quot;, e)); +        } catch (IdRepoException e) {
+            handler.handleError(new PermanentException(401, \
&quot;Unauthorized&quot;, e)); </ins><span class="cx">         } catch \
(UnauthorizedClientException e) { </span><span class="cx">             \
handler.handleError(new PermanentException(401, &quot;Unauthorized&quot;, e)); \
</span><span class="cx">         } </span><ins>+
+        return false;
</ins><span class="cx">     }
</span><span class="cx"> 
</span><ins>+    /**
+     * Deletes the provided access token's refresh token.
+     *
+     * @param token The access token.
+     * @throws CoreTokenException If there was a problem deleting the refresh token.
+     */
+    private void deleteAccessTokensRefreshToken(JsonValue token) throws \
CoreTokenException { +        if (OAUTH_ACCESS_TOKEN.equals(getAttributeValue(token, \
TOKEN_NAME))) { +            String refreshTokenId = getAttributeValue(token, \
REFRESH_TOKEN); +            if (refreshTokenId != null) {
+                tokenStore.delete(refreshTokenId);
+            }
+        }
+    }
+
+    /**
+     * Gets the value of the named attribute from the provided token.
+     *
+     * @param token The token.
+     * @param attributeName The attribute name.
+     * @return The attribute value.
+     */
+    private String getAttributeValue(JsonValue token, String attributeName) {
+        final Set&lt;String&gt; value = getAttributeAsSet(token, attributeName);
+        if (value != null &amp;&amp; !value.isEmpty()) {
+            return value.iterator().next();
+        }
+        return null;
+    }
+
+    /**
+     * Gets the {@code Set&lt;String&gt;} of values for the given attributeName.
+     *
+     * @param value The {@code JsonValue}.
+     * @param attributeName The attribute name.
+     * @return The attribute set.
+     */
+    @SuppressWarnings(&quot;unchecked&quot;)
+    private Set&lt;String&gt; getAttributeAsSet(JsonValue value, String \
attributeName) { +        final JsonValue param = value.get(attributeName);
+        if (param != null) {
+            return (Set&lt;String&gt;) param.getObject();
+        }
+        return null;
+    }
+
</ins><span class="cx">     @Override
</span><ins>+    public void deleteInstance(ServerContext context, String resourceId, \
DeleteRequest request, +            ResultHandler&lt;Resource&gt; handler) {
+        if (deleteToken(context, resourceId, handler, false)) {
+            Resource resource = new Resource(resourceId, &quot;1&quot;, \
json(object(field(&quot;success&quot;, &quot;true&quot;)))); +            \
handler.handleResult(resource); +        }
+    }
+
+    @Override
</ins><span class="cx">     public void patchInstance(ServerContext context, String \
resourceId, PatchRequest request, </span><del>-                              \
ResultHandler&lt;Resource&gt; handler){ </del><ins>+            \
ResultHandler&lt;Resource&gt; handler) { </ins><span class="cx">         final \
ResourceException e = </span><span class="cx">                 new \
NotSupportedException(&quot;Patch is not supported for resource instances&quot;); \
</span><span class="cx">         handler.handleError(e); </span><span class="cx">     \
} </span><span class="cx"> 
</span><span class="cx">     @Override
</span><del>-    public void queryCollection(ServerContext context, QueryRequest \
                queryRequest, QueryResultHandler handler){
-        try{
</del><ins>+    public void queryCollection(ServerContext context, QueryRequest \
queryRequest, QueryResultHandler handler) { +        try {
</ins><span class="cx">             JsonValue response = null;
</span><del>-            Resource resource;
</del><ins>+            Map&lt;String, Object&gt; query = new HashMap&lt;String, \
Object&gt;(); +
+            //get uid of submitter
+            AMIdentity uid;
</ins><span class="cx">             try {
</span><del>-                Map&lt;String, Object&gt; query = new HashMap&lt;String, \
                Object&gt;();
-                String id = queryRequest.getQueryId();
</del><ins>+                uid = getUid(context);
+                if (!uid.equals(adminUserId)) {
+                    query.put(USERNAME, uid.getName());
+                } else {
+                    query.put(USERNAME, &quot;*&quot;);
+                }
+            } catch (Exception e) {
+                handler.handleError(new PermanentException(401, \
&quot;Unauthorized&quot;, e)); +            }
</ins><span class="cx"> 
</span><del>-                //get uid of submitter
-                AMIdentity uid;
-                try {
-                    uid = getUid(context);
-                    if (!uid.equals(adminUserId)){
-                        query.put(OAuth2Constants.CoreTokenParams.USERNAME, \
                uid.getName());
-                    } else {
-                        query.put(OAuth2Constants.CoreTokenParams.USERNAME, \
&quot;*&quot;); </del><ins>+            String id = queryRequest.getQueryId();
+            String queryString = null;
+
+            if (id.equals(&quot;access_token&quot;)) {
+                queryString = &quot;tokenName=access_token&quot;;
+            } else {
+                queryString = &quot;&quot;;
+            }
+
+            String[] constraints = queryString.split(&quot;\\,&quot;);
+            for (String constraint : constraints) {
+                String[] params = constraint.split(&quot;=&quot;);
+                if (params.length == 2) {
+                    query.put(params[0], params[1]);
+                }
+            }
+
+            response = tokenStore.query(query, TokenFilter.Type.AND);
+            handleResponse(handler, response, context);
+
+        } catch (UnauthorizedClientException e) {
+            handler.handleError(new PermanentException(401, e.getMessage(), e));
+        } catch (CoreTokenException e) {
+            handler.handleError(new ServiceUnavailableException(e.getMessage(), e));
+        } catch (InternalServerErrorException e) {
+            handler.handleError(e);
+        }
+    }
+
+    private void handleResponse(QueryResultHandler handler, JsonValue response, \
ServerContext context) throws UnauthorizedClientException, +            \
CoreTokenException, InternalServerErrorException { +        Resource resource = new \
Resource(&quot;result&quot;, &quot;1&quot;, response); +        JsonValue value = \
resource.getContent(); +        String acceptLanguage = \
context.asContext(HttpContext.class).getHeaderAsString(&quot;accept-language&quot;); \
+        Set&lt;HashMap&lt;String, Set&lt;String&gt;&gt;&gt; list = \
(Set&lt;HashMap&lt;String, Set&lt;String&gt;&gt;&gt;) value.getObject(); +
+        Resource res = null;
+        JsonValue val = null;
+
+        if (list != null &amp;&amp; !list.isEmpty()) {
+            for (HashMap&lt;String, Set&lt;String&gt;&gt; entry : list) {
+                val = new JsonValue(entry);
+                res = new Resource(&quot;result&quot;, &quot;1&quot;, val);
+                Client client = getClient(val);
+
+                val.put(EXPIRE_TIME_KEY, getExpiryDate(json(entry)));
+                val.put(OAuth2Constants.ShortClientAttributeNames.DISPLAY_NAME.getType(), \
getClientName(client)); +                \
val.put(OAuth2Constants.ShortClientAttributeNames.SCOPES.getType(), getScopes(client, \
val, +                        acceptLanguage));
+
+                handler.handleResource(res);
+            }
+        }
+        handler.handleResult(new QueryResult());
+    }
+
+    private String getClientName(Client client) throws UnauthorizedClientException {
+        return client.get(OAuth2Constants.ShortClientAttributeNames.DISPLAY_NAME.getType()).get(0).asString();
 +    }
+
+    private String getScopes(Client client, JsonValue entry, String acceptLanguage) \
throws UnauthorizedClientException { +        JsonValue allScopes = \
client.get(OAuth2Constants.ShortClientAttributeNames.SCOPES.getType()); +        \
Set&lt;String&gt; allowedScopes = getAttributeAsSet(entry, &quot;scope&quot;); +
+        String result = &quot;&quot;;
+
+        java.util.Locale locale = \
Locale.getLocaleObjFromAcceptLangHeader(acceptLanguage); +
+        List&lt;String&gt; displayNames = new ArrayList&lt;String&gt;();
+        for (String allowedScope : allowedScopes) {
+            displayNames.add(getDisplayName(allowedScope, allScopes, locale));
+        }
+
+        return StringUtils.join(displayNames, &quot;,&quot;);
+    }
+
+    private String getDisplayName(String allowedScope, JsonValue allScopes, \
java.util.Locale serverLocale) { +        final String delimiter = &quot;|&quot;;
+        String defaultDisplayName = null;
+
+        for (JsonValue scope : allScopes) {
+            if (scope.asString().contains(delimiter)) {
+                String[] values = scope.asString().split(&quot;\\&quot; + \
delimiter); +                if (values.length == 3) {
+                    String name = values[0];
+                    String language = values[1];
+                    String displayName = values[2];
+                    java.util.Locale currentLocale = Locale.getLocale(language);
+
+                    final String currentLanguage = currentLocale.getLanguage();
+                    if (currentLanguage.equalsIgnoreCase(&quot;en&quot;)) {
+                        defaultDisplayName = displayName;
</ins><span class="cx">                     }
</span><del>-                } catch (Exception e){
-                    PermanentException ex = new PermanentException(401, \
                &quot;Unauthorized&quot; ,e);
-                    handler.handleError(ex);
</del><ins>+
+                    if (serverLocale.getLanguage().equals(currentLanguage) \
&amp;&amp; name.equals(allowedScope)) { +                        return displayName;
+                    }
</ins><span class="cx">                 }
</span><ins>+            }
+        }
</ins><span class="cx"> 
</span><del>-                //split id into the query fields
-                String[] queries = id.split(&quot;\\,&quot;);
-                for (String q: queries){
-                    String[] params = q.split(&quot;=&quot;);
-                    if (params.length == 2){
-                        query.put(params[0], params[1]);
</del><ins>+        if (defaultDisplayName != null) {
+            return defaultDisplayName;
+        }
+        
+        return allowedScope;
+    }
+
+    private Client getClient(JsonValue entry) throws UnauthorizedClientException {
+        final String clientId = getAttributeValue(entry, &quot;clientID&quot;);
+        final String realm = getAttributeValue(entry, &quot;realm&quot;);
+
+        return clientDao.read(clientId, getRequest(realm));
+    }
+
+    private OAuth2Request getRequest(final String realm) {
+        return new OAuth2Request() {
+                public &lt;T&gt; T getRequest() {
+                    throw new UnsupportedOperationException(&quot;Realm parameter \
only OAuth2Request&quot;); +                }
+
+                public &lt;T&gt; T getParameter(String name) {
+                    if (&quot;realm&quot;.equals(name)) {
+                        return (T) realm;
</ins><span class="cx">                     }
</span><ins>+                    throw new UnsupportedOperationException(&quot;Realm \
parameter only OAuth2Request&quot;); </ins><span class="cx">                 }
</span><span class="cx"> 
</span><del>-                response = tokenStore.query(query);
-            } catch (CoreTokenException e) {
-                throw new ServiceUnavailableException(e.getMessage(),e);
-            }
-            resource = new Resource(&quot;result&quot;, &quot;1&quot;, response);
-            JsonValue value = resource.getContent();
-            Set&lt;HashMap&lt;String,Set&lt;String&gt;&gt;&gt; list = \
                (Set&lt;HashMap&lt;String,Set&lt;String&gt;&gt;&gt;) \
                value.getObject();
-            Resource res = null;
-            JsonValue val = null;
-            if (list != null &amp;&amp; !list.isEmpty() ){
-                for (HashMap&lt;String,Set&lt;String&gt;&gt; entry : list){
-                    val = new JsonValue(entry);
-                    res = new Resource(&quot;result&quot;, &quot;1&quot;, val);
-                    handler.handleResource(res);
</del><ins>+                @Override
+                public JsonValue getBody() {
+                    return null;
</ins><span class="cx">                 }
</span><ins>+            };
+    }
+
+    private String getExpiryDate(JsonValue token) throws CoreTokenException, \
InternalServerErrorException { +
+        OAuth2ProviderSettings oAuth2ProviderSettings = \
oAuth2ProviderSettingsFactory.get( +                getAttributeValue(token, \
&quot;realm&quot;)); +
+        try {
+            if (token.isDefined(&quot;refreshToken&quot;)) {
+                if (oAuth2ProviderSettings.issueRefreshTokensOnRefreshingToken()) {
+                    return &quot;Indefinitely&quot;;
+                } else {
+                    //Use refresh token expiry
+                    JsonValue refreshToken = \
tokenStore.read(getAttributeValue(token, &quot;refreshToken&quot;)); +                \
long expiryTimeInMilliseconds = Long.parseLong(getAttributeValue(refreshToken, \
EXPIRE_TIME_KEY)); +                    return DATE_FORMATTER.format(new \
Date(expiryTimeInMilliseconds)); +                }
+            } else {
+                //Use access token expiry
+                long expiryTimeInMilliseconds = \
Long.parseLong(getAttributeValue(token, EXPIRE_TIME_KEY)); +                return \
DATE_FORMATTER.format(new Date(expiryTimeInMilliseconds)); </ins><span class="cx">    \
} </span><del>-            handler.handleResult(new QueryResult());
-        } catch (ResourceException e){
-            handler.handleError(e);
</del><ins>+        } catch (ServerException e) {
+            throw new InternalServerErrorException(e);
</ins><span class="cx">         }
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     @Override
</span><span class="cx">     public void readInstance(ServerContext context, String \
resourceId, ReadRequest request, </span><del>-                             \
ResultHandler&lt;Resource&gt; handler){ </del><ins>+            \
ResultHandler&lt;Resource&gt; handler) { </ins><span class="cx"> 
</span><del>-        AMIdentity uid = null;
-        String username = null;
</del><span class="cx">         try {
</span><del>-        	//first check if SSOToken is valid
-        	uid = getUid(context);
-        	
-        	JsonValue response;
</del><ins>+            AMIdentity uid = getUid(context);
+
+            JsonValue response;
</ins><span class="cx">             Resource resource;
</span><span class="cx">             try {
</span><span class="cx">                 response = tokenStore.read(resourceId);
</span><span class="cx">             } catch (CoreTokenException e) {
</span><span class="cx">                 throw new NotFoundException(&quot;Token Not \
Found&quot;, e); </span><span class="cx">             }
</span><del>-            if (response == null){
-                throw new NotFoundException(&quot;Token Not Found&quot;, null);
</del><ins>+            if (response == null) {
+                throw new NotFoundException(&quot;Token Not Found&quot;);
</ins><span class="cx">             }
</span><span class="cx"> 
</span><del>-            Set&lt;String&gt; grantTypes = (Set&lt;String&gt;) \
                response.get(OAuth2Constants.Params.GRANT_TYPE).getObject();
-            String grantType = null;
-            if (grantTypes != null &amp;&amp; !grantTypes.isEmpty()){
-                grantType = grantTypes.iterator().next();
-            }
-            
</del><ins>+            String grantType = getAttributeValue(response, GRANT_TYPE);
+
</ins><span class="cx">             if (grantType != null &amp;&amp; \
grantType.equalsIgnoreCase(OAuth2Constants.TokenEndpoint.CLIENT_CREDENTIALS)) { \
</span><del>-            	resource = new Resource(OAuth2Constants.Params.ID, \
                &quot;1&quot;, response);
-            	handler.handleResult(resource);
</del><ins>+                resource = new Resource(OAuth2Constants.Params.ID, \
&quot;1&quot;, response); +                handler.handleResult(resource);
</ins><span class="cx">             } else {
</span><del>-                Set&lt;String&gt; realms = (Set&lt;String&gt;) \
                response.get(OAuth2Constants.CoreTokenParams.REALM).getObject();
-                String realm = null;
-                if (realms != null &amp;&amp; !realms.isEmpty()){
-                    realm = realms.iterator().next();
-                }
-            
-                Set&lt;String&gt; usernameSet = \
(Set&lt;String&gt;)response.get(OAuth2Constants.CoreTokenParams.USERNAME).getObject();
                
-                if (usernameSet != null &amp;&amp; !usernameSet.isEmpty()){
-                username = usernameSet.iterator().next();
-                }
-                if(username == null || username.isEmpty()){
</del><ins>+                String realm = getAttributeValue(response, REALM);
+
+                String username = getAttributeValue(response, USERNAME);
+                if (username == null || username.isEmpty()) {
</ins><span class="cx">                     throw new PermanentException(404, \
&quot;Not Found&quot;, null); </span><span class="cx">                 }
</span><span class="cx">                 AMIdentity uid2 = \
identityManager.getResourceOwnerIdentity(username, realm); </span><del>-              \
if (uid.equals(adminUserId) || uid.equals(uid2)){ </del><ins>+                if \
(uid.equals(adminUserId) || uid.equals(uid2)) { </ins><span class="cx">               \
resource = new Resource(OAuth2Constants.Params.ID, &quot;1&quot;, response); \
</span><span class="cx">                     handler.handleResult(resource); \
</span><span class="cx">                 } else { </span><del>-                    \
throw new PermanentException(401, &quot;Unauthorized&quot; ,null); </del><ins>+       \
throw new PermanentException(401, &quot;Unauthorized&quot;, null); </ins><span \
class="cx">                 } </span><span class="cx">             }
</span><del>-        } catch (ResourceException e){
</del><ins>+        } catch (ResourceException e) {
</ins><span class="cx">             handler.handleError(e);
</span><del>-        } catch (SSOException e){
-            handler.handleError(new PermanentException(401, &quot;Unauthorized&quot; \
                ,e));
-        } catch (IdRepoException e){
-            handler.handleError(new PermanentException(401, &quot;Unauthorized&quot; \
,e)); </del><ins>+        } catch (SSOException e) {
+            handler.handleError(new PermanentException(401, \
&quot;Unauthorized&quot;, e)); +        } catch (IdRepoException e) {
+            handler.handleError(new PermanentException(401, \
&quot;Unauthorized&quot;, e)); </ins><span class="cx">         } catch \
(UnauthorizedClientException e) { </span><span class="cx">             \
handler.handleError(new PermanentException(401, &quot;Unauthorized&quot;, e)); \
</span><span class="cx">         } </span><span class="lines">@@ -299,10 +499,8 @@
</span><span class="cx"> 
</span><span class="cx">     @Override
</span><span class="cx">     public void updateInstance(ServerContext context, String \
resourceId, UpdateRequest request, </span><del>-                               \
                ResultHandler&lt;Resource&gt; handler){
-        final ResourceException e =
-                new NotSupportedException(&quot;Update is not supported for resource \
                instances&quot;);
-        handler.handleError(e);
</del><ins>+            ResultHandler&lt;Resource&gt; handler) {
+        handler.handleError(new NotSupportedException(&quot;Update is not supported \
for resource instances&quot;)); </ins><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     /**
</span></span></pre></div>
<a id="branchesAME3423openamopenamforgerockrestsrctestjavaorgforgerockopenamforgerockrestentitlementsJsonPolicyParserTestjava"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-forgerock-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/JsonPolicyParserTest.java \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-forgerock-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/JsonPolicyParserTest.java	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-forgerock-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/JsonPolicyParserTest.java	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -102,12 +102,25 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     @Test
</span><del>-    public void shouldUsePolicyNameArgument() throws Exception {
</del><ins>+    public void shouldUseJsonNameFirst() throws Exception {
</ins><span class="cx">         // Given
</span><span class="cx">         String name = &quot;realName&quot;;
</span><del>-        JsonValue content = json(object(field(&quot;name&quot;, \
&quot;fakeName&quot;))); </del><ins>+        JsonValue content = \
json(object(field(&quot;name&quot;, name))); </ins><span class="cx"> 
</span><span class="cx">         // When
</span><ins>+        Privilege result = parser.parsePolicy(&quot;resourceName&quot;, \
content); +
+        // Then
+        assertThat(result.getName()).isEqualTo(name);
+    }
+
+    @Test
+    public void shouldUsePassedNameIfJsonNameIsMissing() throws Exception {
+        // Given
+        String name = &quot;resourceName&quot;;
+        JsonValue content = json(object());
+
+        // When
</ins><span class="cx">         Privilege result = parser.parsePolicy(name, content);
</span><span class="cx"> 
</span><span class="cx">         // Then
</span></span></pre></div>
<a id="branchesAME3423openamopenamforgerockrestsrctestjavaorgforgerockopenamforgerockrestentitlementsPolicyResourceTestjava"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-forgerock-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/PolicyResourceTest.java \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-forgerock-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/PolicyResourceTest.java	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-forgerock-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/PolicyResourceTest.java	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -173,24 +173,6 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     @Test
</span><del>-    public void shouldAcceptPolicyNameFromJson() throws Exception {
-        // Given
-        String policyName = &quot;policyName&quot;;
-        // Specify policy name in JSON rather than in request URL:
-        JsonValue json = \
                JsonValue.json(JsonValue.object(JsonValue.field(&quot;name&quot;, \
                policyName)));
-
-        CreateRequest request = mockCreateRequest(null, json);
-        Privilege policy = mockPrivilege(policyName, 123l);
-        given(mockParser.parsePolicy(policyName, json)).willReturn(policy);
-
-        // When
-        policyResource.createInstance(mockServerContext, request, \
                mockResultHandler);
-
-        // Then
-        verify(mockParser).parsePolicy(policyName, json);
-    }
-
-    @Test
</del><span class="cx">     public void \
shouldAcceptConsistentPolicyNamesFromURLandJSON() throws Exception { </span><span \
class="cx">         // Given </span><span class="cx">         String policyName = \
&quot;policyName&quot;; </span><span class="lines">@@ -212,22 +194,13 @@
</span><span class="cx">     public void shouldRejectMismatchedPolicyName() throws \
Exception { </span><span class="cx">         // Given
</span><span class="cx">         String policyName = &quot;policyName&quot;;
</span><ins>+        String differentPolicyName = &quot;Different!&quot;;
</ins><span class="cx">         JsonValue json = \
JsonValue.json(JsonValue.object(JsonValue.field(&quot;name&quot;, policyName))); \
</span><del>-        CreateRequest request = \
mockCreateRequest(&quot;Different!&quot;, json); </del><ins>+        CreateRequest \
request = mockCreateRequest(differentPolicyName, json); </ins><span class="cx"> 
</span><del>-        // When
-        policyResource.createInstance(mockServerContext, request, \
mockResultHandler); </del><ins>+        Privilege policy = mockPrivilege(policyName, \
123l); +        given(mockParser.parsePolicy(differentPolicyName, \
json)).willReturn(policy); </ins><span class="cx"> 
</span><del>-        // Then
-        verify(mockResultHandler).handleError(isA(BadRequestException.class));
-    }
-
-    @Test
-    public void shouldRejectUnspecifiedPolicyName() throws Exception {
-        // Given
-        JsonValue json = new JsonValue(&quot;&quot;);
-        CreateRequest request = mockCreateRequest(null, json);
-
</del><span class="cx">         // When
</span><span class="cx">         policyResource.createInstance(mockServerContext, \
request, mockResultHandler); </span><span class="cx"> 
</span><span class="lines">@@ -343,7 +316,7 @@
</span><span class="cx">         given(request.getContent()).willReturn(content);
</span><span class="cx">         Privilege privilege = mockPrivilege(id, \
lastModified); </span><span class="cx">         given(mockParser.parsePolicy(id, \
content)).willReturn(privilege); </span><del>-        \
given(mockStore.update(privilege)).willReturn(privilege); </del><ins>+        \
given(mockStore.update(id, privilege)).willReturn(privilege); </ins><span class="cx"> \
 </span><span class="cx">         // When
</span><span class="cx">         policyResource.updateInstance(mockServerContext, id, \
request, mockResultHandler); </span></span></pre></div>
<a id="branchesAME3423openamopenamforgerockrestsrctestjavaorgforgerockopenamforgerockrestentitlementsPrivilegePolicyStoreTestjava"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-forgerock-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/PrivilegePolicyStoreTest.java \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-forgerock-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/PrivilegePolicyStoreTest.java	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-forgerock-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/PrivilegePolicyStoreTest.java	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -110,13 +110,14 @@
</span><span class="cx">     @Test
</span><span class="cx">     public void shouldDelegateUpdatesToPrivilegeManager() \
throws Exception { </span><span class="cx">         // Given
</span><ins>+        String name = &quot;test&quot;;
</ins><span class="cx">         Privilege policy = new StubPrivilege();
</span><span class="cx"> 
</span><span class="cx">         // When
</span><del>-        Privilege response = testStore.update(policy);
</del><ins>+        Privilege response = testStore.update(name, policy);
</ins><span class="cx"> 
</span><span class="cx">         // Then
</span><del>-        verify(mockManager).modifyPrivilege(policy);
</del><ins>+        verify(mockManager).modifyPrivilege(name, policy);
</ins><span class="cx">         assertThat(response).isSameAs(policy);
</span><span class="cx">     }
</span><span class="cx"> 
</span></span></pre></div>
<a id="branchesAME3423openamopenamoauth2"></a>
<div class="propset"><h4>Property changes: \
branches/AME-3423/openam/openam-oauth2</h4> <pre class="diff"><span>
</span></pre></div>
<a id="svnmergeinfo"></a>
<div class="modfile"><h4>Modified: svn:mergeinfo</h4></div>
<span class="cx">/branches/AME-2629/openam/openam-oauth2:7585-7632
</span><span class="cx">/branches/AME-3405-session-read-from-cts/openam/openam-oauth2:8749-8823
 </span><span class="cx">/branches/AME-3612-pcunnington/openam/openam-oauth2:9534-9723
 </span><span class="cx">/branches/AME-3719/openam/openam-oauth2:9517-9879
</span><span class="cx">/branches/AME-3726-script-sandboxing/openam/openam-oauth2:9663-9819
 </span><span class="cx">/branches/CTS-Async/openam/openam-oauth2:8847-9739
</span><span class="cx">/branches/IIS7PostData/openam/openam-oauth2:224-261
</span><span class="cx">/branches/OPENAM-2961-forgot-password-404/openam/openam-oauth2:8322-8362
 </span><span class="cx">/branches/OPENAM-3097-sessions-not-deleted/openam/openam-oauth2:6910-6946
 </span><span class="cx">/branches/OPENAM-3130-session-quota/openam/openam-oauth2:6958-6972
 </span><span class="cx">/branches/OPENAM-3283-CTS-thread-exceptions/openam/openam-oauth2:7270-7369
 </span><span class="cx">/branches/OPENAM-3425-class-cast-exception/openam/openam-oauth2:8333-8359
 </span><span class="cx">/branches/OPENAM-3782-forgotten-password-changes/openam/openam-oauth2:8747-8835
 </span><span class="cx">/branches/OPENAM-4028-connection-pool/openam/openam-oauth2:9750-10171
 </span><span class="cx">/branches/OPENAM-OPENAM-3528-client-side-session-validation/openam/openam-oauth2:7834-7844
 </span><span class="cx">/branches/ame4272/openam/openam-oauth2:10073-10101
</span><span class="cx">/branches/andy-ame-2227-v2/openam/openam-oauth2:7508-7697
</span><span class="cx">/branches/andyAme3102/openam/openam-oauth2:8312-8413
</span><span class="cx">/branches/maven_merge/openam/openam-oauth2:2556-2558,2756-3124
 </span><span class="cx">/branches/oidc_authn/openam-oauth2:8507,8540,8557-8559,8565-8566
 </span><span class="cx">/branches/openam-3049-cts-reaper-connection-usage/openam/openam-oauth2:6658-6745
 </span><span class="cx">/branches/openam-3053-cts-tab-exception/openam/openam-oauth2:6672-6721
 </span><span class="cx">/branches/openam-3072-cts-configuration/openam/openam-oauth2:6691-6714
 </span><span class="cx">/branches/openam-3092-store-mode-error/openam/openam-oauth2:6729-6733
 </span><span class="cx">/branches/openam-3110-create-or-update-bug/openam/openam-oauth2:6767-6804
 </span><span class="cx">/branches/openam_10.1.0_SAML2_FIXES/openam-oauth2:3725-3740
</span><span class="cx">/branches/openam_10.1.0_jeff/openam-oauth2:3128-3527
</span><span class="cx">/branches/openam_10.1.0_xacml3_JAS/openam/openam-oauth2:4039-4140
 </span><span class="cx">/branches/openam_10.2.0_xacml3_JAS/openam/openam-oauth2:4141-4379
 </span><span class="cx">/branches/openid_connect_implementation/openam-oauth2:4140-5165
 </span><span class="cx">/branches/pcunnington-AME-3115-refactor/openam/openam-oauth2:8348-8473
 </span><span class="cx">/branches/pcunnington-AME-3158/openam/openam-oauth2:8476-8577
 </span><span class="cx">/branches/pcunnington-oauth2/openam/openam-oauth2:8710-8793
</span><span class="cx">/branches/phcunnington-AME-3114/openam/openam-oauth2:8314-8341
 </span><span class="cx">/branches/rest_sts_view_bean/openam-oauth2:9690-9965
</span><span class="cx">/branches/rwapshott-AME-1739/openam/openam-oauth2:5331-5353
</span><span class="cx">/branches/rwapshott-AME-215/openam/openam-oauth2:4091-4155
</span><span class="cx">/branches/rwapshott-AME-257/openam/openam-oauth2:4047-4126
</span><span class="cx">/branches/rwapshott-AME-804/openam/openam-oauth2:4267-5404
</span><span class="cx">/branches/rwapshott-ame-2027-cts-oids-should-follow-fr-oid-scheme/openam/openam-oauth2:5609-5614
 </span><span class="cx">/branches/rwapshott-ame-2160-session-size/openam/openam-oauth2:6086-6319
 </span><span class="cx">/branches/rwapshott-ame-2311-index-names/openam/openam-oauth2:6058-6069
 </span><span class="cx">/branches/rwapshott-ame-258-cts-replication/openam/openam-oauth2:5548-6055
 </span><span class="cx">/branches/rwapshott-openam-2198-session-resource-protection/openam/openam-oauth2:5628-5824
 </span><span class="cx">/branches/rwapshott-openam-2526/openam/openam-oauth2:5442-5484
 </span><span class="cx">/branches/rwapshott-openam-2716-cts-invalid-chars/openam/openam-oauth2:6170-6194
 </span><span class="cx">/branches/rwapshott-openam-2729-saml2-error/openam/openam-oauth2:6247-6257
 </span><span class="cx">/branches/sts_oidc_saml_redux/openam-oauth2:8417-8422,8424,8440,8445-8446,8460,8490,8498
 </span><span class="cx">/branches/sts_restart_persistence/openam-oauth2:9003-9005,9009-9414
 </span><span class="cx">/branches/sts_service_listeners/openam-oauth2:9968-10031,10047-10048,10053
 </span><span class="cx">/branches/sts_token_gen_service/openam-oauth2:8706,8717-8720, \
8723-8725,8727-8728,8731,8737,8740-8742,8759-8760,8774-8776,8796-8797,8800-8801,8818-8819,8821
 </span><span class="cx">/branches/sts_token_gen_service2/openam-oauth2:8844-8887,8894-9000
 </span><span class="cx">/trunk/openam/openam-oauth2:3127-3577,10107-10111,10114-10116 \
,10119,10129-10131,10134-10136,10138-10143,10146,10159-10161,10172,10174-10176,10179,10182-10185,10191,10193,10196-10201,10204,10212
 </span><span class="cx">   + \
/branches/AME-2526-SFO-between-sites/openam/openam-oauth2:7510-8258 </span><span \
class="cx">/branches/AME-2629/openam/openam-oauth2:7585-7632 </span><span \
class="cx">/branches/AME-3405-session-read-from-cts/openam/openam-oauth2:8749-8823 \
</span><span class="cx">/branches/AME-3612-pcunnington/openam/openam-oauth2:9534-9723 \
</span><span class="cx">/branches/AME-3719/openam/openam-oauth2:9517-9879 \
</span><span class="cx">/branches/AME-3726-script-sandboxing/openam/openam-oauth2:9663-9819
 </span><span class="cx">/branches/CTS-Async/openam/openam-oauth2:8847-9739
</span><span class="cx">/branches/IIS7PostData/openam/openam-oauth2:224-261
</span><span class="cx">/branches/OPENAM-2961-forgot-password-404/openam/openam-oauth2:8322-8362
 </span><span class="cx">/branches/OPENAM-3097-sessions-not-deleted/openam/openam-oauth2:6910-6946
 </span><span class="cx">/branches/OPENAM-3130-session-quota/openam/openam-oauth2:6958-6972
 </span><span class="cx">/branches/OPENAM-3283-CTS-thread-exceptions/openam/openam-oauth2:7270-7369
 </span><span class="cx">/branches/OPENAM-3425-class-cast-exception/openam/openam-oauth2:8333-8359
 </span><span class="cx">/branches/OPENAM-3782-forgotten-password-changes/openam/openam-oauth2:8747-8835
 </span><span class="cx">/branches/OPENAM-4028-connection-pool/openam/openam-oauth2:9750-10171
 </span><span class="cx">/branches/OPENAM-4384-ssoadm-classpath/openam/openam-oauth2:10263-10264
 </span><span class="cx">/branches/OPENAM-OPENAM-3528-client-side-session-validation/openam/openam-oauth2:7834-7844
 </span><span class="cx">/branches/ame4272/openam/openam-oauth2:10073-10101
</span><span class="cx">/branches/andy-ame-2227-v2/openam/openam-oauth2:7508-7697
</span><span class="cx">/branches/andyAme3102/openam/openam-oauth2:8312-8413
</span><span class="cx">/branches/maven_merge/openam/openam-oauth2:2556-2558,2756-3124
 </span><span class="cx">/branches/oidc_authn/openam-oauth2:8507,8540,8557-8559,8565-8566
 </span><span class="cx">/branches/openam-3049-cts-reaper-connection-usage/openam/openam-oauth2:6658-6745
 </span><span class="cx">/branches/openam-3053-cts-tab-exception/openam/openam-oauth2:6672-6721
 </span><span class="cx">/branches/openam-3072-cts-configuration/openam/openam-oauth2:6691-6714
 </span><span class="cx">/branches/openam-3092-store-mode-error/openam/openam-oauth2:6729-6733
 </span><span class="cx">/branches/openam-3110-create-or-update-bug/openam/openam-oauth2:6767-6804
 </span><span class="cx">/branches/openam_10.1.0_SAML2_FIXES/openam-oauth2:3725-3740
</span><span class="cx">/branches/openam_10.1.0_jeff/openam-oauth2:3128-3527
</span><span class="cx">/branches/openam_10.1.0_xacml3_JAS/openam/openam-oauth2:4039-4140
 </span><span class="cx">/branches/openam_10.2.0_xacml3_JAS/openam/openam-oauth2:4141-4379
 </span><span class="cx">/branches/openid_connect_implementation/openam-oauth2:4140-5165
 </span><span class="cx">/branches/pcunnington-AME-3115-refactor/openam/openam-oauth2:8348-8473
 </span><span class="cx">/branches/pcunnington-AME-3158/openam/openam-oauth2:8476-8577
 </span><span class="cx">/branches/pcunnington-oauth2/openam/openam-oauth2:8710-8793
</span><span class="cx">/branches/phcunnington-AME-3114/openam/openam-oauth2:8314-8341
 </span><span class="cx">/branches/rest_sts_view_bean/openam-oauth2:9690-9965
</span><span class="cx">/branches/rwapshott-AME-1739/openam/openam-oauth2:5331-5353
</span><span class="cx">/branches/rwapshott-AME-215/openam/openam-oauth2:4091-4155
</span><span class="cx">/branches/rwapshott-AME-257/openam/openam-oauth2:4047-4126
</span><span class="cx">/branches/rwapshott-AME-804/openam/openam-oauth2:4267-5404
</span><span class="cx">/branches/rwapshott-ame-2027-cts-oids-should-follow-fr-oid-scheme/openam/openam-oauth2:5609-5614
 </span><span class="cx">/branches/rwapshott-ame-2160-session-size/openam/openam-oauth2:6086-6319
 </span><span class="cx">/branches/rwapshott-ame-2311-index-names/openam/openam-oauth2:6058-6069
 </span><span class="cx">/branches/rwapshott-ame-258-cts-replication/openam/openam-oauth2:5548-6055
 </span><span class="cx">/branches/rwapshott-openam-2198-session-resource-protection/openam/openam-oauth2:5628-5824
 </span><span class="cx">/branches/rwapshott-openam-2526/openam/openam-oauth2:5442-5484
 </span><span class="cx">/branches/rwapshott-openam-2716-cts-invalid-chars/openam/openam-oauth2:6170-6194
 </span><span class="cx">/branches/rwapshott-openam-2729-saml2-error/openam/openam-oauth2:6247-6257
 </span><span class="cx">/branches/sts_oidc_saml_redux/openam-oauth2:8417-8422,8424,8440,8445-8446,8460,8490,8498
 </span><span class="cx">/branches/sts_restart_persistence/openam-oauth2:9003-9005,9009-9414
 </span><span class="cx">/branches/sts_service_listeners/openam-oauth2:9968-10031,10047-10048,10053
 </span><span class="cx">/branches/sts_token_gen_service/openam-oauth2:8706,8717-8720, \
8723-8725,8727-8728,8731,8737,8740-8742,8759-8760,8774-8776,8796-8797,8800-8801,8818-8819,8821
 </span><span class="cx">/branches/sts_token_gen_service2/openam-oauth2:8844-8887,8894-9000
 </span><span class="cx">/trunk/openam/openam-oauth2:3127-3577,10107-10111,10114-10116 \
,10119,10129-10131,10134-10136,10138-10143,10146,10159-10161,10172,10174-10176,10179,1 \
0182-10185,10191,10193,10196-10201,10204,10212,10214,10217-10218,10222,10224,10229-10230,10243-10244,10249,10251,10253-10255,10258-10259,10265,10274,10276,10282,10288
 </span><a id="branchesAME3423openamopenamoauth2srcmainjavaorgforgerockopenamoauth2OAuthTokenStorejava"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-oauth2/src/main/java/org/forgerock/openam/oauth2/OAuthTokenStore.java \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-oauth2/src/main/java/org/forgerock/openam/oauth2/OAuthTokenStore.java	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-oauth2/src/main/java/org/forgerock/openam/oauth2/OAuthTokenStore.java	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -114,8 +114,8 @@
</span><span class="cx">      * @return A JsonValue of the query results.
</span><span class="cx">      * @throws CoreTokenException If there is a problem \
performing the query. </span><span class="cx">      */
</span><del>-    public JsonValue query(Map&lt;String, Object&gt; queryParameters) \
                throws CoreTokenException {
-        Collection&lt;Token&gt; tokens = cts.query(convertRequest(queryParameters));
</del><ins>+    public JsonValue query(Map&lt;String, Object&gt; queryParameters, \
TokenFilter.Type type) throws CoreTokenException { +        Collection&lt;Token&gt; \
tokens = cts.query(convertRequest(queryParameters, type)); </ins><span class="cx">    \
return convertResults(tokens); </span><span class="cx">     }
</span><span class="cx"> 
</span><span class="lines">@@ -123,11 +123,12 @@
</span><span class="cx">      * Converts the Map of filter parameters into an LDAP \
filter. </span><span class="cx">      *
</span><span class="cx">      * @param filters A Map of filter parameters.
</span><ins>+     * @param type The type of filter required (and/or).
</ins><span class="cx">      * @return A Mapping of CoreTokenField to Objects to \
query by. </span><span class="cx">      */
</span><del>-    private TokenFilter convertRequest(Map&lt;String, Object&gt; \
filters) { </del><ins>+    private TokenFilter convertRequest(Map&lt;String, \
Object&gt; filters, TokenFilter.Type type) { +        \
TokenFilterBuilder.FilterAttributeBuilder builder = new \
TokenFilterBuilder().type(type); </ins><span class="cx"> 
</span><del>-        TokenFilterBuilder.FilterAttributeBuilder builder = new \
TokenFilterBuilder().or(); </del><span class="cx">         for (OAuthTokenField field \
: OAuthTokenField.values()) { </span><span class="cx">             if \
(filters.containsKey(field.getOAuthField())) { </span><span class="cx">               \
builder.withAttribute(field.getField(), filters.get(field.getOAuthField())); \
</span></span></pre></div> <a \
id="branchesAME3423openamopenamoauth2srcmainjavaorgforgerockopenamoauth2OpenAMOAuth2ProviderSettingsFactoryjava"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-oauth2/src/main/java/org/forgerock/openam/oauth2/OpenAMOAuth2ProviderSettingsFactory.java \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-oauth2/src/main/java/org/forgerock/openam/oauth2/OpenAMOAuth2ProviderSettingsFactory.java	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-oauth2/src/main/java/org/forgerock/openam/oauth2/OpenAMOAuth2ProviderSettingsFactory.java	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -61,6 +61,16 @@
</span><span class="cx">     }
</span><span class="cx"> 
</span><span class="cx">     /**
</span><ins>+     * Only to be used internally by AM.
+     *
+     * @param realm The realm.
+     * @return The OAuth2ProviderSettings instance.
+     */
+    public OAuth2ProviderSettings get(String realm) {
+        return getInstance(realmNormaliser.normalise(realm), null);
+    }
+
+    /**
</ins><span class="cx">      * Gets the instance of the OAuth2ProviderSettings.
</span><span class="cx">      * &lt;br/&gt;
</span><span class="cx">      * Cache each provider settings on the realm it was \
created for. </span></span></pre></div>
<a id="branchesAME3423openamopenamoauth2srcmainjavaorgforgerockopenamoauth2OpenAMTokenStorejava"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-oauth2/src/main/java/org/forgerock/openam/oauth2/OpenAMTokenStore.java \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-oauth2/src/main/java/org/forgerock/openam/oauth2/OpenAMTokenStore.java	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-oauth2/src/main/java/org/forgerock/openam/oauth2/OpenAMTokenStore.java	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> import \
org.forgerock.oauth2.core.exceptions.InvalidGrantException; </span><span class="cx"> \
import org.forgerock.oauth2.core.exceptions.InvalidRequestException; </span><span \
class="cx"> import org.forgerock.oauth2.core.exceptions.ServerException; \
</span><ins>+import org.forgerock.openam.cts.api.filter.TokenFilter; </ins><span \
class="cx"> import org.forgerock.openam.cts.exceptions.CoreTokenException; \
</span><span class="cx"> import \
org.forgerock.openam.openidconnect.OpenAMOpenIdConnectToken; </span><span class="cx"> \
import org.forgerock.openidconnect.OpenIdConnectClientRegistration; </span><span \
class="lines">@@ -284,7 +285,7 @@ </span><span class="cx">         \
query.put(OAuth2Constants.CoreTokenParams.REFRESH_TOKEN, tokenId); </span><span \
class="cx">  </span><span class="cx">         try {
</span><del>-            results = tokenStore.query(query);
</del><ins>+            results = tokenStore.query(query, TokenFilter.Type.OR);
</ins><span class="cx">         } catch (CoreTokenException e) {
</span><span class="cx">             logger.error(&quot;Unable to query refresh token \
corresponding to id: &quot; + tokenId, e); </span><span class="cx">             throw \
new InvalidRequestException(); </span></span></pre></div>
<a id="branchesAME3423openamopenamscriptingsrcmainjavaorgforgerockopenamscriptingsandboxGroovySandboxValueFilterjava"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-scripting/src/main/java/org/forgerock/openam/scripting/sandbox/GroovySandboxValueFilter.java \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-scripting/src/main/java/org/forgerock/openam/scripting/sandbox/GroovySandboxValueFilter.java	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-scripting/src/main/java/org/forgerock/openam/scripting/sandbox/GroovySandboxValueFilter.java	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -53,7 +53,13 @@
</span><span class="cx">             return null;
</span><span class="cx">         }
</span><span class="cx">         // For a static call or constructor then the target \
will be the class, otherwise it will be an object instance </span><del>-        final \
Class&lt;?&gt; clazz = target instanceof Class ? (Class&lt;?&gt;) target : \
target.getClass(); </del><ins>+        Class&lt;?&gt; clazz = target instanceof Class \
? (Class&lt;?&gt;) target : target.getClass(); +
+        // OPENAM-4347: Treat array types as their component type for the purposes \
of sandboxing. +        if (clazz.isArray()) {
+            clazz = clazz.getComponentType();
+        }
+
</ins><span class="cx">         final String className = clazz.getName();
</span><span class="cx"> 
</span><span class="cx">         if (classShutter.visibleToScripts(className)) {
</span></span></pre></div>
<a id="branchesAME3423openamopenamserveronlysrcmainresourcesMETAINFservicescomgoogleinjectAbstractModule"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-server-only/src/main/resources/META-INF/services/com.google.inject.AbstractModule \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-server-only/src/main/resources/META-INF/services/com.google.inject.AbstractModule	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-server-only/src/main/resources/META-INF/services/com.google.inject.AbstractModule	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -1 +1,17 @@
</span><del>-org.forgerock.openam.core.guice.CoreGuiceModule
</del><span class="cx">\ No newline at end of file
</span><ins>+#
+# The contents of this file are subject to the terms of the Common Development and
+# Distribution License (the License). You may not use this file except in compliance \
with the +# License.
+#
+# You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for \
the +# specific language governing permission and limitations under the License.
+#
+# When distributing Covered Software, include this CDDL Header Notice in each file \
and include +# the License file at legal/CDDLv1.0.txt. If applicable, add the \
following below the CDDL +# Header, with the fields enclosed by brackets [] replaced \
by your own identifying +# information: &quot;Portions copyright [year] [name of \
copyright owner]&quot;. +#
+# Copyright 2014 ForgeRock AS.
+#
+org.forgerock.openam.core.guice.CoreGuiceModule
+org.forgerock.openam.core.guice.DataLayerGuiceModule
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="branchesAME3423openamopenamuipolicysrcmainjsorgforgerockopenamuipolicyManageApplicationsViewjs"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-ui-policy/src/main/js/org/forgerock/openam/ui/policy/ManageApplicationsView.js \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-ui-policy/src/main/js/org/forgerock/openam/ui/policy/ManageApplicationsView.js	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-ui-policy/src/main/js/org/forgerock/openam/ui/policy/ManageApplicationsView.js	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -41,28 +41,38 @@
</span><span class="cx">                     return '&lt;a href=&quot;#app/' + \
cellvalue + '&quot;&gt;' + cellvalue + '&lt;/a&gt;'; </span><span class="cx">         \
}, </span><span class="cx">                 policyLinkFormatter = function \
(cellvalue, options, rowObject) { </span><del>-                    return '&lt;a \
href=&quot;#app/' + cellvalue + '/policies/&quot;&gt;View&lt;/a&gt;'; </del><ins>+    \
return '&lt;a href=&quot;#app/' + cellvalue + '/policies/&quot; \
class=&quot;icon-search&quot;&gt;&lt;/a&gt;'; </ins><span class="cx">                 \
}; </span><span class="cx"> 
</span><span class="cx">             this.parentRender(function () {
</span><span class="cx">                 var options = {
</span><del>-                    view: this,
-                    id: '#manageApps',
-                    url: '/openam/json/applications?_queryFilter=true',
-                    colNames: ['Name', 'Realm', 'Type', 'Last Modified', \
                'Policies'],
-                    colModel: [
-                        {name: 'name', formatter: appLinkFormatter, width: 260},
-                        {name: 'realm', width: 70},
-                        {name: 'applicationType', width: 260},
-                        {name: 'lastModifiedDate', width: 260},
-                        {name: 'name', formatter: policyLinkFormatter,  width: 70}
-                    ],
-                    width: '920',
-                    pager: '#appsPager',
-                    callback: callback
-                };
</del><ins>+                        url: \
'/openam/json/applications?_queryFilter=true', +                        colNames: \
['Name', 'Description', 'Realm', 'Type', 'Author', 'Created', 'Modified By', +        \
'Last Modified', 'Actions', 'Conditions', 'Resources', 'Subjects', 'Override Rule', \
'Policies'], +                        colModel: [
+                            {name: 'name', width: 250, formatter: appLinkFormatter, \
frozen: true}, +                            {name: 'description', width: 150},
+                            {name: 'realm', width: 150},
+                            {name: 'applicationType', width: 250},
+                            {name: 'createdBy', width: 250},
+                            {name: 'creationDate', width: 150, formatter: \
uiUtils.commonJQGridFormatters.dateFormatter}, +                            {name: \
'lastModifiedBy', width: 250}, +                            {name: \
'lastModifiedDate', width: 150, formatter: \
uiUtils.commonJQGridFormatters.dateFormatter}, +                            {name: \
'actions', width: 250, formatter: uiUtils.commonJQGridFormatters.objectFormatter}, +  \
{name: 'conditions', width: 150, formatter: \
uiUtils.commonJQGridFormatters.arrayFormatter}, +                            {name: \
'resources', width: 250, formatter: uiUtils.commonJQGridFormatters.arrayFormatter}, + \
{name: 'subjects', width: 150, formatter: \
uiUtils.commonJQGridFormatters.arrayFormatter}, +                            {name: \
'entitlementCombiner', width: 100}, +                            {name: 'name', \
width: 30, formatter: policyLinkFormatter} +                        ],
+                        width: 920,
+                        shrinkToFit: false,
+                        pager: '#appsPager'
</ins><span class="cx"> 
</span><del>-                uiUtils.buildRestResponseBasedJQGrid(options);
</del><ins>+                    },
+                    grid = uiUtils.buildRestResponseBasedJQGrid(this, '#manageApps', \
options, callback); +
+                grid.jqGrid('setFrozenColumns');
</ins><span class="cx">             });
</span><span class="cx">         }
</span><span class="cx">     });
</span></span></pre></div>
<a id="branchesAME3423openamopenamuipolicysrcmainjsorgforgerockopenamuipolicyManagePoliciesViewjs"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-ui-policy/src/main/js/org/forgerock/openam/ui/policy/ManagePoliciesView.js \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-ui-policy/src/main/js/org/forgerock/openam/ui/policy/ManagePoliciesView.js	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-ui-policy/src/main/js/org/forgerock/openam/ui/policy/ManagePoliciesView.js	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -48,20 +48,28 @@
</span><span class="cx">                 \
this.$el.find('#managePoliciesTitle').text(&quot;Manage &quot; + appName + &quot; \
Policies&quot;); </span><span class="cx"> 
</span><span class="cx">                 var options = {
</span><del>-                    view: this,
-                    id: '#managePolicies',
-                    url: '/openam/json/policies?_queryFilter=' + \
                encodeURIComponent('applicationName eq &quot;' + appName + '&quot;'),
-                    colNames: ['Name', 'Last Modified'],
-                    colModel: [
-                        {name: 'name', formatter: policyLinkFormatter, width: 460},
-                        {name: 'lastModified', width: 460}
-                    ],
-                    width: '920',
-                    pager: '#policiesPager',
-                    callback: callback
-                };
</del><ins>+                        url: '/openam/json/policies?_queryFilter=' + \
encodeURIComponent('applicationName eq &quot;' + appName + '&quot;'), +               \
colNames: ['Name', 'Description', 'Author', 'Created', 'Modified By', 'Last \
Modified', 'Actions', +                            'Resources', 'Resource \
Attributes', 'Subject'], +                        colModel: [
+                            {name: 'name', width: 250, frozen: true, formatter: \
policyLinkFormatter}, +                            {name: 'description', width: 150},
+                            {name: 'createdBy', width: 250},
+                            {name: 'creationDate', width: 150, formatter: \
uiUtils.commonJQGridFormatters.dateFormatter}, +                            {name: \
'lastModifiedBy', width: 250}, +                            {name: 'lastModified', \
width: 150, formatter: uiUtils.commonJQGridFormatters.dateFormatter}, +               \
{name: 'actionValues', width: 250, formatter: \
uiUtils.commonJQGridFormatters.objectFormatter}, +                            {name: \
'resources', width: 250, formatter: uiUtils.commonJQGridFormatters.arrayFormatter}, + \
{name: 'resourceAttributes', width: 150, formatter: \
uiUtils.commonJQGridFormatters.arrayFormatter}, +                            {name: \
'subject', width: 150, formatter: uiUtils.commonJQGridFormatters.objectFormatter} +   \
], +                        width: 920,
+                        shrinkToFit: false,
+                        pager: '#policiesPager'
+                    },
+                    grid = uiUtils.buildRestResponseBasedJQGrid(this, \
'#managePolicies', options, callback); </ins><span class="cx"> 
</span><del>-                uiUtils.buildRestResponseBasedJQGrid(options);
</del><ins>+                grid.jqGrid('setFrozenColumns');
</ins><span class="cx">             });
</span><span class="cx">         }
</span><span class="cx">     });
</span></span></pre></div>
<a id="branchesAME3423openamopenamuipolicysrcmainresourcescsspolicycommonless"></a>
<div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-ui-policy/src/main/resources/css/policy/common.less \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-ui-policy/src/main/resources/css/policy/common.less	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-ui-policy/src/main/resources/css/policy/common.less	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -238,11 +238,30 @@
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> .ui-jqgrid {
</span><ins>+    tr.ui-row-ltr td {
+        vertical-align: top;
+    }
</ins><span class="cx"> 
</span><span class="cx">     #manageApps_applicationType, \
td[aria-describedby=&quot;manageApps_applicationType&quot;], \
td[aria-describedby=&quot;manageApps_name&quot;] { </span><span class="cx">         \
text-overflow: ellipsis; </span><span class="cx">         white-space: nowrap;
</span><span class="cx">         overflow: hidden;
</span><span class="cx">     }
</span><ins>+    #manageApps td[aria-describedby=&quot;manageApps_name&quot;] {
+        text-align: center;
+        .icon-search{
+            text-decoration: none;
+            font-size: 16px;
+            vertical-align: middle;
+            color: #80b7ab;
+        }
+    }
+    .ui-state-hover a{
+        color: #fff !important;
+    }
</ins><span class="cx"> 
</span><ins>+}
+
+.frozen-bdiv.ui-jqgrid-bdiv {
+    height: auto !important;
</ins><span class="cx"> }
</span><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="branchesAME3423openamopenamuipolicysrctestqunitpolicyjs"></a>
<div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-ui-policy/src/test/qunit/policy.js (10295 => \
10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-ui-policy/src/test/qunit/policy.js	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-ui-policy/src/test/qunit/policy.js	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -332,6 +332,9 @@
</span><span class="cx">                     QUnit.ok(rowData.length &gt; 0, &quot;At \
least one application listed in the table&quot;); </span><span class="cx">            \
QUnit.ok(rowData.length === table.find(&quot;tr[id]&quot;).length, &quot;Number of \
rows in grid match number displayed&quot;); </span><span class="cx"> 
</span><ins>+                    QUnit.ok(table.jqGrid('getGridParam', \
'colNames').length === table.find(&quot;tr[id]&quot;)[0].children.length, +           \
'Total number of columns displayed matches number of columns requested'); +
</ins><span class="cx">                     // Pagination
</span><span class="cx">                     QUnit.ok($('#appsPager', \
manageAppsView.$el).length === 1, 'Pager is present'); </span><span class="cx"> 
</span><span class="lines">@@ -585,6 +588,9 @@
</span><span class="cx"> 
</span><span class="cx">                     \
QUnit.ok(managePolView.$el.find('#backToApps').length, &quot;Back button is \
available&quot;); </span><span class="cx"> 
</span><ins>+                    QUnit.ok(table.jqGrid('getGridParam', \
'colNames').length === table.find(&quot;tr[id]&quot;)[0].children.length, +           \
'Total number of columns displayed matches number of columns requested'); +
</ins><span class="cx">                     // Pagination
</span><span class="cx">                     QUnit.ok($('#policiesPager', \
managePolView.$el).length === 1, 'Pager is present'); </span><span class="cx"> 
</span></span></pre></div>
<a id="branchesAME3423openamopenamuiriasrcmainjsorgforgerockopenamuidashboardDashboardViewjs"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/dashboard/DashboardView.js \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/dashboard/DashboardView.js	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/dashboard/DashboardView.js	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -30,8 +30,9 @@
</span><span class="cx"> \
define(&quot;org/forgerock/openam/ui/dashboard/DashboardView&quot;, [ </span><span \
class="cx">     &quot;org/forgerock/commons/ui/common/main/AbstractView&quot;, \
</span><span class="cx">     \
&quot;org/forgerock/openam/ui/dashboard/MyApplicationsView&quot;, </span><del>-    \
                &quot;org/forgerock/openam/ui/dashboard/TrustedDevicesView&quot;
-], function(AbstractView, MyApplicationsView, TrustedDevicesView) {
</del><ins>+    &quot;org/forgerock/openam/ui/dashboard/TrustedDevicesView&quot;,
+    &quot;org/forgerock/openam/ui/dashboard/OAuthTokensView&quot;
+], function(AbstractView, MyApplicationsView, TrustedDevicesView, OAuthTokensView) {
</ins><span class="cx"> 
</span><span class="cx">     var Dashboard = AbstractView.extend({
</span><span class="cx">         template: \
&quot;templates/openam/DashboardTemplate.html&quot;, </span><span class="lines">@@ \
-41,6 +42,7 @@ </span><span class="cx"> 
</span><span class="cx">                 MyApplicationsView.render();
</span><span class="cx">                 TrustedDevicesView.render();
</span><ins>+                OAuthTokensView.render();
</ins><span class="cx">             });
</span><span class="cx">         }
</span><span class="cx">     });
</span></span></pre></div>
<a id="branchesAME3423openamopenamuiriasrcmainjsorgforgerockopenamuidashboardOAuthToke \
nsDelegatejsfromrev10253trunkopenamopenamuiriasrcmainjsorgforgerockopenamuidashboardOAuthTokensDelegatejs"></a>
 <div class="copfile"><h4>Copied: \
branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/dashboard/OAuthTokensDelegate.js \
(from rev 10253, trunk/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/dashboard/OAuthTokensDelegate.js) \
(0 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/dashboard/OAuthTokensDelegate.js	 \
                (rev 0)
+++ branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/dashboard/OAuthTokensDelegate.js	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -0,0 +1,55 @@
</span><ins>+/**
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2014 ForgeRock AS.
+ *
+ * The contents of this file are subject to the terms
+ * of the Common Development and Distribution License
+ * (the License). You may not use this file except in
+ * compliance with the License.
+ *
+ * You can obtain a copy of the License at
+ * http://forgerock.org/license/CDDLv1.0.html
+ * See the License for the specific language governing
+ * permission and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL
+ * Header Notice in each file and include the License file
+ * at http://forgerock.org/license/CDDLv1.0.html
+ * If applicable, add the following below the CDDL Header,
+ * with the fields enclosed by brackets [] replaced by
+ * your own identifying information:
+ * &quot;Portions Copyrighted [year] [name of copyright owner]&quot;
+ */
+
+/*global $, define, _ */
+
+define(&quot;org/forgerock/openam/ui/dashboard/OAuthTokensDelegate&quot;, [
+    &quot;org/forgerock/commons/ui/common/util/Constants&quot;,
+    &quot;org/forgerock/commons/ui/common/main/AbstractDelegate&quot;,
+    &quot;org/forgerock/commons/ui/common/main/Configuration&quot;
+], function(constants, AbstractDelegate, conf) {
+
+    var obj = new AbstractDelegate(constants.host + '/' + constants.context + \
'/frrest/'); +
+   obj.getOAuthTokens = function() {
+       return obj.serviceCall({
+            url: 'oauth2/token/?_queryId=access_token',
+            headers: {&quot;Cache-Control&quot;: &quot;no-cache&quot;, \
&quot;Accept-API-Version&quot;: &quot;protocol=1.0,resource=1.0&quot;} +        });
+    };
+
+   obj.deleteOAuthToken = function(id) {
+       return obj.serviceCall({
+           url: 'oauth2/token/' + id + '?_action=revoke',
+           type: &quot;POST&quot;,
+           headers: {&quot;Accept-API-Version&quot;: \
&quot;protocol=1.0,resource=1.0&quot;} +       });
+    };
+
+
+    return obj;
+});
+
+
+
</ins></span></pre></div>
<a id="branchesAME3423openamopenamuiriasrcmainjsorgforgerockopenamuidashboardOAuthToke \
nsViewjsfromrev10253trunkopenamopenamuiriasrcmainjsorgforgerockopenamuidashboardOAuthTokensViewjs"></a>
 <div class="copfile"><h4>Copied: \
branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/dashboard/OAuthTokensView.js \
(from rev 10253, trunk/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/dashboard/OAuthTokensView.js) \
(0 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/dashboard/OAuthTokensView.js	 \
                (rev 0)
+++ branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/dashboard/OAuthTokensView.js	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -0,0 +1,65 @@
</span><ins>+/**
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2014 ForgeRock AS.
+ *
+ * The contents of this file are subject to the terms
+ * of the Common Development and Distribution License
+ * (the License). You may not use this file except in
+ * compliance with the License.
+ *
+ * You can obtain a copy of the License at
+ * http://forgerock.org/license/CDDLv1.0.html
+ * See the License for the specific language governing
+ * permission and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL
+ * Header Notice in each file and include the License file
+ * at http://forgerock.org/license/CDDLv1.0.html
+ * If applicable, add the following below the CDDL Header,
+ * with the fields enclosed by brackets [] replaced by
+ * your own identifying information:
+ * &quot;Portions Copyrighted [year] [name of copyright owner]&quot;
+ */
+
+/*global define, $, form2js, _ */
+
+define(&quot;org/forgerock/openam/ui/dashboard/OAuthTokensView&quot;, [
+    &quot;org/forgerock/commons/ui/common/main/AbstractView&quot;,
+    &quot;org/forgerock/openam/ui/dashboard/OAuthTokensDelegate&quot;
+], function (AbstractView, OAuthTokensDelegate) {
+
+    var OAuthToken = AbstractView.extend({
+            template: &quot;templates/openam/oauth2/TokensTemplate.html&quot;,
+            noBaseTemplate: true,
+            element: '#myOAuthTokens',
+            events: { 'click  a.deleteToken': 'deleteToken' },
+            render: function () {
+
+                var self = this;
+                OAuthTokensDelegate.getOAuthTokens()
+                    .then(function (data) {
+                            self.data.tokens = data.result;
+                            self.parentRender();
+                    });
+            },
+
+            deleteToken: function (e) {
+                e.preventDefault();
+                var self = this;
+                OAuthTokensDelegate.deleteOAuthToken(e.currentTarget.id)
+                    .then(function () {
+                        console.log('Deleted access token');
+                        self.render();
+                    }, function () {
+                        console.error(&quot;Failed to delete access token&quot;);
+                    });
+            }
+        })
+        ;
+
+    return new OAuthToken();
+})
+;
+
+
</ins></span></pre></div>
<a id="branchesAME3423openamopenamuiriasrcmainjsorgforgerockopenamuidashboardmainjs"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/dashboard/main.js \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/dashboard/main.js	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/dashboard/main.js	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -29,5 +29,7 @@
</span><span class="cx">     &quot;./MyApplicationsView&quot;,
</span><span class="cx">     &quot;./TrustedDevicesDelegate&quot;,
</span><span class="cx">     &quot;./TrustedDevicesView&quot;,
</span><del>-    &quot;./DashboardView&quot;
</del><ins>+    &quot;./DashboardView&quot;,
+    &quot;./OAuthTokensDelegate&quot;,
+    &quot;./OAuthTokensView&quot;
</ins><span class="cx"> ]);
</span><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="branchesAME3423openamopenamuiriasrcmainjsorgforgerockopenamuiuserloginRESTLoginViewjs"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/user/login/RESTLoginView.js \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/user/login/RESTLoginView.js	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-ui-ria/src/main/js/org/forgerock/openam/ui/user/login/RESTLoginView.js	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -36,8 +36,9 @@
</span><span class="cx">     \
&quot;org/forgerock/commons/ui/common/util/CookieHelper&quot;, </span><span \
class="cx">     &quot;org/forgerock/commons/ui/common/util/UIUtils&quot;, \
</span><span class="cx">     \
&quot;org/forgerock/commons/ui/common/main/i18nManager&quot;, </span><del>-    \
                &quot;org/forgerock/openam/ui/user/login/RESTLoginHelper&quot;
-], function(AbstractView, authNDelegate, validatorsManager, eventManager, constants, \
conf, sessionManager, router, cookieHelper, uiUtils, i18nManager,restLoginHelper) { \
</del><ins>+    &quot;org/forgerock/openam/ui/user/login/RESTLoginHelper&quot;, +    \
&quot;org/forgerock/commons/ui/common/main/SpinnerManager&quot; +], \
function(AbstractView, authNDelegate, validatorsManager, eventManager, constants, \
conf, sessionManager, router, cookieHelper, uiUtils, i18nManager, restLoginHelper, \
spinnerManager) { </ins><span class="cx"> 
</span><span class="cx">     var LoginView = AbstractView.extend({
</span><span class="cx">         template: \
&quot;templates/openam/RESTLoginTemplate.html&quot;, </span><span class="lines">@@ \
-100,7 +101,7 @@ </span><span class="cx">             \
eventManager.sendEvent(constants.EVENT_LOGIN_REQUEST, submitContent); </span><span \
class="cx">         }, </span><span class="cx">         render: function(args, \
callback) { </span><del>-            var 
</del><ins>+            var
</ins><span class="cx">                 urlParams = {},//deserialized querystring \
params </span><span class="cx">                 promise = $.Deferred();
</span><span class="cx"> 
</span><span class="lines">@@ -224,34 +225,34 @@
</span><span class="cx">                             // attempt to load a \
stage-specific template to render this form.  If not found, use the generic one. \
</span><span class="cx">                             uiUtils </span><span class="cx"> \
.fillTemplateWithData(&quot;templates/openam/authn/&quot; + reqs.stage + \
&quot;.html&quot;, </span><del>-                                    \
                _.extend(conf.globalData, this.data),
-                                    _.bind(function (populatedTemplate) {
-                                        if (typeof populatedTemplate === \
&quot;string&quot;) { // a rendered template will be a string; an error will be an \
                object
-                                            this.template = \
                &quot;templates/openam/authn/&quot; + reqs.stage + &quot;.html&quot;;
-                                        } else {
-                                            this.template = this.genericTemplate;
-                                        }
</del><ins>+                                _.extend(conf.globalData, this.data),
+                                _.bind(function (populatedTemplate) {
+                                    if (typeof populatedTemplate === \
&quot;string&quot;) { // a rendered template will be a string; an error will be an \
object +                                        this.template = \
&quot;templates/openam/authn/&quot; + reqs.stage + &quot;.html&quot;; +               \
} else { +                                        this.template = \
this.genericTemplate; +                                    }
</ins><span class="cx"> 
</span><del>-                                        this.data.showForgotPassword = \
                false;
-                                        this.data.showRegister = false;
-                                        this.data.showSpacer = false;
</del><ins>+                                    this.data.showForgotPassword = false;
+                                    this.data.showRegister = false;
+                                    this.data.showSpacer = false;
</ins><span class="cx"> 
</span><del>-                                        \
                if(conf.globalData.forgotPassword === &quot;true&quot;){
-                                            this.data.showForgotPassword = true;
</del><ins>+                                    if(conf.globalData.forgotPassword === \
&quot;true&quot;){ +                                        \
this.data.showForgotPassword = true; +                                    }
+                                    if(conf.globalData.selfRegistration === \
&quot;true&quot;){ +                                        \
if(this.data.showForgotPassword){ +                                            \
this.data.showSpacer = true; </ins><span class="cx">                                  \
} </span><del>-                                        \
                if(conf.globalData.selfRegistration === &quot;true&quot;){
-                                            if(this.data.showForgotPassword){
-                                                this.data.showSpacer = true;
-                                            }
-                                            this.data.showRegister = true;
-                                        }
-                                        this.parentRender(_.bind(function() {
-                                            this.reloadData();
-                                            // resolve a promise when all templates \
                will be loaded
-                                            promise.resolve();
-                                        }, this));
-                                    }, this)
-                                );
</del><ins>+                                        this.data.showRegister = true;
+                                    }
+                                    this.parentRender(_.bind(function() {
+                                        this.reloadData();
+                                        // resolve a promise when all templates will \
be loaded +                                        promise.resolve();
+                                    }, this));
+                                }, this)
+                            );
</ins><span class="cx">                         }
</span><span class="cx"> 
</span><span class="cx">                     }
</span><span class="lines">@@ -262,13 +263,13 @@
</span><span class="cx">                     this.parentRender();
</span><span class="cx">                 }, this));
</span><span class="cx"> 
</span><del>-                promise
-                    .done(function() {
-                        if (cookieHelper.getCookie('invalidRealm')) {
-                            cookieHelper.deleteCookie('invalidRealm');
-                            \
eventManager.sendEvent(constants.EVENT_DISPLAY_MESSAGE_REQUEST, \
                &quot;invalidRealm&quot;);
-                        }
-                    });
</del><ins>+            promise
+                .done(function() {
+                    if (cookieHelper.getCookie('invalidRealm')) {
+                        cookieHelper.deleteCookie('invalidRealm');
+                        \
eventManager.sendEvent(constants.EVENT_DISPLAY_MESSAGE_REQUEST, \
&quot;invalidRealm&quot;); +                    }
+                });
</ins><span class="cx"> 
</span><span class="cx">         },
</span><span class="cx">         reloadData: function () {
</span><span class="lines">@@ -313,7 +314,8 @@
</span><span class="cx">         var result = &quot;&quot;,
</span><span class="cx">             cb = this,
</span><span class="cx">             prompt,
</span><del>-            options;
</del><ins>+            options,
+            hideButton;
</ins><span class="cx"> 
</span><span class="cx">         prompt = _.find(cb.output, function (o) { return \
o.name === &quot;prompt&quot;; }); </span><span class="cx">         if (prompt \
&amp;&amp; prompt.value !== undefined &amp;&amp; prompt.value.length) { </span><span \
class="lines">@@ -339,7 +341,10 @@ </span><span class="cx">                 \
options.type = _.find(cb.output, function (o) { return o.name === \
&quot;messageType&quot;; }); </span><span class="cx"> 
</span><span class="cx">                 if (options.type.value === &quot;4&quot;) { \
//4 is our magic number for a &lt;script&gt;, taken from \
ScriptTextOutputCallback.java </span><del>-                    result += '&lt;script \
type=&quot;text/javascript&quot;&gt;' + options.message.value + '&lt;/script&gt;'; \
</del><ins>+                    hideButton = \
&quot;if(document.getElementsByClassName('button')[0] != undefined){document&quot; + \
+                        &quot;.getElementsByClassName&quot; + +                      \
&quot;('button')[0].style.visibility = 'hidden';}&quot;; +                    result \
+= &quot;&lt;script type='text/javascript'&gt;&quot; + hideButton + \
options.message.value + &quot;&lt;/script&gt;&quot;; </ins><span class="cx">          \
} else { </span><span class="cx">                     result += '&lt;div \
id=&quot;callback_' + cb.input.index + '&quot; class=&quot;textOutputCallback ' + \
options.type.value + '&quot;&gt;' + options.message.value + '&lt;/div&gt;'; \
</span><span class="cx">                 } </span></span></pre></div>
<a id="branchesAME3423openamopenamuiriasrcmainresourcescssopenamdashboardless"></a>
<div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-ui-ria/src/main/resources/css/openam/dashboard.less \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-ui-ria/src/main/resources/css/openam/dashboard.less	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-ui-ria/src/main/resources/css/openam/dashboard.less	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -46,4 +46,33 @@
</span><span class="cx">     &amp;:nth-child(even){ background-color:#fff; }
</span><span class="cx">     &amp;:hover{ background-color:#ffe; }
</span><span class="cx">   }
</span><ins>+
+}#oAuthTokens {
+
+  table {
+    border-collapse: collapse;
+    width:100%;
+  }
+
+  table, th {
+    border: 1px solid #ccc;
+    padding: 10px 0;
+  }
+
+  th {
+    background-color:#ddd;
+    &amp;:last-child{  width:120px;  }
+  }
+
+  td {
+    border-left: 1px solid #ccc;
+    padding: 10px;
+    &amp;:last-child{ text-align:center; }
+  }
+
+  tr {
+    &amp;:nth-child(odd){  background-color:#eee; }
+    &amp;:nth-child(even){ background-color:#fff; }
+    &amp;:hover{ background-color:#ffe; }
+  }
</ins><span class="cx"> }
</span><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="branchesAME3423openamopenamuiriasrcmainresourceslocalesentranslationjson"></a>
<div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-ui-ria/src/main/resources/locales/en/translation.json \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-ui-ria/src/main/resources/locales/en/translation.json	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-ui-ria/src/main/resources/locales/en/translation.json	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -165,7 +165,7 @@
</span><span class="cx">         },
</span><span class="cx">         &quot;oauth&quot;: {
</span><span class="cx">             &quot;clientID&quot; : &quot;Client ID&quot;,
</span><del>-            &quot;tokenList&quot; : &quot;Token List&quot;,
</del><ins>+            &quot;tokenList&quot; : &quot;Authorized Apps&quot;,
</ins><span class="cx">             &quot;remainingTokens&quot; : &quot;remaining \
tokens&quot;, </span><span class="cx">             &quot;tokenID&quot; : &quot;Token \
ID&quot;, </span><span class="cx">             &quot;expireDate&quot; : &quot;Expire \
Date&quot;, </span><span class="lines">@@ -349,6 +349,14 @@
</span><span class="cx">                 &quot;deleteDevice&quot; : &quot;Delete \
Device&quot; </span><span class="cx">             }
</span><span class="cx">         },
</span><ins>+        &quot;oAuth2&quot; : {
+            &quot;tokens&quot; : {
+                &quot;appName&quot; : &quot;Application&quot;,
+                &quot;scope&quot; : &quot;Scope&quot;,
+                &quot;expiryDate&quot; : &quot;Expiry Date&quot;,
+                &quot;deleteToken&quot; : &quot;Revoke Access&quot;
+            }
+        },
</ins><span class="cx">         &quot;authentication&quot;: {
</span><span class="cx">             &quot;input&quot;: {
</span><span class="cx">                 &quot;name&quot;: &quot;Username&quot;,
</span><span class="lines">@@ -432,4 +440,4 @@
</span><span class="cx">             }
</span><span class="cx">         }
</span><span class="cx">     }
</span><del>-}
</del><span class="cx">\ No newline at end of file
</span><ins>+}
</ins></span></pre></div>
<a id="branchesAME3423openamopenamuiriasrcmainresourcestemplatesopenamDashboardTemplatehtml"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-ui-ria/src/main/resources/templates/openam/DashboardTemplate.html \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-ui-ria/src/main/resources/templates/openam/DashboardTemplate.html	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-ui-ria/src/main/resources/templates/openam/DashboardTemplate.html	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -2,5 +2,6 @@
</span><span class="cx"> 
</span><span class="cx">     &lt;div id=&quot;myApplications&quot;&gt;&lt;/div&gt;
</span><span class="cx">     &lt;div id=&quot;myTrustedDevices&quot;&gt;&lt;/div&gt;
</span><ins>+    &lt;div id=&quot;myOAuthTokens&quot;&gt;&lt;/div&gt;
</ins><span class="cx"> 
</span><span class="cx"> &lt;/div&gt;
</span><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="branchesAME3423openamopenamuiriasrcmainresourcestemplatesopenamoauth2TokensTemplatehtml"></a>
 <div class="modfile"><h4>Modified: \
branches/AME-3423/openam/openam-ui-ria/src/main/resources/templates/openam/oauth2/TokensTemplate.html \
(10295 => 10296)</h4> <pre class="diff"><span>
<span class="info">--- \
branches/AME-3423/openam/openam-ui-ria/src/main/resources/templates/openam/oauth2/TokensTemplate.html	2014-08-28 \
                15:11:32 UTC (rev 10295)
+++ branches/AME-3423/openam/openam-ui-ria/src/main/resources/templates/openam/oauth2/TokensTemplate.html	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -1,13 +1,26 @@
</span><del>-&lt;div id=&quot;tokens&quot; class=&quot;content-bg&quot;&gt;
-    &lt;h2&gt;{{t &quot;templates.oauth.tokenList&quot;}}&lt;/h2&gt;
-    &lt;table id=&quot;tokensTable&quot; class=&quot;radious&quot;&gt;
-        &lt;tr&gt;
-            &lt;th width=&quot;40&quot;&gt;&lt;input type=&quot;checkbox&quot; \
                /&gt;&lt;/th&gt;
-            &lt;th width=&quot;210&quot;&gt;&lt;/th&gt;
-            &lt;th width=&quot;210&quot;&gt;&lt;/th&gt;
-            &lt;th width=&quot;210&quot;&gt;&lt;/th&gt;
-            &lt;th width=&quot;210&quot;&gt;&lt;/th&gt;
-            &lt;th width=&quot;210&quot;&gt;&lt;/th&gt;
-        &lt;/tr&gt;
-    &lt;/table&gt;
</del><ins>+&lt;div id=&quot;oAuthTokens&quot;&gt;
+    {{#if tokens}}
+    &lt;h2 class=&quot;header&quot;&gt;{{t \
&quot;templates.oauth.tokenList&quot;}}&lt;/h2&gt; +    &lt;div \
class=&quot;content-bg&quot;&gt; +        &lt;table&gt;
+
+            &lt;tr&gt;
+                &lt;th scope=&quot;col&quot;&gt;{{t \
&quot;openam.oAuth2.tokens.appName&quot;}}&lt;/th&gt; +                &lt;th \
scope=&quot;col&quot;&gt;{{t &quot;openam.oAuth2.tokens.scope&quot;}}&lt;/th&gt; +    \
&lt;th scope=&quot;col&quot;&gt;{{t \
&quot;openam.oAuth2.tokens.expiryDate&quot;}}&lt;/th&gt; +                &lt;th \
scope=&quot;col&quot;&gt;&lt;/th&gt; +            &lt;/tr&gt;
+
+            {{#each tokens}}
+            &lt;tr&gt;
+                &lt;td&gt;{{this.display_name}} &lt;/td&gt;
+                &lt;td&gt;{{this.scopes}} &lt;/td&gt;
+                &lt;td&gt;{{this.expireTime}} &lt;/td&gt;
+                &lt;td&gt;&lt;a class=&quot;deleteToken&quot; href=&quot;#&quot; \
id=&quot;{{this.id}}&quot;&gt;{{t \
&quot;openam.oAuth2.tokens.deleteToken&quot;}}&lt;/a&gt;&lt;/td&gt; +            \
&lt;/tr&gt; +            {{/each}}
+
+        &lt;/table&gt;
+    &lt;/div&gt;
+    {{/if}}
</ins><span class="cx"> &lt;/div&gt;
</span><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="branchesAME3423openamagents"></a>
<div class="propset"><h4>Property changes: branches/AME-3423/openam-agents</h4>
<pre class="diff"><span>
</span></pre></div>
<a id="svnmergeinfo"></a>
<div class="modfile"><h4>Modified: svn:mergeinfo</h4></div>
<span class="cx">/branches/AME-2526-SFO-between-sites/openam-agents:7510-8258
</span><span class="cx">/branches/AME-3612-pcunnington/openam-agents:9534-9723
</span><span class="cx">/branches/AME-3719/openam-agents:9517-9879
</span><span class="cx">/branches/IIS7PostData/openam-agents:224-261
</span><span class="cx">/branches/OPENAM-2961-forgot-password-404/openam-agents:8322-8362
 </span><span class="cx">/branches/OPENAM-3097-sessions-not-deleted/openam-agents:6910-6946
 </span><span class="cx">/branches/OPENAM-3283-CTS-thread-exceptions/openam-agents:7270-7369
 </span><span class="cx">/branches/OPENAM-3425-class-cast-exception/openam-agents:8333-8359
 </span><span class="cx">/branches/OPENAM-3782-forgotten-password-changes/openam-agents:8747-8835
 </span><span class="cx">/branches/OPENAM-OPENAM-3528-client-side-session-validation/openam-agents:7834-7844
 </span><span class="cx">/branches/ame4272/openam-agents:10073-10101
</span><span class="cx">/branches/andy-ame-2227-v2/openam-agents:7508-7697
</span><span class="cx">/branches/andy-ame1316-connectionfactory/openam-agents:5311-5328
 </span><span class="cx">/branches/andyOpenam1708/openam-agents:5576-5592
</span><span class="cx">/branches/andyOpenam2373/openam-agents:5600-5706
</span><span class="cx">/branches/apforrest-ame1316/openam-agents:4881-5305
</span><span class="cx">/branches/maven_merge/openam-agents:2556-3124
</span><span class="cx">/branches/mdr_javaagents_mvn/openam-agents:5293-5729
</span><span class="cx">/branches/openam-3049-cts-reaper-connection-usage/openam-agents:6658-6745
 </span><span class="cx">/branches/openam-3053-cts-tab-exception/openam-agents:6672-6721
 </span><span class="cx">/branches/openam-3072-cts-configuration/openam-agents:6691-6714
 </span><span class="cx">/branches/openam-3092-store-mode-error/openam-agents:6729-6733
 </span><span class="cx">/branches/openam-3110-create-or-update-bug/openam-agents:6767-6804
 </span><span class="cx">/branches/pcunnington-AME-3115-refactor/openam-agents:8348-8473
 </span><span class="cx">/branches/pcunnington-AME-3158/openam-agents:8476-8577
</span><span class="cx">/branches/pcunnington-AME-350/openam-agents:4165-4344
</span><span class="cx">/branches/pcunnington-ame-344/openam-agents:4651-5199
</span><span class="cx">/branches/pcunnington-oauth2/openam-agents:8710-8793
</span><span class="cx">/branches/phcunnington-AME-3114/openam-agents:8314-8341
</span><span class="cx">/branches/policyimprovements/openam-agents:5513-5515
</span><span class="cx">/branches/rwapshott-AME-1739/openam-agents:5331-5353
</span><span class="cx">/branches/rwapshott-AME-215/openam-agents:4091-4155
</span><span class="cx">/branches/rwapshott-AME-257/openam-agents:4047-4126
</span><span class="cx">/branches/rwapshott-AME-804/openam-agents:4267-5404
</span><span class="cx">/branches/rwapshott-ame-2160-session-size/openam-agents:6086-6319
 </span><span class="cx">/branches/rwapshott-openam-2198-session-resource-protection/openam-agents:5628-5824
 </span><span class="cx">/branches/rwapshott-openam-2526/openam-agents:5442-5484
</span><span class="cx">/branches/rwapshott-openam-2716-cts-invalid-chars/openam-agents:6170-6194
 </span><span class="cx">/trunk/openam-agents:10107-10111,10114-10116,10119,10129-1013 \
1,10134-10136,10138-10143,10146,10159-10161,10172,10174-10176,10179,10182-10185,10191,10193,10196-10201,10204,10212
 </span><span class="cx">   + /branches/10.1.0-Xpress/openam-agents:3888-3892
</span><span class="cx">/branches/AME-2526-SFO-between-sites/openam-agents:7510-8258
</span><span class="cx">/branches/AME-3612-pcunnington/openam-agents:9534-9723
</span><span class="cx">/branches/AME-3719/openam-agents:9517-9879
</span><span class="cx">/branches/IIS7PostData/openam-agents:224-261
</span><span class="cx">/branches/OPENAM-2961-forgot-password-404/openam-agents:8322-8362
 </span><span class="cx">/branches/OPENAM-3097-sessions-not-deleted/openam-agents:6910-6946
 </span><span class="cx">/branches/OPENAM-3283-CTS-thread-exceptions/openam-agents:7270-7369
 </span><span class="cx">/branches/OPENAM-3425-class-cast-exception/openam-agents:8333-8359
 </span><span class="cx">/branches/OPENAM-3782-forgotten-password-changes/openam-agents:8747-8835
 </span><span class="cx">/branches/OPENAM-4384-ssoadm-classpath/openam-agents:10263-10264
 </span><span class="cx">/branches/OPENAM-OPENAM-3528-client-side-session-validation/openam-agents:7834-7844
 </span><span class="cx">/branches/ame4272/openam-agents:10073-10101
</span><span class="cx">/branches/andy-ame-2227-v2/openam-agents:7508-7697
</span><span class="cx">/branches/andy-ame1316-connectionfactory/openam-agents:5311-5328
 </span><span class="cx">/branches/andyOpenam1708/openam-agents:5576-5592
</span><span class="cx">/branches/andyOpenam2373/openam-agents:5600-5706
</span><span class="cx">/branches/apforrest-ame1316/openam-agents:4881-5305
</span><span class="cx">/branches/maven_merge/openam-agents:2556-3124
</span><span class="cx">/branches/mdr_javaagents_mvn/openam-agents:5293-5729
</span><span class="cx">/branches/openam-3049-cts-reaper-connection-usage/openam-agents:6658-6745
 </span><span class="cx">/branches/openam-3053-cts-tab-exception/openam-agents:6672-6721
 </span><span class="cx">/branches/openam-3072-cts-configuration/openam-agents:6691-6714
 </span><span class="cx">/branches/openam-3092-store-mode-error/openam-agents:6729-6733
 </span><span class="cx">/branches/openam-3110-create-or-update-bug/openam-agents:6767-6804
 </span><span class="cx">/branches/pcunnington-AME-3115-refactor/openam-agents:8348-8473
 </span><span class="cx">/branches/pcunnington-AME-3158/openam-agents:8476-8577
</span><span class="cx">/branches/pcunnington-AME-350/openam-agents:4165-4344
</span><span class="cx">/branches/pcunnington-ame-344/openam-agents:4651-5199
</span><span class="cx">/branches/pcunnington-oauth2/openam-agents:8710-8793
</span><span class="cx">/branches/phcunnington-AME-3114/openam-agents:8314-8341
</span><span class="cx">/branches/policyimprovements/openam-agents:5513-5515
</span><span class="cx">/branches/rwapshott-AME-1739/openam-agents:5331-5353
</span><span class="cx">/branches/rwapshott-AME-215/openam-agents:4091-4155
</span><span class="cx">/branches/rwapshott-AME-257/openam-agents:4047-4126
</span><span class="cx">/branches/rwapshott-AME-804/openam-agents:4267-5404
</span><span class="cx">/branches/rwapshott-ame-2160-session-size/openam-agents:6086-6319
 </span><span class="cx">/branches/rwapshott-openam-2198-session-resource-protection/openam-agents:5628-5824
 </span><span class="cx">/branches/rwapshott-openam-2526/openam-agents:5442-5484
</span><span class="cx">/branches/rwapshott-openam-2716-cts-invalid-chars/openam-agents:6170-6194
 </span><span class="cx">/trunk/openam-agents:10107-10111,10114-10116,10119,10129-1013 \
1,10134-10136,10138-10143,10146,10159-10161,10172,10174-10176,10179,10182-10185,10191, \
10193,10196-10201,10204,10212,10214,10217-10218,10222,10224,10229-10230,10243-10244,10249,10251,10253-10255,10258-10259,10265,10274,10276,10282,10288
 </span><a id="branchesAME3423opensso"></a>
<div class="propset"><h4>Property changes: branches/AME-3423/opensso</h4>
<pre class="diff"><span>
</span></pre></div>
<a id="svnmergeinfo"></a>
<div class="modfile"><h4>Modified: svn:mergeinfo</h4></div>
<span class="cx">/branches/AME-3612-pcunnington/opensso:9534-9723
</span><span class="cx">/branches/AME-3719/opensso:9517-9879
</span><span class="cx">/branches/IIS7PostData/opensso:224-261
</span><span class="cx">/branches/OPENAM-2961-forgot-password-404/opensso:8322-8362
</span><span class="cx">/branches/OPENAM-3097-sessions-not-deleted/opensso:6910-6946
</span><span class="cx">/branches/OPENAM-3283-CTS-thread-exceptions/opensso:7270-7369
</span><span class="cx">/branches/OPENAM-3425-class-cast-exception/opensso:8333-8359
</span><span class="cx">/branches/OPENAM-3782-forgotten-password-changes/opensso:8747-8835
 </span><span class="cx">/branches/OPENAM-OPENAM-3528-client-side-session-validation/opensso:7834-7844
 </span><span class="cx">/branches/allanCSDK:64-163
</span><span class="cx">/branches/ame4272/opensso:10073-10101
</span><span class="cx">/branches/andy-ame-2227-v2/opensso:7508-7697
</span><span class="cx">/branches/maven_merge/opensso:2556-3124
</span><span class="cx">/branches/openam-3049-cts-reaper-connection-usage/opensso:6658-6745
 </span><span class="cx">/branches/openam-3053-cts-tab-exception/opensso:6672-6721
</span><span class="cx">/branches/openam-3072-cts-configuration/opensso:6691-6714
</span><span class="cx">/branches/openam-3092-store-mode-error/opensso:6729-6733
</span><span class="cx">/branches/openam-3110-create-or-update-bug/opensso:6767-6804
</span><span class="cx">/branches/pcunnington-AME-3115-refactor/opensso:8348-8473
</span><span class="cx">/branches/pcunnington-AME-3158/opensso:8476-8577
</span><span class="cx">/branches/pcunnington-oauth2/opensso:8710-8793
</span><span class="cx">/branches/phcunnington-AME-3114/opensso:8314-8341
</span><span class="cx">/branches/rwapshott-AME-1739/opensso:5331-5353
</span><span class="cx">/branches/rwapshott-AME-215/opensso:4091-4155
</span><span class="cx">/branches/rwapshott-AME-257/opensso:4047-4126
</span><span class="cx">/branches/rwapshott-AME-804/opensso:4267-5404
</span><span class="cx">/branches/rwapshott-ame-2160-session-size/opensso:6086-6319
</span><span class="cx">/branches/rwapshott-openam-2198-session-resource-protection/opensso:5628-5824
 </span><span class="cx">/branches/rwapshott-openam-2526/opensso:5442-5484
</span><span class="cx">/branches/rwapshott-openam-2716-cts-invalid-chars/opensso:6170-6194
 </span><span class="cx">/trunk/opensso:10107-10111,10114-10116,10119,10129-10131,1013 \
4-10136,10138-10143,10146,10159-10161,10172,10174-10176,10179,10182-10185,10191,10193,10196-10201,10204,10212
 </span><span class="cx">   + /branches/AME-2526-SFO-between-sites/opensso:7510-8258
</span><span class="cx">/branches/AME-3612-pcunnington/opensso:9534-9723
</span><span class="cx">/branches/AME-3719/opensso:9517-9879
</span><span class="cx">/branches/IIS7PostData/opensso:224-261
</span><span class="cx">/branches/OPENAM-2961-forgot-password-404/opensso:8322-8362
</span><span class="cx">/branches/OPENAM-3097-sessions-not-deleted/opensso:6910-6946
</span><span class="cx">/branches/OPENAM-3283-CTS-thread-exceptions/opensso:7270-7369
</span><span class="cx">/branches/OPENAM-3425-class-cast-exception/opensso:8333-8359
</span><span class="cx">/branches/OPENAM-3782-forgotten-password-changes/opensso:8747-8835
 </span><span class="cx">/branches/OPENAM-4384-ssoadm-classpath/opensso:10263-10264
</span><span class="cx">/branches/OPENAM-OPENAM-3528-client-side-session-validation/opensso:7834-7844
 </span><span class="cx">/branches/allanCSDK:64-163
</span><span class="cx">/branches/ame4272/opensso:10073-10101
</span><span class="cx">/branches/andy-ame-2227-v2/opensso:7508-7697
</span><span class="cx">/branches/maven_merge/opensso:2556-3124
</span><span class="cx">/branches/openam-3049-cts-reaper-connection-usage/opensso:6658-6745
 </span><span class="cx">/branches/openam-3053-cts-tab-exception/opensso:6672-6721
</span><span class="cx">/branches/openam-3072-cts-configuration/opensso:6691-6714
</span><span class="cx">/branches/openam-3092-store-mode-error/opensso:6729-6733
</span><span class="cx">/branches/openam-3110-create-or-update-bug/opensso:6767-6804
</span><span class="cx">/branches/pcunnington-AME-3115-refactor/opensso:8348-8473
</span><span class="cx">/branches/pcunnington-AME-3158/opensso:8476-8577
</span><span class="cx">/branches/pcunnington-oauth2/opensso:8710-8793
</span><span class="cx">/branches/phcunnington-AME-3114/opensso:8314-8341
</span><span class="cx">/branches/rwapshott-AME-1739/opensso:5331-5353
</span><span class="cx">/branches/rwapshott-AME-215/opensso:4091-4155
</span><span class="cx">/branches/rwapshott-AME-257/opensso:4047-4126
</span><span class="cx">/branches/rwapshott-AME-804/opensso:4267-5404
</span><span class="cx">/branches/rwapshott-ame-2160-session-size/opensso:6086-6319
</span><span class="cx">/branches/rwapshott-openam-2198-session-resource-protection/opensso:5628-5824
 </span><span class="cx">/branches/rwapshott-openam-2526/opensso:5442-5484
</span><span class="cx">/branches/rwapshott-openam-2716-cts-invalid-chars/opensso:6170-6194
 </span><span class="cx">/trunk/opensso:10107-10111,10114-10116,10119,10129-10131,1013 \
4-10136,10138-10143,10146,10159-10161,10172,10174-10176,10179,10182-10185,10191,10193, \
10196-10201,10204,10212,10214,10217-10218,10222,10224,10229-10230,10243-10244,10249,10251,10253-10255,10258-10259,10265,10274,10276,10282,10288
 </span><a id="branchesAME3423openssoproducts"></a>
<div class="propset"><h4>Property changes: branches/AME-3423/opensso/products</h4>
<pre class="diff"><span>
</span></pre></div>
<a id="svnmergeinfo"></a>
<div class="modfile"><h4>Modified: svn:mergeinfo</h4></div>
<span class="cx">/branches/AME-3612-pcunnington/opensso/products:9534-9723
</span><span class="cx">/branches/AME-3719/opensso/products:9517-9879
</span><span class="cx">/branches/IIS7PostData/opensso/products:224-261
</span><span class="cx">/branches/OPENAM-2961-forgot-password-404/opensso/products:8322-8362
 </span><span class="cx">/branches/OPENAM-3097-sessions-not-deleted/opensso/products:6910-6946
 </span><span class="cx">/branches/OPENAM-3283-CTS-thread-exceptions/opensso/products:7270-7369
 </span><span class="cx">/branches/OPENAM-3425-class-cast-exception/opensso/products:8333-8359
 </span><span class="cx">/branches/OPENAM-3782-forgotten-password-changes/opensso/products:8747-8835
 </span><span class="cx">/branches/OPENAM-OPENAM-3528-client-side-session-validation/opensso/products:7834-7844
 </span><span class="cx">/branches/ame4272/opensso/products:10073-10101
</span><span class="cx">/branches/andy-ame-2227-v2/opensso/products:7508-7697
</span><span class="cx">/branches/j2eePostData/opensso/products:482-520
</span><span class="cx">/branches/maven_merge/opensso/products:2556-3124
</span><span class="cx">/branches/openam-3049-cts-reaper-connection-usage/opensso/products:6658-6745
 </span><span class="cx">/branches/openam-3053-cts-tab-exception/opensso/products:6672-6721
 </span><span class="cx">/branches/openam-3072-cts-configuration/opensso/products:6691-6714
 </span><span class="cx">/branches/openam-3092-store-mode-error/opensso/products:6729-6733
 </span><span class="cx">/branches/openam-3110-create-or-update-bug/opensso/products:6767-6804
 </span><span class="cx">/branches/opends23_build002/products:132-181
</span><span class="cx">/branches/pcunnington-AME-3115-refactor/opensso/products:8348-8473
 </span><span class="cx">/branches/pcunnington-AME-3158/opensso/products:8476-8577
</span><span class="cx">/branches/pcunnington-oauth2/opensso/products:8710-8793
</span><span class="cx">/branches/phcunnington-AME-3114/opensso/products:8314-8341
</span><span class="cx">/branches/rwapshott-AME-1739/opensso/products:5331-5353
</span><span class="cx">/branches/rwapshott-AME-215/opensso/products:4091-4155
</span><span class="cx">/branches/rwapshott-AME-257/opensso/products:4047-4126
</span><span class="cx">/branches/rwapshott-AME-804/opensso/products:4267-5404
</span><span class="cx">/branches/rwapshott-ame-2160-session-size/opensso/products:6086-6319
 </span><span class="cx">/branches/rwapshott-openam-2198-session-resource-protection/opensso/products:5628-5824
 </span><span class="cx">/branches/rwapshott-openam-2526/opensso/products:5442-5484
</span><span class="cx">/branches/rwapshott-openam-2716-cts-invalid-chars/opensso/products:6170-6194
 </span><span class="cx">/trunk/opensso/products:10107-10111,10114-10116,10119,10129-1 \
0131,10134-10136,10138-10143,10146,10159-10161,10172,10174-10176,10179,10182-10185,10191,10193,10196-10201,10204,10212
 </span><span class="cx">   + \
/branches/AME-2526-SFO-between-sites/opensso/products:7510-8258 </span><span \
class="cx">/branches/AME-3612-pcunnington/opensso/products:9534-9723 </span><span \
class="cx">/branches/AME-3719/opensso/products:9517-9879 </span><span \
class="cx">/branches/IIS7PostData/opensso/products:224-261 </span><span \
class="cx">/branches/OPENAM-2961-forgot-password-404/opensso/products:8322-8362 \
</span><span class="cx">/branches/OPENAM-3097-sessions-not-deleted/opensso/products:6910-6946
 </span><span class="cx">/branches/OPENAM-3283-CTS-thread-exceptions/opensso/products:7270-7369
 </span><span class="cx">/branches/OPENAM-3425-class-cast-exception/opensso/products:8333-8359
 </span><span class="cx">/branches/OPENAM-3782-forgotten-password-changes/opensso/products:8747-8835
 </span><span class="cx">/branches/OPENAM-4384-ssoadm-classpath/opensso/products:10263-10264
 </span><span class="cx">/branches/OPENAM-OPENAM-3528-client-side-session-validation/opensso/products:7834-7844
 </span><span class="cx">/branches/ame4272/opensso/products:10073-10101
</span><span class="cx">/branches/andy-ame-2227-v2/opensso/products:7508-7697
</span><span class="cx">/branches/j2eePostData/opensso/products:482-520
</span><span class="cx">/branches/maven_merge/opensso/products:2556-3124
</span><span class="cx">/branches/openam-3049-cts-reaper-connection-usage/opensso/products:6658-6745
 </span><span class="cx">/branches/openam-3053-cts-tab-exception/opensso/products:6672-6721
 </span><span class="cx">/branches/openam-3072-cts-configuration/opensso/products:6691-6714
 </span><span class="cx">/branches/openam-3092-store-mode-error/opensso/products:6729-6733
 </span><span class="cx">/branches/openam-3110-create-or-update-bug/opensso/products:6767-6804
 </span><span class="cx">/branches/opends23_build002/products:132-181
</span><span class="cx">/branches/pcunnington-AME-3115-refactor/opensso/products:8348-8473
 </span><span class="cx">/branches/pcunnington-AME-3158/opensso/products:8476-8577
</span><span class="cx">/branches/pcunnington-oauth2/opensso/products:8710-8793
</span><span class="cx">/branches/phcunnington-AME-3114/opensso/products:8314-8341
</span><span class="cx">/branches/rwapshott-AME-1739/opensso/products:5331-5353
</span><span class="cx">/branches/rwapshott-AME-215/opensso/products:4091-4155
</span><span class="cx">/branches/rwapshott-AME-257/opensso/products:4047-4126
</span><span class="cx">/branches/rwapshott-AME-804/opensso/products:4267-5404
</span><span class="cx">/branches/rwapshott-ame-2160-session-size/opensso/products:6086-6319
 </span><span class="cx">/branches/rwapshott-openam-2198-session-resource-protection/opensso/products:5628-5824
 </span><span class="cx">/branches/rwapshott-openam-2526/opensso/products:5442-5484
</span><span class="cx">/branches/rwapshott-openam-2716-cts-invalid-chars/opensso/products:6170-6194
 </span><span class="cx">/trunk/opensso/products:10107-10111,10114-10116,10119,10129-1 \
0131,10134-10136,10138-10143,10146,10159-10161,10172,10174-10176,10179,10182-10185,101 \
91,10193,10196-10201,10204,10212,10214,10217-10218,10222,10224,10229-10230,10243-10244,10249,10251,10253-10255,10258-10259,10265,10274,10276,10282,10288
 </span><a id="branchesAME3423openssoproductswebagentsamsourceurlcpp"></a>
<div class="modfile"><h4>Modified: \
branches/AME-3423/opensso/products/webagents/am/source/url.cpp (10295 => 10296)</h4> \
<pre class="diff"><span> <span class="info">--- \
branches/AME-3423/opensso/products/webagents/am/source/url.cpp	2014-08-28 15:11:32 \
                UTC (rev 10295)
+++ branches/AME-3423/opensso/products/webagents/am/source/url.cpp	2014-08-28 \
15:42:34 UTC (rev 10296) </span><span class="lines">@@ -202,7 +202,18 @@
</span><span class="cx"> 
</span><span class="cx">     /* parse uri */
</span><span class="cx">     if (pathStart != uriEnd) {
</span><del>-        uri = std::string(pathStart, queryStart);
</del><ins>+        std::string uriTmp = std::string(pathStart, queryStart);
+        const char *u = uriTmp.c_str();
+        char last = 0;
+        uri.reserve(uriTmp.size());
+        while (*u != '\0') {
+            // replace all consecutive '/' with a single '/'
+            if (*u != '/' || (*u == '/' &amp;&amp; last != '/')) {
+                uri.push_back(*u);
+            }
+            last = *u;
+            u++;
+        }
</ins><span class="cx">         if (pathInfo.size() &gt; 0) {
</span><span class="cx">             std::string uriDec;
</span><span class="cx">             std::size_t pPos = uri.rfind(pathInfo);
</span><span class="lines">@@ -303,6 +314,7 @@
</span><span class="cx"> {
</span><span class="cx">     std::string retVal;
</span><span class="cx">     if(qParams.size() &gt; 0) {
</span><ins>+        retVal.append(&quot;?&quot;);
</ins><span class="cx">         KeyValueMap::const_iterator iter = qParams.begin();
</span><span class="cx">         for(; iter != qParams.end(); ++iter) {
</span><span class="cx">             const KeyValueMap::key_type &amp;key = \
iter-&gt;first; </span><span class="lines">@@ -328,20 +340,18 @@
</span><span class="cx"> }
</span><span class="cx">  
</span><span class="cx"> 
</span><del>-
</del><span class="cx"> /**
</span><span class="cx">  * Throws InternalException if the query parameter has an \
invalid format. </span><span class="cx">  */
</span><del>-void URL::splitQParams(const std::string &amp;qparam) 
-{
</del><ins>+void URL::splitQParams(const std::string &amp;qparam) {
</ins><span class="cx">     try {
</span><del>-	qParams.parseKeyValuePairString(qparam, '&amp;', '=', icase);
</del><ins>+        qParams.parseKeyValuePairString(qparam[0] != '?' ? qparam : \
qparam.substr(1), +                '&amp;', '=', true, icase);
+    } catch (...) {
+        throw InternalException(&quot;URL::splitQParams&quot;,
+                &quot;Invalid key value pair&quot;,
+                AM_INVALID_ARGUMENT);
</ins><span class="cx">     }
</span><del>-    catch (...) {
-	throw InternalException(&quot;URL::splitQParams&quot;, 
-			        &quot;Invalid key value pair&quot;,
-				AM_INVALID_ARGUMENT);
-    }
</del><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void URL::removeQueryParameter(const std::string &amp;key) {
</span></span></pre>
</div>
</div>
<div id="footer">Copyright (c) by ForgeRock. All rights reserved.</div>

</body>
</html>



_______________________________________________
CommitOpenAM mailing list
CommitOpenAM@forgerock.org
https://lists.forgerock.org/mailman/listinfo/commitopenam


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic