[prev in list] [next in list] [prev in thread] [next in thread]
List: forgerock-openam-commit
Subject: [CommitOpenAM] [13655] trunk/openam: OPENAM-5880 CR-6837 Handle queries on policy attributes not sto
From: noreply () forgerock ! org
Date: 2015-04-30 19:48:57
Message-ID: 20150430194857.966163F88C () 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>[13655] trunk/openam: OPENAM-5880 CR-6837 Handle queries on policy attributes \
not stored in ou ldap attributes</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=13655">13655</a></dd> \
<dt>Author</dt> <dd>jamesphillpotts</dd> <dt>Date</dt> <dd>2015-04-30 20:48:57 +0100 \
(Thu, 30 Apr 2015)</dd> </dl>
<h3>Log Message</h3>
<pre><a href="https://bugster.forgerock.org/jira/browse/OPENAM-5880">OPENAM-5880</a> \
CR-6837 Handle queries on policy attributes not stored in ou ldap attributes</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkopenamopenamcoresrcmainjavacomsunidentityentitlementApplicationjava \
">trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/Application.java</a></li>
<li><a href="#trunkopenamopenamcoresrcmainjavacomsunidentityentitlementPrivilegejava" \
>trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/Privilege.java</a></li>
>
<li><a href="#trunkopenamopenamcoresrcmainjavacomsunidentityentitlementReferralPrivile \
geManagerjava">trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/ReferralPrivilegeManager.java</a></li>
<li><a href="#trunkopenamopenamcoresrcmainjavacomsunidentityentitlementutilSearchFilt \
erjava">trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/util/SearchFilter.java</a></li>
<li><a href="#trunkopenamopenamcoresrctestjavacomsunidentityentitlementApplicationMan \
agerTestjava">trunk/openam/openam-core/src/test/java/com/sun/identity/entitlement/ApplicationManagerTest.java</a></li>
<li><a href="#trunkopenamopenamentitlementssrcmainjavacomsunidentityentitlementPrivil \
egeManagerjava">trunk/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/PrivilegeManager.java</a></li>
<li><a href="#trunkopenamopenamentitlementssrcmainjavacomsunidentityentitlementxacml3 \
SearchFilterFactoryjava">trunk/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/xacml3/SearchFilterFactory.java</a></li>
<li><a href="#trunkopenamopenamentitlementssrcmainjavaorgforgerockopenamupgradestepsp \
olicyUpgradeResourceTypeStepjava">trunk/openam/openam-entitlements/src/main/java/org/forgerock/openam/upgrade/steps/policy/UpgradeResourceTypeStep.java</a></li>
<li><a href="#trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementAp \
plicationDelegationTestjava">trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationDelegationTest.java</a></li>
<li><a href="#trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementAp \
plicationFilterTestjava">trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationFilterTest.java</a></li>
<li><a href="#trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementAp \
plicationMetaDatajava">trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationMetaData.java</a></li>
<li><a href="#trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementDe \
legationPrivilegeTestjava">trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/DelegationPrivilegeTest.java</a></li>
<li><a href="#trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementPr \
ivilegeManagerTestjava">trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/PrivilegeManagerTest.java</a></li>
<li><a href="#trunkopenamopenamfederationOpenFMsrctestjavacomsunidentitypolicyMetaDat \
aTestjava">trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/policy/MetaDataTest.java</a></li>
<li><a href="#trunkopenamopenamfederationOpenFMsrctestjavacomsunidentitypolicyReferra \
lPolicyTestjava">trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/policy/ReferralPolicyTest.java</a></li>
<li><a href="#trunkopenamopenamrestsrcmainjavacomsunidentityrestPrivilegeResourcejava \
">trunk/openam/openam-rest/src/main/java/com/sun/identity/rest/PrivilegeResource.java</a></li>
<li><a href="#trunkopenamopenamrestsrcmainjavaorgforgerockopenamforgerockrestentitlem \
entsReferralsResourceV1java">trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/ReferralsResourceV1.java</a></li>
<li><a href="#trunkopenamopenamrestsrcmainjavaorgforgerockopenamforgerockrestentitlem \
entsqueryAttributeTypejava">trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/query/AttributeType.java</a></li>
<li><a href="#trunkopenamopenamrestsrcmainjavaorgforgerockopenamforgerockrestentitlem \
entsqueryQueryAttributejava">trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/query/QueryAttribute.java</a></li>
<li><a href="#trunkopenamopenamrestsrcmainjavaorgforgerockopenamforgerockrestguiceFor \
gerockRestGuiceModulejava">trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/guice/ForgerockRestGuiceModule.java</a></li>
<li><a href="#trunkopenamopenamrestsrctestjavaorgforgerockopenamforgerockrestentitlem \
entsApplicationsResourceTestjava">trunk/openam/openam-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/ApplicationsResourceTest.java</a></li>
<li><a href="#trunkopenamopenamrestsrctestjavaorgforgerockopenamforgerockrestentitlem \
entsPrivilegePolicyStoreTestjava">trunk/openam/openam-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/PrivilegePolicyStoreTest.java</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunkopenamopenamcoresrcmainjavacomsunidentityentitlementutilSearchAttri \
butejava">trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/util/SearchAttribute.java</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkopenamopenamcoresrcmainjavacomsunidentityentitlementApplicationjava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/Application.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/Application.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/Application.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-/**
</del><ins>+/*
</ins><span class="cx"> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
</span><span class="cx"> *
</span><span class="cx"> * Copyright (c) 2009 Sun Microsystems Inc. All Rights \
Reserved </span><span class="lines">@@ -24,13 +24,15 @@
</span><span class="cx"> *
</span><span class="cx"> * $Id: Application.java,v 1.7 2010/01/08 22:20:47 veiming \
Exp $ </span><span class="cx"> *
</span><del>- * Portions copyright 2013-2015 ForgeRock, Inc.
</del><ins>+ * Portions copyright 2013-2015 ForgeRock AS.
</ins><span class="cx"> */
</span><span class="cx"> package com.sun.identity.entitlement;
</span><span class="cx">
</span><span class="cx"> import com.sun.identity.entitlement.interfaces.ISaveIndex;
</span><span class="cx"> import com.sun.identity.entitlement.interfaces.ISearchIndex;
</span><span class="cx"> import com.sun.identity.entitlement.interfaces.ResourceName;
</span><ins>+import com.sun.identity.entitlement.util.SearchAttribute;
+
</ins><span class="cx"> import org.forgerock.openam.entitlement.EntitlementRegistry;
</span><span class="cx"> import org.forgerock.openam.entitlement.PolicyConstants;
</span><span class="cx"> import org.forgerock.util.Reject;
</span><span class="lines">@@ -51,31 +53,62 @@
</span><span class="cx"> public static final String CREATED_BY_ATTRIBUTE = \
"createdby"; </span><span class="cx">
</span><span class="cx"> /**
</span><ins>+ * Created by search attribute
+ */
+ public static final SearchAttribute CREATED_BY_SEARCH_ATTRIBUTE = new \
SearchAttribute(CREATED_BY_ATTRIBUTE, "ou"); +
+ /**
</ins><span class="cx"> * Last modified by index key
</span><span class="cx"> */
</span><span class="cx"> public static final String LAST_MODIFIED_BY_ATTRIBUTE = \
"lastmodifiedby"; </span><span class="cx">
</span><span class="cx"> /**
</span><ins>+ * Last modified by search attribute
+ */
+ public static final SearchAttribute LAST_MODIFIED_BY_SEARCH_ATTRIBUTE = new \
SearchAttribute(LAST_MODIFIED_BY_ATTRIBUTE, "ou"); +
+ /**
</ins><span class="cx"> * Creation date index key
</span><span class="cx"> */
</span><span class="cx"> public static final String CREATION_DATE_ATTRIBUTE = \
"creationdate"; </span><span class="cx">
</span><span class="cx"> /**
</span><ins>+ * Creation date search attribute
+ */
+ public static final SearchAttribute CREATION_DATE_SEARCH_ATTRIBUTE = new \
SearchAttribute(CREATION_DATE_ATTRIBUTE, "ou"); +
+ /**
</ins><span class="cx"> * Last modified date index key
</span><span class="cx"> */
</span><span class="cx"> public static final String LAST_MODIFIED_DATE_ATTRIBUTE \
= </span><del>- "lastmodifieddate";
</del><ins>+ "lastmodifieddate";
</ins><span class="cx">
</span><span class="cx"> /**
</span><del>- * Name search attribute name,
</del><ins>+ * Last modified date search attribute
</ins><span class="cx"> */
</span><ins>+ public static final SearchAttribute \
LAST_MODIFIED_DATE_SEARCH_ATTRIBUTE = + new \
SearchAttribute(LAST_MODIFIED_DATE_ATTRIBUTE, "ou"); +
+ /**
+ * Name attribute name,
+ */
</ins><span class="cx"> public static final String NAME_ATTRIBUTE = \
"name"; </span><span class="cx">
</span><span class="cx"> /**
</span><del>- * Description search attribute name,
</del><ins>+ * Name search attribute
</ins><span class="cx"> */
</span><ins>+ public static final SearchAttribute NAME_SEARCH_ATTRIBUTE = new \
SearchAttribute(NAME_ATTRIBUTE, "ou"); +
+ /**
+ * Description attribute name,
+ */
</ins><span class="cx"> public static final String DESCRIPTION_ATTRIBUTE = \
"description"; </span><span class="cx">
</span><ins>+ /**
+ * Description search attribute
+ */
+ public static final SearchAttribute DESCRIPTION_SEARCH_ATTRIBUTE = new \
SearchAttribute(DESCRIPTION_ATTRIBUTE, "ou"); +
</ins><span class="cx"> private static final int LEN_CREATED_BY_ATTRIBUTE =
</span><span class="cx"> CREATED_BY_ATTRIBUTE.length();
</span><span class="cx"> private static final int LEN_LAST_MODIFIED_BY_ATTRIBUTE \
= </span></span></pre></div>
<a id="trunkopenamopenamcoresrcmainjavacomsunidentityentitlementPrivilegejava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/Privilege.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/Privilege.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/Privilege.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -29,8 +29,11 @@
</span><span class="cx">
</span><span class="cx"> package com.sun.identity.entitlement;
</span><span class="cx">
</span><ins>+import com.sun.identity.entitlement.util.SearchAttribute;
</ins><span class="cx"> import com.sun.identity.shared.JSONUtils;
</span><span class="cx"> import \
com.sun.identity.shared.configuration.SystemPropertiesManager; </span><ins>+import \
com.sun.identity.sm.SMSEntry; +
</ins><span class="cx"> import \
org.forgerock.openam.entitlement.CachingEntitlementCondition; </span><span \
class="cx"> import org.forgerock.openam.entitlement.PolicyConstants; </span><span \
class="cx"> import org.json.JSONArray; </span><span class="lines">@@ -68,37 +71,71 @@
</span><span class="cx"> public static final String APPLICATION_ATTRIBUTE = \
"application"; </span><span class="cx">
</span><span class="cx"> /**
</span><ins>+ * application search attribute
+ */
+ public static final SearchAttribute APPLICATION_SEARCH_ATTRIBUTE = new \
SearchAttribute(APPLICATION_ATTRIBUTE, "ou"); +
+ /**
</ins><span class="cx"> * Created by index key
</span><span class="cx"> */
</span><span class="cx"> public static final String CREATED_BY_ATTRIBUTE = \
"createdby"; </span><span class="cx">
</span><span class="cx"> /**
</span><ins>+ * Created by search attribute
+ */
+ public static final SearchAttribute CREATED_BY_SEARCH_ATTRIBUTE = new \
SearchAttribute(CREATED_BY_ATTRIBUTE, "ou"); +
+ /**
</ins><span class="cx"> * Last modified by index key
</span><span class="cx"> */
</span><span class="cx"> public static final String LAST_MODIFIED_BY_ATTRIBUTE = \
"lastmodifiedby"; </span><span class="cx">
</span><span class="cx"> /**
</span><ins>+ * Last modified by search attribute
+ */
+ public static final SearchAttribute LAST_MODIFIED_BY_SEARCH_ATTRIBUTE = new \
SearchAttribute(LAST_MODIFIED_BY_ATTRIBUTE, "ou"); +
+ /**
</ins><span class="cx"> * Creation date index key
</span><span class="cx"> */
</span><span class="cx"> public static final String CREATION_DATE_ATTRIBUTE = \
"creationdate"; </span><span class="cx">
</span><span class="cx"> /**
</span><ins>+ * Creation date index key
+ */
+ public static final SearchAttribute CREATION_DATE_SEARCH_ATTRIBUTE = new \
SearchAttribute(CREATION_DATE_ATTRIBUTE, "ou"); +
+ /**
</ins><span class="cx"> * Last modified date index key
</span><span class="cx"> */
</span><del>- public static final String LAST_MODIFIED_DATE_ATTRIBUTE =
- "lastmodifieddate";
</del><ins>+ public static final String LAST_MODIFIED_DATE_ATTRIBUTE = \
"lastmodifieddate"; </ins><span class="cx">
</span><span class="cx"> /**
</span><del>- * Name search attribute name,
</del><ins>+ * Last modified date index key
</ins><span class="cx"> */
</span><ins>+ public static final SearchAttribute \
LAST_MODIFIED_DATE_SEARCH_ATTRIBUTE = new \
SearchAttribute(LAST_MODIFIED_DATE_ATTRIBUTE, "ou"); +
+ /**
+ * Name attribute name,
+ */
</ins><span class="cx"> public static final String NAME_ATTRIBUTE = \
"name"; </span><span class="cx">
</span><span class="cx"> /**
</span><ins>+ * Name search attribute
+ */
+ public static final SearchAttribute NAME_SEARCH_ATTRIBUTE = new \
SearchAttribute(NAME_ATTRIBUTE, "ou"); +
+ /**
</ins><span class="cx"> * Resource type uuid reference.
</span><span class="cx"> */
</span><span class="cx"> public static final String RESOURCE_TYPE_UUID_ATTRIBUTE \
= "resourceTypeUuid"; </span><span class="cx">
</span><span class="cx"> /**
</span><ins>+ * Resource type uuid reference.
+ */
+ public static final SearchAttribute RESOURCE_TYPE_UUID_SEARCH_ATTRIBUTE = new \
SearchAttribute(RESOURCE_TYPE_UUID_ATTRIBUTE, SMSEntry.ATTR_XML_KEYVAL); +
+ /**
</ins><span class="cx"> * Macro used in resource name
</span><span class="cx"> */
</span><span class="cx"> public static final String RESOURCE_MACRO_SELF = \
"$SELF"; </span><span class="lines">@@ -109,10 +146,15 @@
</span><span class="cx"> public static final String RESOURCE_MACRO_ATTRIBUTE = \
"$ATTR"; </span><span class="cx">
</span><span class="cx"> /**
</span><del>- * Privilege description search attribute name,
</del><ins>+ * Privilege description attribute name,
</ins><span class="cx"> */
</span><span class="cx"> public static final String DESCRIPTION_ATTRIBUTE = \
"description"; </span><span class="cx">
</span><ins>+ /**
+ * Privilege description search attribute name,
+ */
+ public static final SearchAttribute DESCRIPTION_SEARCH_ATTRIBUTE = new \
SearchAttribute(DESCRIPTION_ATTRIBUTE, "ou"); +
</ins><span class="cx"> private static Class<? extends Privilege> \
privilegeClass; </span><span class="cx"> public static final NoSubject \
NOT_SUBJECT = new NoSubject(); </span><span class="cx">
</span></span></pre></div>
<a id="trunkopenamopenamcoresrcmainjavacomsunidentityentitlementReferralPrivilegeManagerjava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/ReferralPrivilegeManager.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/ReferralPrivilegeManager.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/ReferralPrivilegeManager.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-/**
</del><ins>+/*
</ins><span class="cx"> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
</span><span class="cx"> *
</span><span class="cx"> * Copyright (c) 2009 Sun Microsystems Inc. All Rights \
Reserved </span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx"> *
</span><span class="cx"> * $Id: ReferralPrivilegeManager.java,v 1.7 2010/01/20 \
17:01:35 veiming Exp $ </span><span class="cx"> *
</span><del>- * Portions Copyrighted 2012-2015 ForgeRock AS
</del><ins>+ * Portions Copyrighted 2012-2015 ForgeRock AS.
</ins><span class="cx"> */
</span><span class="cx"> package com.sun.identity.entitlement;
</span><span class="cx">
</span><span class="lines">@@ -112,7 +112,7 @@
</span><span class="cx"> */
</span><span class="cx"> @Override
</span><span class="cx"> public boolean canFindByName(String name) throws \
EntitlementException { </span><del>- SearchFilter filter = new \
SearchFilter("name", name); </del><ins>+ SearchFilter filter = new \
SearchFilter(Privilege.NAME_SEARCH_ATTRIBUTE, name); </ins><span class="cx"> \
return !searchNames(asSet(filter)).isEmpty(); </span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkopenamopenamcoresrcmainjavacomsunidentityentitlementutilSearchAttributejava"></a>
<div class="addfile"><h4>Added: \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/util/SearchAttribute.java \
(0 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/util/SearchAttribute.java \
(rev 0)
+++ trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/util/SearchAttribute.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -0,0 +1,62 @@
</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: "Portions copyright [year] [name of \
copyright owner]". + *
+ * Copyright 2015 ForgeRock AS.
+ */
+
+package com.sun.identity.entitlement.util;
+
+import org.apache.commons.lang.builder.EqualsBuilder;
+import org.forgerock.util.Reject;
+
+public class SearchAttribute {
+
+ private final String attributeName;
+ private final String ldapAttribute;
+
+ public SearchAttribute(String attributeName, String ldapAttribute) {
+ Reject.ifNull(attributeName, ldapAttribute);
+ this.attributeName = attributeName;
+ this.ldapAttribute = ldapAttribute;
+ }
+
+
+ public String getLdapAttribute() {
+ return ldapAttribute;
+ }
+
+ public String getAttributeName() {
+ return attributeName;
+ }
+
+ public String toFilter(String operator) {
+ return ldapAttribute + operator + attributeName;
+ }
+
+ @Override
+ public int hashCode() {
+ int result = attributeName.hashCode();
+ result = 31 * result + ldapAttribute.hashCode();
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object that) {
+ return this == that || (that instanceof SearchAttribute &&
+ new EqualsBuilder()
+ .append(this.attributeName, ((SearchAttribute) \
that).attributeName) + .append(this.ldapAttribute, \
((SearchAttribute) that).ldapAttribute) + .isEquals()
+ );
+ }
+}
</ins></span></pre></div>
<a id="trunkopenamopenamcoresrcmainjavacomsunidentityentitlementutilSearchFilterjava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/util/SearchFilter.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/util/SearchFilter.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-core/src/main/java/com/sun/identity/entitlement/util/SearchFilter.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -23,12 +23,10 @@
</span><span class="cx"> * "Portions Copyrighted [year] [name of copyright \
owner]" </span><span class="cx"> *
</span><span class="cx"> * $Id: SearchFilter.java,v 1.2 2009/10/14 03:18:41 veiming \
Exp $ </span><ins>+ *
+ * Portions Copyrighted 2014-2015 ForgeRock AS.
</ins><span class="cx"> */
</span><span class="cx">
</span><del>-/*
- * Portions Copyrighted 2014 ForgeRock AS.
- */
-
</del><span class="cx"> package com.sun.identity.entitlement.util;
</span><span class="cx">
</span><span class="cx"> /**
</span><span class="lines">@@ -45,7 +43,7 @@
</span><span class="cx"> GREATER_THAN_OR_EQUAL_OPERATOR
</span><span class="cx"> }
</span><span class="cx">
</span><del>- private String attrName;
</del><ins>+ private SearchAttribute attribute;
</ins><span class="cx"> private String value;
</span><span class="cx"> private long longValue;
</span><span class="cx"> private Operator operator;
</span><span class="lines">@@ -53,13 +51,13 @@
</span><span class="cx"> /**
</span><span class="cx"> * Constructor.
</span><span class="cx"> *
</span><del>- * @param attrName Attribute name.
</del><ins>+ * @param attribute Attribute details.
</ins><span class="cx"> * <code>CREATED_BY_ATTRIBUTE, \
LAST_MODIFIED_BY_ATTRIBUTE, </span><span class="cx"> * CREATION_DATE_ATTRIBUTE, \
LAST_MODIFIED_DATE_ATTRIBUTE</code>. </span><span class="cx"> * @param \
value Search filter. </span><span class="cx"> */
</span><del>- public SearchFilter(String attrName, String value) {
- this.attrName = attrName;
</del><ins>+ public SearchFilter(SearchAttribute attribute, String value) {
+ this.attribute = attribute;
</ins><span class="cx"> this.value = value;
</span><span class="cx"> this.operator = Operator.EQUALS_OPERATOR;
</span><span class="cx"> }
</span><span class="lines">@@ -67,7 +65,7 @@
</span><span class="cx"> /**
</span><span class="cx"> * Constructor.
</span><span class="cx"> *
</span><del>- * @param attrName Attribute name
</del><ins>+ * @param attribute Attribute details
</ins><span class="cx"> * <code>CREATED_BY_ATTRIBUTE, \
LAST_MODIFIED_BY_ATTRIBUTE, </span><span class="cx"> * CREATION_DATE_ATTRIBUTE, \
LAST_MODIFIED_DATE_ATTRIBUTE</code>. </span><span class="cx"> * @param \
value Search filter. </span><span class="lines">@@ -78,8 +76,8 @@
</span><span class="cx"> * \
<li>SearchFilter.GREATER_THAN_OPERATOR</li> </span><span class="cx"> \
* </ul> </span><span class="cx"> */
</span><del>- public SearchFilter(String attrName, long value, Operator operator) \
{
- this.attrName = attrName;
</del><ins>+ public SearchFilter(SearchAttribute attribute, long value, Operator \
operator) { + this.attribute = attribute;
</ins><span class="cx"> this.longValue = value;
</span><span class="cx"> this.operator = operator;
</span><span class="cx"> }
</span><span class="lines">@@ -90,7 +88,7 @@
</span><span class="cx"> * @return filter name.
</span><span class="cx"> */
</span><span class="cx"> public String getName() {
</span><del>- return attrName;
</del><ins>+ return attribute.getAttributeName();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> /**
</span><span class="lines">@@ -127,7 +125,7 @@
</span><span class="cx"> */
</span><span class="cx"> public String getFilter() {
</span><span class="cx"> if (value != null) {
</span><del>- return "(ou=" + attrName + "=" + value \
+")"; </del><ins>+ return "(" + \
attribute.toFilter("=") + "=" + value +")"; </ins><span \
class="cx"> } </span><span class="cx">
</span><span class="cx"> /*
</span><span class="lines">@@ -139,20 +137,20 @@
</span><span class="cx"> * Also, since LDAP does not support < or > \
natively, we need to invert >= and <=. </span><span class="cx"> */
</span><span class="cx">
</span><del>- String attrValue = Long.toString(longValue) + "=" + \
attrName; </del><ins>+ String attrValue = Long.toString(longValue) + \
"=" + attribute.getAttributeName(); </ins><span class="cx">
</span><span class="cx"> switch (operator) {
</span><span class="cx"> case LESS_THAN_OPERATOR:
</span><del>- return "(!(ou>=|" + attrValue + \
"))"; </del><ins>+ return "(!(" + \
attribute.getLdapAttribute() + ">=|" + attrValue + "))"; \
</ins><span class="cx"> case LESS_THAN_OR_EQUAL_OPERATOR: </span><del>- \
return "(ou<=" + attrValue + ")"; </del><ins>+ \
return "(" + attribute.getLdapAttribute() + "<=" + attrValue + \
")"; </ins><span class="cx"> case GREATER_THAN_OPERATOR:
</span><del>- return "(!(ou<=" + attrValue + \
"))"; </del><ins>+ return "(!(" + \
attribute.getLdapAttribute() + "<=" + attrValue + "))"; \
</ins><span class="cx"> case GREATER_THAN_OR_EQUAL_OPERATOR: \
</span><del>- return "(ou>=|" + attrValue + \
")"; </del><ins>+ return "(" + \
attribute.getLdapAttribute() + ">=|" + attrValue + ")"; \
</ins><span class="cx"> case EQUALS_OPERATOR: </span><span class="cx"> \
default: </span><del>- return "(ou=" + attrValue + \
")"; </del><ins>+ return "(" + \
attribute.getLdapAttribute() + "=" + attrValue + ")"; </ins><span \
class="cx"> } </span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -168,7 +166,7 @@
</span><span class="cx"> SearchFilter that = (SearchFilter) o;
</span><span class="cx">
</span><span class="cx"> return longValue == that.longValue
</span><del>- && !(attrName != null ? \
!attrName.equals(that.attrName) : that.attrName != null) </del><ins>+ \
&& !(attribute != null ? !attribute.equals(that.attribute) : that.attribute \
!= null) </ins><span class="cx"> && operator == that.operator
</span><span class="cx"> && !(value != null ? \
!value.equals(that.value) : that.value != null); </span><span class="cx">
</span><span class="lines">@@ -176,7 +174,7 @@
</span><span class="cx">
</span><span class="cx"> @Override
</span><span class="cx"> public int hashCode() {
</span><del>- int result = attrName != null ? attrName.hashCode() : 0;
</del><ins>+ int result = attribute != null ? attribute.hashCode() : 0;
</ins><span class="cx"> result = 31 * result + (value != null ? \
value.hashCode() : 0); </span><span class="cx"> result = 31 * result + (int) \
(longValue ^ (longValue >>> 32)); </span><span class="cx"> result = \
31 * result + (operator != null ? operator.hashCode() : 0); \
</span></span></pre></div> <a \
id="trunkopenamopenamcoresrctestjavacomsunidentityentitlementApplicationManagerTestjava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-core/src/test/java/com/sun/identity/entitlement/ApplicationManagerTest.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-core/src/test/java/com/sun/identity/entitlement/ApplicationManagerTest.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-core/src/test/java/com/sun/identity/entitlement/ApplicationManagerTest.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> * Header, with the fields enclosed by brackets [] replaced \
by your own identifying </span><span class="cx"> * information: "Portions \
copyright [year] [name of copyright owner]". </span><span class="cx"> *
</span><del>- * Copyright 2014 ForgeRock AS.
</del><ins>+ * Copyright 2014-2015 ForgeRock AS.
</ins><span class="cx"> */
</span><span class="cx"> package com.sun.identity.entitlement;
</span><span class="cx">
</span><span class="lines">@@ -102,27 +102,27 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> private SearchFilter nameFilter(String name) {
</span><del>- return new SearchFilter(NAME_ATTRIBUTE, name);
</del><ins>+ return new SearchFilter(NAME_SEARCH_ATTRIBUTE, name);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> private SearchFilter descriptionFilter(String \
description) { </span><del>- return new SearchFilter(DESCRIPTION_ATTRIBUTE, \
description); </del><ins>+ return new \
SearchFilter(DESCRIPTION_SEARCH_ATTRIBUTE, description); </ins><span class="cx"> \
} </span><span class="cx">
</span><span class="cx"> private SearchFilter createdByFilter(String description) \
{ </span><del>- return new SearchFilter(CREATED_BY_ATTRIBUTE, description);
</del><ins>+ return new SearchFilter(CREATED_BY_SEARCH_ATTRIBUTE, \
description); </ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> private SearchFilter creationDateFilter(long date, \
SearchFilter.Operator filterOperator) { </span><del>- return new \
SearchFilter(CREATION_DATE_ATTRIBUTE, date, filterOperator); </del><ins>+ \
return new SearchFilter(CREATION_DATE_SEARCH_ATTRIBUTE, date, filterOperator); \
</ins><span class="cx"> } </span><span class="cx">
</span><span class="cx"> private SearchFilter lastModifiedByFilter(String \
description) { </span><del>- return new \
SearchFilter(LAST_MODIFIED_BY_ATTRIBUTE, description); </del><ins>+ return new \
SearchFilter(LAST_MODIFIED_BY_SEARCH_ATTRIBUTE, description); </ins><span class="cx"> \
} </span><span class="cx">
</span><span class="cx"> private SearchFilter lastModifiedDateFilter(long date, \
SearchFilter.Operator filterOperator) { </span><del>- return new \
SearchFilter(LAST_MODIFIED_DATE_ATTRIBUTE, date, filterOperator); </del><ins>+ \
return new SearchFilter(LAST_MODIFIED_DATE_SEARCH_ATTRIBUTE, date, filterOperator); \
</ins><span class="cx"> } </span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkopenamopenamentitlementssrcmainjavacomsunidentityentitlementPrivilegeManagerjava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/PrivilegeManager.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/PrivilegeManager.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/PrivilegeManager.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -135,7 +135,7 @@
</span><span class="cx"> */
</span><span class="cx"> @Override
</span><span class="cx"> public boolean canFindByName(String name) throws \
EntitlementException { </span><del>- SearchFilter filter = new \
SearchFilter("name", name); </del><ins>+ SearchFilter filter = new \
SearchFilter(Privilege.NAME_SEARCH_ATTRIBUTE, name); </ins><span class="cx"> \
return !searchNames(asSet(filter)).isEmpty(); </span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkopenamopenamentitlementssrcmainjavacomsunidentityentitlementxacml3SearchFilterFactoryjava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/xacml3/SearchFilterFactory.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/xacml3/SearchFilterFactory.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-entitlements/src/main/java/com/sun/identity/entitlement/xacml3/SearchFilterFactory.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -11,12 +11,13 @@
</span><span class="cx"> * Header, with the fields enclosed by brackets [] replaced \
by your own identifying </span><span class="cx"> * information: "Portions \
copyright [year] [name of copyright owner]". </span><span class="cx"> *
</span><del>- * Copyright 2014 ForgeRock AS.
</del><ins>+ * Copyright 2014-2015 ForgeRock AS.
</ins><span class="cx"> */
</span><span class="cx"> package com.sun.identity.entitlement.xacml3;
</span><span class="cx">
</span><span class="cx"> import com.sun.identity.entitlement.EntitlementException;
</span><span class="cx"> import com.sun.identity.entitlement.Privilege;
</span><ins>+import com.sun.identity.entitlement.util.SearchAttribute;
</ins><span class="cx"> import com.sun.identity.entitlement.util.SearchFilter;
</span><span class="cx">
</span><span class="cx"> import java.util.HashMap;
</span><span class="lines">@@ -60,18 +61,46 @@
</span><span class="cx">
</span><span class="cx"> if (isAttributeNumeric(name)) { // The < and > \
operators only apply to numeric attributes </span><span class="cx"> try {
</span><del>- return new SearchFilter(name, Long.parseLong(value), \
operator); </del><ins>+ return new \
SearchFilter(getSearchAttribute(name), Long.parseLong(value), operator); </ins><span \
class="cx"> } catch (NumberFormatException e) { </span><span class="cx"> \
throw new EntitlementException( </span><span class="cx"> \
INVALID_SEARCH_FILTER, </span><span class="cx"> new \
Object[]{"Invalid value for attribute", name, value}); </span><span \
class="cx"> } </span><span class="cx"> } else { // Everything \
else is assumed to be equals. </span><del>- return new SearchFilter(name, \
value); </del><ins>+ return new SearchFilter(getSearchAttribute(name), \
value); </ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> /**
</span><ins>+ * Get the SearchAttribute instance for the specified policy \
attribute name. + * @param attributeName The name of the policy attribubte
+ * @return The SearchAttribute instance, as required by {@link SearchFilter}.
+ */
+ public static SearchAttribute getSearchAttribute(String attributeName) {
+ switch(attributeName) {
+ case Privilege.NAME_ATTRIBUTE:
+ return Privilege.NAME_SEARCH_ATTRIBUTE;
+ case Privilege.DESCRIPTION_ATTRIBUTE:
+ return Privilege.DESCRIPTION_SEARCH_ATTRIBUTE;
+ case Privilege.APPLICATION_ATTRIBUTE:
+ return Privilege.APPLICATION_SEARCH_ATTRIBUTE;
+ case Privilege.CREATED_BY_ATTRIBUTE:
+ return Privilege.CREATED_BY_SEARCH_ATTRIBUTE;
+ case Privilege.CREATION_DATE_ATTRIBUTE:
+ return Privilege.CREATION_DATE_SEARCH_ATTRIBUTE;
+ case Privilege.LAST_MODIFIED_BY_ATTRIBUTE:
+ return Privilege.LAST_MODIFIED_BY_SEARCH_ATTRIBUTE;
+ case Privilege.LAST_MODIFIED_DATE_ATTRIBUTE:
+ return Privilege.LAST_MODIFIED_DATE_SEARCH_ATTRIBUTE;
+ case Privilege.RESOURCE_TYPE_UUID_ATTRIBUTE:
+ return Privilege.RESOURCE_TYPE_UUID_SEARCH_ATTRIBUTE;
+ default:
+ return new SearchAttribute(attributeName, "ou");
+ }
+ }
+
+ /**
</ins><span class="cx"> * Parses the SearchFilter formatted text into a tuple of \
sorts. </span><span class="cx"> * @param filter Non null string.
</span><span class="cx"> * @return Name, Operator, Value.
</span></span></pre></div>
<a id="trunkopenamopenamentitlementssrcmainjavaorgforgerockopenamupgradestepspolicyUpgradeResourceTypeStepjava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-entitlements/src/main/java/org/forgerock/openam/upgrade/steps/policy/UpgradeResourceTypeStep.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-entitlements/src/main/java/org/forgerock/openam/upgrade/steps/policy/UpgradeResourceTypeStep.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-entitlements/src/main/java/org/forgerock/openam/upgrade/steps/policy/UpgradeResourceTypeStep.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -349,7 +349,7 @@
</span><span class="cx"> private void upgradePrivileges(PrivilegeManager pm, \
String appName, String resourceTypeUUID) </span><span class="cx"> throws \
UpgradeException { </span><span class="cx">
</span><del>- final SearchFilter searchFilter = new SearchFilter(APPLICATION, \
appName); </del><ins>+ final SearchFilter searchFilter = new \
SearchFilter(Privilege.APPLICATION_SEARCH_ATTRIBUTE, appName); </ins><span \
class="cx"> try { </span><span class="cx"> final \
List<Privilege> privileges = pm.search(Collections.singleton(searchFilter)); \
</span><span class="cx"> for (Privilege privilege : privileges) { \
</span></span></pre></div> <a \
id="trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementApplicationDelegationTestjava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationDelegationTest.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationDelegationTest.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationDelegationTest.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-/**
</del><ins>+/*
</ins><span class="cx"> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
</span><span class="cx"> *
</span><span class="cx"> * Copyright (c) 2009 Sun Microsystems Inc. All Rights \
Reserved </span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx"> *
</span><span class="cx"> * $Id: ApplicationDelegationTest.java,v 1.2 2009/11/12 \
18:37:39 veiming Exp $ </span><span class="cx"> *
</span><del>- * Portions Copyrighted 2014-2015 ForgeRock AS
</del><ins>+ * Portions Copyrighted 2014-2015 ForgeRock AS.
</ins><span class="cx"> */
</span><span class="cx">
</span><span class="cx"> package com.sun.identity.entitlement;
</span><span class="lines">@@ -232,7 +232,7 @@
</span><span class="cx">
</span><span class="cx"> Set<SearchFilter> filter = new \
HashSet<SearchFilter>(); </span><span class="cx"> filter.add(new \
SearchFilter( </span><del>- Privilege.NAME_ATTRIBUTE, PRIVILEGE_NAME + \
"*")); </del><ins>+ Privilege.NAME_SEARCH_ATTRIBUTE, \
PRIVILEGE_NAME + "*")); </ins><span class="cx"> PrivilegeManager pm \
= PrivilegeManager.getInstance("/", </span><span class="cx"> \
testUserSubject); </span><span class="cx"> Set<String> names = \
pm.searchNames(filter); </span></span></pre></div>
<a id="trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementApplicationFilterTestjava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationFilterTest.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationFilterTest.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationFilterTest.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-/**
</del><ins>+/*
</ins><span class="cx"> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
</span><span class="cx"> *
</span><span class="cx"> * Copyright (c) 2009 Sun Microsystems Inc. All Rights \
Reserved </span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx"> *
</span><span class="cx"> * $Id: ApplicationFilterTest.java,v 1.2 2009/12/07 19:46:50 \
veiming Exp $ </span><span class="cx"> *
</span><del>- * Portions Copyrighted 2015 ForgeRock AS
</del><ins>+ * Portions Copyrighted 2015 ForgeRock AS.
</ins><span class="cx"> */
</span><span class="cx">
</span><span class="cx"> package com.sun.identity.entitlement;
</span><span class="lines">@@ -140,7 +140,7 @@
</span><span class="cx"> Subject userSubject = \
SubjectUtils.createSubject(userToken); </span><span class="cx">
</span><span class="cx"> Set<SearchFilter> filters = new \
HashSet<SearchFilter>(); </span><del>- filters.add(new \
SearchFilter(Application.NAME_ATTRIBUTE, </del><ins>+ filters.add(new \
SearchFilter(Application.NAME_SEARCH_ATTRIBUTE, </ins><span class="cx"> \
"ApplicationFilterTes*")); </span><span class="cx"> \
Set<String> names = ApplicationManager.search(userSubject, "/", \
</span><span class="cx"> filters); </span><span class="lines">@@ -150,7 \
+150,7 @@ </span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> filters.clear();
</span><del>- filters.add(new SearchFilter(Application.NAME_ATTRIBUTE, \
"4rwrwr*")); </del><ins>+ filters.add(new \
SearchFilter(Application.NAME_SEARCH_ATTRIBUTE, "4rwrwr*")); </ins><span \
class="cx"> </span><span class="cx"> names = \
ApplicationManager.search(userSubject, "/", filters); </span><span \
class="cx"> if (!names.isEmpty()) { </span></span></pre></div>
<a id="trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementApplicationMetaDatajava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationMetaData.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationMetaData.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/ApplicationMetaData.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-/**
</del><ins>+/*
</ins><span class="cx"> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
</span><span class="cx"> *
</span><span class="cx"> * Copyright (c) 2009 Sun Microsystems Inc. All Rights \
Reserved </span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx"> *
</span><span class="cx"> * $Id: ApplicationMetaData.java,v 1.1 2009/09/25 05:52:56 \
veiming Exp $ </span><span class="cx"> *
</span><del>- * Portions Copyrighted 2015 ForgeRock AS
</del><ins>+ * Portions Copyrighted 2015 ForgeRock AS.
</ins><span class="cx"> */
</span><span class="cx"> package com.sun.identity.entitlement;
</span><span class="cx">
</span><span class="lines">@@ -115,7 +115,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> Set<SearchFilter> filters = new \
HashSet<SearchFilter>(); </span><del>- filters.add(new \
SearchFilter(Application.NAME_ATTRIBUTE, APPL_NAME)); </del><ins>+ \
filters.add(new SearchFilter(Application.NAME_SEARCH_ATTRIBUTE, APPL_NAME)); \
</ins><span class="cx"> Set<String> results = \
ApplicationManager.search( </span><span class="cx"> adminSubject, \
"/", filters); </span><span class="cx"> if \
(!results.contains(APPL_NAME)) { </span></span></pre></div>
<a id="trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementDelegationPrivilegeTestjava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/DelegationPrivilegeTest.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/DelegationPrivilegeTest.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/DelegationPrivilegeTest.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-/**
</del><ins>+/*
</ins><span class="cx"> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
</span><span class="cx"> *
</span><span class="cx"> * Copyright (c) 2009 Sun Microsystems Inc. All Rights \
Reserved </span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx"> *
</span><span class="cx"> * $Id: DelegationPrivilegeTest.java,v 1.5 2009/12/17 \
18:03:51 veiming Exp $ </span><span class="cx"> *
</span><del>- * Portions Copyrighted 2015 ForgeRock AS
</del><ins>+ * Portions Copyrighted 2015 ForgeRock AS.
</ins><span class="cx"> */
</span><span class="cx">
</span><span class="cx"> package com.sun.identity.entitlement;
</span><span class="lines">@@ -141,7 +141,7 @@
</span><span class="cx">
</span><span class="cx"> Set<SearchFilter> filters = new \
HashSet<SearchFilter>(); </span><span class="cx"> String privilegeName \
= testParams.get("DELEGATE_PRIVILEGE_NAME"); </span><del>- \
filters.add(new SearchFilter(Privilege.NAME_ATTRIBUTE, privilegeName)); </del><ins>+ \
filters.add(new SearchFilter(Privilege.NAME_SEARCH_ATTRIBUTE, privilegeName)); \
</ins><span class="cx"> </span><span class="cx"> Set<String> names = \
mgr.search(filters); </span><span class="cx"> if ((names == null) || \
names.isEmpty()) { </span><span class="lines">@@ -166,7 +166,7 @@
</span><span class="cx">
</span><span class="cx"> Set<SearchFilter> filters = new \
HashSet<SearchFilter>(); </span><span class="cx"> String privilegeName \
= testParams.get("DELEGATE_PRIVILEGE_NAME"); </span><del>- \
filters.add(new SearchFilter(Privilege.NAME_ATTRIBUTE, privilegeName)); </del><ins>+ \
filters.add(new SearchFilter(Privilege.NAME_SEARCH_ATTRIBUTE, privilegeName)); \
</ins><span class="cx"> Set<String> privilegeNames = \
mgr.search(filters); </span><span class="cx">
</span><span class="cx"> if ((privilegeNames != null) && \
!privilegeNames.isEmpty()) { </span></span></pre></div>
<a id="trunkopenamopenamfederationOpenFMsrctestjavacomsunidentityentitlementPrivilegeManagerTestjava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/PrivilegeManagerTest.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/PrivilegeManagerTest.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/entitlement/PrivilegeManagerTest.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -396,7 +396,7 @@
</span><span class="cx"> SubjectUtils.createSubject(adminToken));
</span><span class="cx">
</span><span class="cx"> Set<SearchFilter> psf = new \
HashSet<SearchFilter>(); </span><del>- psf.add(new \
SearchFilter(Privilege.NAME_ATTRIBUTE, "*")); </del><ins>+ \
psf.add(new SearchFilter(Privilege.NAME_SEARCH_ATTRIBUTE, "*")); \
</ins><span class="cx"> Set privilegeNames = prm.searchNames(psf); \
</span><span class="cx"> if (!privilegeNames.contains(PRIVILEGE_NAME)) { \
</span><span class="cx"> throw new Exception( </span><span \
class="lines">@@ -405,7 +405,7 @@ </span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> psf = new HashSet<SearchFilter>();
</span><del>- psf.add(new SearchFilter(Privilege.DESCRIPTION_ATTRIBUTE,
</del><ins>+ psf.add(new SearchFilter(Privilege.DESCRIPTION_SEARCH_ATTRIBUTE,
</ins><span class="cx"> PRIVILEGE_DESC));
</span><span class="cx"> privilegeNames = prm.searchNames(psf);
</span><span class="cx"> if (!privilegeNames.contains(PRIVILEGE_NAME)) {
</span></span></pre></div>
<a id="trunkopenamopenamfederationOpenFMsrctestjavacomsunidentitypolicyMetaDataTestjava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/policy/MetaDataTest.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/policy/MetaDataTest.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/policy/MetaDataTest.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-/**
</del><ins>+/*
</ins><span class="cx"> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
</span><span class="cx"> *
</span><span class="cx"> * Copyright (c) 2009 Sun Microsystems Inc. All Rights \
Reserved </span><span class="lines">@@ -24,13 +24,14 @@
</span><span class="cx"> *
</span><span class="cx"> * $Id: MetaDataTest.java,v 1.3 2009/10/14 03:18:42 veiming \
Exp $ </span><span class="cx"> *
</span><del>- * Portions Copyrighted 2014 ForgeRock AS
</del><ins>+ * Portions Copyrighted 2014-2015 ForgeRock AS.
</ins><span class="cx"> */
</span><span class="cx">
</span><span class="cx"> package com.sun.identity.policy;
</span><span class="cx">
</span><span class="cx"> import com.iplanet.sso.SSOException;
</span><span class="cx"> import com.iplanet.sso.SSOToken;
</span><ins>+import com.sun.identity.entitlement.Privilege;
</ins><span class="cx"> import com.sun.identity.entitlement.PrivilegeManager;
</span><span class="cx"> import com.sun.identity.entitlement.opensso.SubjectUtils;
</span><span class="cx"> import com.sun.identity.entitlement.util.SearchFilter;
</span><span class="lines">@@ -127,7 +128,7 @@
</span><span class="cx"> ) throws Exception {
</span><span class="cx"> Set<SearchFilter> filter =
</span><span class="cx"> new HashSet<SearchFilter>();
</span><del>- filter.add(new SearchFilter("creationdate", value, \
operator)); </del><ins>+ filter.add(new \
SearchFilter(Privilege.CREATION_DATE_SEARCH_ATTRIBUTE, value, operator)); </ins><span \
class="cx"> Set<String> privilegeNames = \
privilegMgr.searchNames(filter); </span><span class="cx">
</span><span class="cx"> if (!containCheckOnly) {
</span></span></pre></div>
<a id="trunkopenamopenamfederationOpenFMsrctestjavacomsunidentitypolicyReferralPolicyTestjava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/policy/ReferralPolicyTest.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/policy/ReferralPolicyTest.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-federation/OpenFM/src/test/java/com/sun/identity/policy/ReferralPolicyTest.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-/**
</del><ins>+/*
</ins><span class="cx"> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
</span><span class="cx"> *
</span><span class="cx"> * Copyright (c) 2009 Sun Microsystems Inc. All Rights \
Reserved </span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx"> *
</span><span class="cx"> * $Id: ReferralPolicyTest.java,v 1.2 2009/09/25 05:52:56 \
veiming Exp $ </span><span class="cx"> *
</span><del>- * Portions Copyrighted 2014 ForgeRock AS
</del><ins>+ * Portions Copyrighted 2014-2015 ForgeRock AS.
</ins><span class="cx"> */
</span><span class="cx">
</span><span class="cx"> package com.sun.identity.policy;
</span><span class="lines">@@ -169,7 +169,7 @@
</span><span class="cx"> ReferralPrivilegeManager rfm = new \
ReferralPrivilegeManager("/", </span><span class="cx"> \
adminSubject); </span><span class="cx"> SearchFilter f = new SearchFilter(
</span><del>- Privilege.NAME_ATTRIBUTE, "*");
</del><ins>+ Privilege.NAME_SEARCH_ATTRIBUTE, "*");
</ins><span class="cx"> ReferralPrivilege ref = \
rfm.findByName(REFERRAL_POLICY_NAME1); </span><span class="cx"> \
Map<String, Set<String>> map = ref.getMapApplNameToResources(); \
</span><span class="cx"> if ((map == null) || map.isEmpty()) { \
</span></span></pre></div> <a \
id="trunkopenamopenamrestsrcmainjavacomsunidentityrestPrivilegeResourcejava"></a> \
<div class="modfile"><h4>Modified: \
trunk/openam/openam-rest/src/main/java/com/sun/identity/rest/PrivilegeResource.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-rest/src/main/java/com/sun/identity/rest/PrivilegeResource.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-rest/src/main/java/com/sun/identity/rest/PrivilegeResource.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-/**
</del><ins>+/*
</ins><span class="cx"> * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
</span><span class="cx"> *
</span><span class="cx"> * Copyright (c) 2009 Sun Microsystems Inc. All Rights \
Reserved </span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx"> *
</span><span class="cx"> * $Id: PrivilegeResource.java,v 1.5 2009/12/15 00:44:19 \
veiming Exp $ </span><span class="cx"> *
</span><del>- * Portions Copyrighted 2014 ForgeRock AS
</del><ins>+ * Portions Copyrighted 2014-2015 ForgeRock AS.
</ins><span class="cx"> */
</span><span class="cx">
</span><span class="cx"> package com.sun.identity.rest;
</span><span class="lines">@@ -33,6 +33,8 @@
</span><span class="cx"> import com.sun.identity.entitlement.Privilege;
</span><span class="cx"> import com.sun.identity.entitlement.PrivilegeManager;
</span><span class="cx"> import com.sun.identity.entitlement.util.SearchFilter;
</span><ins>+import com.sun.identity.entitlement.xacml3.SearchFilterFactory;
+
</ins><span class="cx"> import java.util.Collections;
</span><span class="cx"> import java.util.HashSet;
</span><span class="cx"> import java.util.List;
</span><span class="lines">@@ -239,7 +241,7 @@
</span><span class="cx"> if \
((attrName.equals(Privilege.LAST_MODIFIED_DATE_ATTRIBUTE)) || </span><span \
class="cx"> (attrName.equals(Privilege.CREATION_DATE_ATTRIBUTE))) { \
</span><span class="cx"> try { </span><del>- sf = \
new SearchFilter(attrName, </del><ins>+ sf = new \
SearchFilter(SearchFilterFactory.getSearchAttribute(attrName), </ins><span \
class="cx"> Long.parseLong(f.substring(idx + 1)), \
</span><span class="cx"> \
SearchFilter.Operator.EQUALS_OPERATOR); </span><span class="cx"> } \
catch (NumberFormatException e) { </span><span class="lines">@@ -247,7 +249,7 @@
</span><span class="cx"> throw new EntitlementException(328, \
param); </span><span class="cx"> }
</span><span class="cx"> } else {
</span><del>- sf = new SearchFilter(attrName, f.substring(idx + 1));
</del><ins>+ sf = new \
SearchFilter(SearchFilterFactory.getSearchAttribute(attrName), f.substring(idx + 1)); \
</ins><span class="cx"> } </span><span class="cx"> }
</span><span class="cx"> return sf;
</span><span class="lines">@@ -263,7 +265,7 @@
</span><span class="cx"> if \
((attrName.equals(Privilege.LAST_MODIFIED_DATE_ATTRIBUTE)) || </span><span \
class="cx"> (attrName.equals(Privilege.CREATION_DATE_ATTRIBUTE))) { \
</span><span class="cx"> try { </span><del>- sf = \
new SearchFilter(attrName, </del><ins>+ sf = new \
SearchFilter(SearchFilterFactory.getSearchAttribute(attrName), </ins><span \
class="cx"> Long.parseLong(f.substring(idx + 1)), \
</span><span class="cx"> \
SearchFilter.Operator.EQUALS_OPERATOR); </span><span class="cx"> } \
catch (NumberFormatException e) { </span></span></pre></div>
<a id="trunkopenamopenamrestsrcmainjavaorgforgerockopenamforgerockrestentitlementsReferralsResourceV1java"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/ReferralsResourceV1.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/ReferralsResourceV1.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/ReferralsResourceV1.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> * Header, with the fields enclosed by brackets [] replaced \
by your own identifying </span><span class="cx"> * information: "Portions \
copyright [year] [name of copyright owner]". </span><span class="cx"> *
</span><del>-* Copyright 2014 ForgeRock AS.
</del><ins>+* Copyright 2014-2015 ForgeRock AS.
</ins><span class="cx"> */
</span><span class="cx"> package org.forgerock.openam.forgerockrest.entitlements;
</span><span class="cx">
</span><span class="lines">@@ -79,7 +79,7 @@
</span><span class="cx"> this.debug = debug;
</span><span class="cx">
</span><span class="cx"> queryAttributes = new HashMap<String, \
QueryAttribute>(); </span><del>- \
queryAttributes.put("applicationName", new QueryAttribute(STRING, \
Privilege.APPLICATION_ATTRIBUTE)); </del><ins>+ \
queryAttributes.put("applicationName", new QueryAttribute(STRING, \
Privilege.APPLICATION_SEARCH_ATTRIBUTE)); </ins><span class="cx">
</span><span class="cx"> \
mapper.disable(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES); \
</span><span class="cx"> } </span></span></pre></div>
<a id="trunkopenamopenamrestsrcmainjavaorgforgerockopenamforgerockrestentitlementsqueryAttributeTypejava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/query/AttributeType.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/query/AttributeType.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/query/AttributeType.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -11,11 +11,12 @@
</span><span class="cx"> * Header, with the fields enclosed by brackets [] replaced \
by your own identifying </span><span class="cx"> * information: "Portions \
copyright [year] [name of copyright owner]". </span><span class="cx"> *
</span><del>- * Copyright 2014 ForgeRock AS.
</del><ins>+ * Copyright 2014-2015 ForgeRock AS.
</ins><span class="cx"> */
</span><span class="cx">
</span><span class="cx"> package \
org.forgerock.openam.forgerockrest.entitlements.query; </span><span class="cx">
</span><ins>+import com.sun.identity.entitlement.util.SearchAttribute;
</ins><span class="cx"> import com.sun.identity.entitlement.util.SearchFilter;
</span><span class="cx"> import com.sun.identity.shared.DateUtils;
</span><span class="cx">
</span><span class="lines">@@ -30,7 +31,7 @@
</span><span class="cx"> public enum AttributeType {
</span><span class="cx"> STRING {
</span><span class="cx"> @Override
</span><del>- public SearchFilter getFilter(String field, \
SearchFilter.Operator operator, Object value) { </del><ins>+ public \
SearchFilter getFilter(SearchAttribute field, SearchFilter.Operator operator, Object \
value) { </ins><span class="cx"> if (operator != \
SearchFilter.Operator.EQUALS_OPERATOR) { </span><span class="cx"> \
throw new UnsupportedOperationException("Only equality supported for string \
attributes"); </span><span class="cx"> }
</span><span class="lines">@@ -39,7 +40,7 @@
</span><span class="cx"> },
</span><span class="cx"> NUMBER {
</span><span class="cx"> @Override
</span><del>- public SearchFilter getFilter(String field, \
SearchFilter.Operator operator, Object value) { </del><ins>+ public \
SearchFilter getFilter(SearchAttribute field, SearchFilter.Operator operator, Object \
value) { </ins><span class="cx"> try {
</span><span class="cx"> return new SearchFilter(field, ((Number) \
value).longValue(), operator); </span><span class="cx"> } catch \
(ClassCastException ex) { </span><span class="lines">@@ -49,7 +50,7 @@
</span><span class="cx"> },
</span><span class="cx"> TIMESTAMP {
</span><span class="cx"> @Override
</span><del>- public SearchFilter getFilter(String field, \
SearchFilter.Operator operator, Object value) { </del><ins>+ public \
SearchFilter getFilter(SearchAttribute field, SearchFilter.Operator operator, Object \
value) { </ins><span class="cx"> try {
</span><span class="cx"> Date timestamp = \
DateUtils.stringToDate(value.toString()); </span><span class="cx"> \
return new SearchFilter(field, timestamp.getTime(), operator); </span><span \
class="lines">@@ -70,5 +71,5 @@ </span><span class="cx"> * @throws \
UnsupportedOperationException if the operator is invalid for this attribute type. \
</span><span class="cx"> * @throws IllegalArgumentException if the value is not \
of a type that this attribute can handle. </span><span class="cx"> */
</span><del>- public abstract SearchFilter getFilter(String field, \
SearchFilter.Operator operator, Object value); </del><ins>+ public abstract \
SearchFilter getFilter(SearchAttribute field, SearchFilter.Operator operator, Object \
value); </ins><span class="cx"> }
</span></span></pre></div>
<a id="trunkopenamopenamrestsrcmainjavaorgforgerockopenamforgerockrestentitlementsqueryQueryAttributejava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/query/QueryAttribute.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/query/QueryAttribute.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/entitlements/query/QueryAttribute.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -11,11 +11,12 @@
</span><span class="cx"> * Header, with the fields enclosed by brackets [] replaced \
by your own identifying </span><span class="cx"> * information: "Portions \
copyright [year] [name of copyright owner]". </span><span class="cx"> *
</span><del>- * Copyright 2014 ForgeRock, AS.
</del><ins>+ * Copyright 2014-2015 ForgeRock AS.
</ins><span class="cx"> */
</span><span class="cx">
</span><span class="cx"> package \
org.forgerock.openam.forgerockrest.entitlements.query; </span><span class="cx">
</span><ins>+import com.sun.identity.entitlement.util.SearchAttribute;
</ins><span class="cx"> import com.sun.identity.entitlement.util.SearchFilter;
</span><span class="cx"> import org.forgerock.util.Reject;
</span><span class="cx">
</span><span class="lines">@@ -26,12 +27,12 @@
</span><span class="cx"> */
</span><span class="cx"> public final class QueryAttribute {
</span><span class="cx"> private final AttributeType type;
</span><del>- private final String attributeName;
</del><ins>+ private final SearchAttribute attribute;
</ins><span class="cx">
</span><del>- public QueryAttribute(AttributeType type, String attributeName) {
- Reject.ifNull(type, attributeName);
</del><ins>+ public QueryAttribute(AttributeType type, SearchAttribute attribute) \
{ + Reject.ifNull(type, attribute);
</ins><span class="cx"> this.type = type;
</span><del>- this.attributeName = attributeName;
</del><ins>+ this.attribute = attribute;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> /**
</span><span class="lines">@@ -45,6 +46,6 @@
</span><span class="cx"> */
</span><span class="cx"> public SearchFilter getFilter(SearchFilter.Operator \
operator, Object value) { </span><span class="cx"> Reject.ifNull(operator, \
value); </span><del>- return type.getFilter(attributeName, operator, value);
</del><ins>+ return type.getFilter(attribute, operator, value);
</ins><span class="cx"> }
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkopenamopenamrestsrcmainjavaorgforgerockopenamforgerockrestguiceForgerockRestGuiceModulejava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/guice/ForgerockRestGuiceModule.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/guice/ForgerockRestGuiceModule.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-rest/src/main/java/org/forgerock/openam/forgerockrest/guice/ForgerockRestGuiceModule.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -421,14 +421,14 @@
</span><span class="cx"> public Map<String, QueryAttribute> get() {
</span><span class="cx"> final Map<String, QueryAttribute> \
attributes = new HashMap<String, QueryAttribute>(); </span><span class="cx">
</span><del>- attributes.put("name", new QueryAttribute(STRING, \
Privilege.NAME_ATTRIBUTE));
- attributes.put("description", new QueryAttribute(STRING, \
Privilege.DESCRIPTION_ATTRIBUTE));
- attributes.put("applicationName", new QueryAttribute(STRING, \
Privilege.APPLICATION_ATTRIBUTE));
- attributes.put("createdBy", new QueryAttribute(STRING, \
Privilege.CREATED_BY_ATTRIBUTE));
- attributes.put("creationDate", new QueryAttribute(TIMESTAMP, \
Privilege.CREATION_DATE_ATTRIBUTE));
- attributes.put("lastModifiedBy", new QueryAttribute(STRING, \
Privilege.LAST_MODIFIED_BY_ATTRIBUTE));
- attributes.put("lastModifiedDate", new \
QueryAttribute(TIMESTAMP, Privilege.LAST_MODIFIED_DATE_ATTRIBUTE));
- attributes.put("resourceTypeUuid", new QueryAttribute(STRING, \
Privilege.RESOURCE_TYPE_UUID_ATTRIBUTE)); </del><ins>+ \
attributes.put("name", new QueryAttribute(STRING, \
Privilege.NAME_SEARCH_ATTRIBUTE)); + \
attributes.put("description", new QueryAttribute(STRING, \
Privilege.DESCRIPTION_SEARCH_ATTRIBUTE)); + \
attributes.put("applicationName", new QueryAttribute(STRING, \
Privilege.APPLICATION_SEARCH_ATTRIBUTE)); + \
attributes.put("createdBy", new QueryAttribute(STRING, \
Privilege.CREATED_BY_SEARCH_ATTRIBUTE)); + \
attributes.put("creationDate", new QueryAttribute(TIMESTAMP, \
Privilege.CREATION_DATE_SEARCH_ATTRIBUTE)); + \
attributes.put("lastModifiedBy", new QueryAttribute(STRING, \
Privilege.LAST_MODIFIED_BY_SEARCH_ATTRIBUTE)); + \
attributes.put("lastModifiedDate", new QueryAttribute(TIMESTAMP, \
Privilege.LAST_MODIFIED_DATE_SEARCH_ATTRIBUTE)); + \
attributes.put("resourceTypeUuid", new QueryAttribute(STRING, \
Privilege.RESOURCE_TYPE_UUID_SEARCH_ATTRIBUTE)); </ins><span class="cx">
</span><span class="cx"> return attributes;
</span><span class="cx"> }
</span><span class="lines">@@ -442,12 +442,12 @@
</span><span class="cx"> public Map<String, QueryAttribute> get() {
</span><span class="cx"> final Map<String, QueryAttribute> \
attributes = new HashMap<String, QueryAttribute>(); </span><span class="cx">
</span><del>- attributes.put("name", new QueryAttribute(STRING, \
Application.NAME_ATTRIBUTE));
- attributes.put("description", new QueryAttribute(STRING, \
Application.DESCRIPTION_ATTRIBUTE));
- attributes.put("createdBy", new QueryAttribute(STRING, \
Application.CREATED_BY_ATTRIBUTE));
- attributes.put("creationDate", new QueryAttribute(TIMESTAMP, \
Application.CREATION_DATE_ATTRIBUTE));
- attributes.put("lastModifiedBy", new QueryAttribute(STRING, \
Application.LAST_MODIFIED_BY_ATTRIBUTE));
- attributes.put("lastModifiedDate", new \
QueryAttribute(TIMESTAMP, Application.LAST_MODIFIED_DATE_ATTRIBUTE)); </del><ins>+ \
attributes.put("name", new QueryAttribute(STRING, \
Application.NAME_SEARCH_ATTRIBUTE)); + \
attributes.put("description", new QueryAttribute(STRING, \
Application.DESCRIPTION_SEARCH_ATTRIBUTE)); + \
attributes.put("createdBy", new QueryAttribute(STRING, \
Application.CREATED_BY_SEARCH_ATTRIBUTE)); + \
attributes.put("creationDate", new QueryAttribute(TIMESTAMP, \
Application.CREATION_DATE_SEARCH_ATTRIBUTE)); + \
attributes.put("lastModifiedBy", new QueryAttribute(STRING, \
Application.LAST_MODIFIED_BY_SEARCH_ATTRIBUTE)); + \
attributes.put("lastModifiedDate", new QueryAttribute(TIMESTAMP, \
Application.LAST_MODIFIED_DATE_SEARCH_ATTRIBUTE)); </ins><span class="cx">
</span><span class="cx"> return attributes;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkopenamopenamrestsrctestjavaorgforgerockopenamforgerockrestentitlementsApplicationsResourceTestjava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/ApplicationsResourceTest.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/ApplicationsResourceTest.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/ApplicationsResourceTest.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -18,6 +18,7 @@
</span><span class="cx">
</span><span class="cx"> import com.sun.identity.entitlement.Application;
</span><span class="cx"> import com.sun.identity.entitlement.EntitlementException;
</span><ins>+import com.sun.identity.entitlement.util.SearchAttribute;
</ins><span class="cx"> import com.sun.identity.entitlement.util.SearchFilter;
</span><span class="cx"> import com.sun.identity.shared.DateUtils;
</span><span class="cx"> import com.sun.identity.shared.debug.Debug;
</span><span class="lines">@@ -111,9 +112,9 @@
</span><span class="cx"> applicationWrapper = mock(ApplicationWrapper.class);
</span><span class="cx">
</span><span class="cx"> queryAttributes = new HashMap<String, \
QueryAttribute>(); </span><del>- queryAttributes.put(STRING_ATTRIBUTE, new \
QueryAttribute(AttributeType.STRING, STRING_ATTRIBUTE));
- queryAttributes.put(NUMERIC_ATTRIBUTE, new \
QueryAttribute(AttributeType.NUMBER, NUMERIC_ATTRIBUTE));
- queryAttributes.put(DATE_ATTRIBUTE, new \
QueryAttribute(AttributeType.TIMESTAMP, DATE_ATTRIBUTE)); </del><ins>+ \
queryAttributes.put(STRING_ATTRIBUTE, new QueryAttribute(AttributeType.STRING, new \
SearchAttribute(STRING_ATTRIBUTE, "ou"))); + \
queryAttributes.put(NUMERIC_ATTRIBUTE, new QueryAttribute(AttributeType.NUMBER, new \
SearchAttribute(NUMERIC_ATTRIBUTE, "ou"))); + \
queryAttributes.put(DATE_ATTRIBUTE, new QueryAttribute(AttributeType.TIMESTAMP, new \
SearchAttribute(DATE_ATTRIBUTE, "ou"))); </ins><span class="cx">
</span><span class="cx"> applicationsResource = new ApplicationsResource(
</span><span class="cx"> debug, applicationManagerWrapper, \
applicationTypeManagerWrapper, queryAttributes, resourceErrorHandler) { </span><span \
class="lines">@@ -1143,7 +1144,7 @@ </span><span class="cx"> \
applicationsResource.query(request, subject, "/abc"); </span><span \
class="cx"> </span><span class="cx"> // Then
</span><del>- SearchFilter searchFilter = new SearchFilter(STRING_ATTRIBUTE, \
value); </del><ins>+ SearchFilter searchFilter = new SearchFilter(new \
SearchAttribute(STRING_ATTRIBUTE, "ou"), value); </ins><span class="cx"> \
verify(applicationManagerWrapper).search(eq(subject), eq("/abc"), \
eq(asSet(searchFilter))); </span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -1170,7 +1171,7 @@
</span><span class="cx"> applicationsResource.query(request, subject, \
"/abc"); </span><span class="cx">
</span><span class="cx"> // Then
</span><del>- SearchFilter searchFilter = new SearchFilter(NUMERIC_ATTRIBUTE, \
value, expectedOperator); </del><ins>+ SearchFilter searchFilter = new \
SearchFilter(new SearchAttribute(NUMERIC_ATTRIBUTE, "ou"), value, \
expectedOperator); </ins><span class="cx"> \
verify(applicationManagerWrapper).search(eq(subject), eq("/abc"), \
eq(asSet(searchFilter))); </span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -1221,7 +1222,7 @@
</span><span class="cx">
</span><span class="cx"> // Then
</span><span class="cx"> // Date should be converted into a time-stamp long \
value </span><del>- SearchFilter searchFilter = new \
SearchFilter(DATE_ATTRIBUTE, value.getTime(), expectedOperator); </del><ins>+ \
SearchFilter searchFilter = new SearchFilter(new SearchAttribute(DATE_ATTRIBUTE, \
"ou"), value.getTime(), expectedOperator); </ins><span class="cx"> \
verify(applicationManagerWrapper).search(eq(subject), eq("/abc"), \
eq(asSet(searchFilter))); </span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -1251,8 +1252,8 @@
</span><span class="cx"> applicationsResource.query(request, subject, \
"/abc"); </span><span class="cx">
</span><span class="cx"> // Then
</span><del>- SearchFilter searchFilter1 = new SearchFilter(STRING_ATTRIBUTE, \
value1);
- SearchFilter searchFilter2 = new SearchFilter(STRING_ATTRIBUTE, value2);
</del><ins>+ SearchFilter searchFilter1 = new SearchFilter(new \
SearchAttribute(STRING_ATTRIBUTE, "ou"), value1); + SearchFilter \
searchFilter2 = new SearchFilter(new SearchAttribute(STRING_ATTRIBUTE, \
"ou"), value2); </ins><span class="cx"> \
verify(applicationManagerWrapper).search(eq(subject), eq("/abc"), \
eq(asSet(searchFilter1, searchFilter2))); </span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkopenamopenamrestsrctestjavaorgforgerockopenamforgerockrestentitlementsPrivilegePolicyStoreTestjava"></a>
<div class="modfile"><h4>Modified: \
trunk/openam/openam-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/PrivilegePolicyStoreTest.java \
(13654 => 13655)</h4> <pre class="diff"><span>
<span class="info">--- \
trunk/openam/openam-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/PrivilegePolicyStoreTest.java 2015-04-30 \
18:13:59 UTC (rev 13654)
+++ trunk/openam/openam-rest/src/test/java/org/forgerock/openam/forgerockrest/entitlements/PrivilegePolicyStoreTest.java 2015-04-30 \
19:48:57 UTC (rev 13655) </span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> * Header, with the fields enclosed by brackets [] replaced \
by your own identifying </span><span class="cx"> * information: "Portions \
copyright [year] [name of copyright owner]". </span><span class="cx"> *
</span><del>- * Copyright 2014 ForgeRock AS.
</del><ins>+ * Copyright 2014-2015 ForgeRock AS.
</ins><span class="cx"> */
</span><span class="cx">
</span><span class="cx"> package org.forgerock.openam.forgerockrest.entitlements;
</span><span class="lines">@@ -19,6 +19,7 @@
</span><span class="cx"> import com.sun.identity.entitlement.EntitlementException;
</span><span class="cx"> import com.sun.identity.entitlement.Privilege;
</span><span class="cx"> import com.sun.identity.entitlement.PrivilegeManager;
</span><ins>+import com.sun.identity.entitlement.util.SearchAttribute;
</ins><span class="cx"> import com.sun.identity.entitlement.util.SearchFilter;
</span><span class="cx"> import com.sun.identity.shared.DateUtils;
</span><span class="cx"> import org.forgerock.json.resource.QueryFilter;
</span><span class="lines">@@ -51,6 +52,9 @@
</span><span class="cx"> private static final String STRING_ATTRIBUTE = \
"stringAttribute"; </span><span class="cx"> private static final String \
DATE_ATTRIBUTE = "dateAttribute"; </span><span class="cx"> private \
static final String NUMERIC_ATTRIBUTE = "numberAttribute"; </span><ins>+ \
private static final SearchAttribute STRING_SEARCH_ATTRIBUTE = new \
SearchAttribute(STRING_ATTRIBUTE, "ou"); + private static final \
SearchAttribute DATE_SEARCH_ATTRIBUTE = new SearchAttribute(DATE_ATTRIBUTE, \
"ou"); + private static final SearchAttribute NUMERIC_SEARCH_ATTRIBUTE = \
new SearchAttribute("numberAttribute", "ou"); </ins><span \
class="cx"> </span><span class="cx"> private PrivilegeManager mockManager;
</span><span class="cx"> private PrivilegePolicyStore testStore;
</span><span class="lines">@@ -70,9 +74,9 @@
</span><span class="cx"> mockManager = mock(PrivilegeManager.class);
</span><span class="cx">
</span><span class="cx"> Map<String, QueryAttribute> queryAttributes = \
new HashMap<String, QueryAttribute>(); </span><del>- \
queryAttributes.put(STRING_ATTRIBUTE, new QueryAttribute(AttributeType.STRING, \
STRING_ATTRIBUTE));
- queryAttributes.put(NUMERIC_ATTRIBUTE, new \
QueryAttribute(AttributeType.NUMBER, NUMERIC_ATTRIBUTE));
- queryAttributes.put(DATE_ATTRIBUTE, new \
QueryAttribute(AttributeType.TIMESTAMP, DATE_ATTRIBUTE)); </del><ins>+ \
queryAttributes.put(STRING_ATTRIBUTE, new QueryAttribute(AttributeType.STRING, \
STRING_SEARCH_ATTRIBUTE)); + queryAttributes.put(NUMERIC_ATTRIBUTE, new \
QueryAttribute(AttributeType.NUMBER, NUMERIC_SEARCH_ATTRIBUTE)); + \
queryAttributes.put(DATE_ATTRIBUTE, new QueryAttribute(AttributeType.TIMESTAMP, \
DATE_SEARCH_ATTRIBUTE)); </ins><span class="cx">
</span><span class="cx"> testStore = new PrivilegePolicyStore(mockManager, \
queryAttributes); </span><span class="cx"> }
</span><span class="lines">@@ -181,7 +185,7 @@
</span><span class="cx"> testStore.query(request);
</span><span class="cx">
</span><span class="cx"> // Then
</span><del>- verify(mockManager).search(singleton(new \
SearchFilter(STRING_ATTRIBUTE, value))); </del><ins>+ \
verify(mockManager).search(singleton(new SearchFilter(STRING_SEARCH_ATTRIBUTE, \
value))); </ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> @DataProvider(name = \
"SupportedQueryOperators") </span><span class="lines">@@ -207,7 +211,7 @@
</span><span class="cx">
</span><span class="cx"> // Then
</span><span class="cx"> verify(mockManager).search(singleton(
</span><del>- new SearchFilter(NUMERIC_ATTRIBUTE, value, \
expectedOperator))); </del><ins>+ new \
SearchFilter(NUMERIC_SEARCH_ATTRIBUTE, value, expectedOperator))); </ins><span \
class="cx"> } </span><span class="cx">
</span><span class="cx"> @DataProvider(name = "UnsupportedOperators")
</span><span class="lines">@@ -253,7 +257,7 @@
</span><span class="cx"> // Then
</span><span class="cx"> // Date should be converted into a time-stamp long \
value </span><span class="cx"> verify(mockManager).search(
</span><del>- singleton(new SearchFilter(DATE_ATTRIBUTE, \
value.getTime(), expectedOperator))); </del><ins>+ singleton(new \
SearchFilter(DATE_SEARCH_ATTRIBUTE, value.getTime(), expectedOperator))); </ins><span \
class="cx"> } </span><span class="cx">
</span><span class="cx"> @Test(expectedExceptions = EntitlementException.class, \
expectedExceptionsMessageRegExp = ".*not supported.*") </span><span \
class="lines">@@ -281,8 +285,8 @@ </span><span class="cx">
</span><span class="cx"> // Then
</span><span class="cx"> verify(mockManager).search(
</span><del>- asSet(new SearchFilter(STRING_ATTRIBUTE, value1),
- new SearchFilter(STRING_ATTRIBUTE, value2)));
</del><ins>+ asSet(new SearchFilter(STRING_SEARCH_ATTRIBUTE, value1),
+ new SearchFilter(STRING_SEARCH_ATTRIBUTE, value2)));
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> @Test(expectedExceptions = EntitlementException.class, \
expectedExceptionsMessageRegExp = ".*'Or' not supported.*") \
</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