Commit 7752d7a8 authored by cdanger's avatar cdanger

Changes in pdp-api:

IndividualDecisionRequest -> IndividualXACMLRequest
- MultiDecisionRequestFilter now returning immutable
IndividualXACMLRequestFilter instead of mutable
parent 474fd0ae
......@@ -42,7 +42,7 @@
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>${artifactId.prefix}-core-pdp-api</artifactId>
<version>9.1.0</version>
<version>9.1.1-SNAPSHOT</version>
</dependency>
<!-- /Authzforce dependencies -->
......
......@@ -47,8 +47,9 @@ import org.ow2.authzforce.core.pdp.api.DecisionResultFilter.FilteringResultColle
import org.ow2.authzforce.core.pdp.api.EnvironmentProperties;
import org.ow2.authzforce.core.pdp.api.EnvironmentPropertyName;
import org.ow2.authzforce.core.pdp.api.HashCollections;
import org.ow2.authzforce.core.pdp.api.ImmutablePdpDecisionRequest;
import org.ow2.authzforce.core.pdp.api.IndeterminateEvaluationException;
import org.ow2.authzforce.core.pdp.api.IndividualDecisionRequest;
import org.ow2.authzforce.core.pdp.api.IndividualXACMLRequest;
import org.ow2.authzforce.core.pdp.api.PdpDecisionRequest;
import org.ow2.authzforce.core.pdp.api.PdpDecisionRequestBuilder;
import org.ow2.authzforce.core.pdp.api.PdpDecisionResult;
......@@ -247,10 +248,10 @@ public final class BasePdpEngine implements CloseablePDP<ImmutablePdpDecisionReq
}
@Override
protected List<Result> evaluateToJAXB(final List<? extends IndividualDecisionRequest> individualDecisionRequests, final Map<AttributeGUID, Bag<?>> pdpIssuedAttributes)
protected List<Result> evaluateToJAXB(final List<? extends IndividualXACMLRequest> individualDecisionRequests, final Map<AttributeGUID, Bag<?>> pdpIssuedAttributes)
{
final FilteringResultCollector filteringResultCollector = beginMultipleDecisions(individualDecisionRequests.size());
for (final IndividualDecisionRequest individualDecisionRequest : individualDecisionRequests)
for (final IndividualXACMLRequest individualDecisionRequest : individualDecisionRequests)
{
if (individualDecisionRequest == null)
{
......@@ -351,9 +352,9 @@ public final class BasePdpEngine implements CloseablePDP<ImmutablePdpDecisionReq
}
@Override
public List<Result> evaluateToJAXB(final List<? extends IndividualDecisionRequest> individualDecisionRequests, final Map<AttributeGUID, Bag<?>> pdpIssuedAttributes)
public List<Result> evaluateToJAXB(final List<? extends IndividualXACMLRequest> individualDecisionRequests, final Map<AttributeGUID, Bag<?>> pdpIssuedAttributes)
{
final Map<? extends IndividualDecisionRequest, PdpDecisionResult> cachedResultsByRequest = decisionCache.getAll(individualDecisionRequests);
final Map<? extends IndividualXACMLRequest, PdpDecisionResult> cachedResultsByRequest = decisionCache.getAll(individualDecisionRequests);
if (cachedResultsByRequest == null)
{
// error, return indeterminate result as only result
......@@ -365,11 +366,11 @@ public final class BasePdpEngine implements CloseablePDP<ImmutablePdpDecisionReq
* There will be at most as many new results (not in cache) as there are individual decision requests
*/
final FilteringResultCollector filteringResultCollector = beginMultipleDecisions(individualDecisionRequests.size());
final Map<IndividualDecisionRequest, PdpDecisionResult> newResultsByRequest = HashCollections.newUpdatableMap(individualDecisionRequests.size());
final Map<IndividualXACMLRequest, PdpDecisionResult> newResultsByRequest = HashCollections.newUpdatableMap(individualDecisionRequests.size());
try
{
for (final IndividualDecisionRequest individualDecisionRequest : individualDecisionRequests)
for (final IndividualXACMLRequest individualDecisionRequest : individualDecisionRequests)
{
final PdpDecisionResult finalResult;
/*
......@@ -961,7 +962,7 @@ public final class BasePdpEngine implements CloseablePDP<ImmutablePdpDecisionReq
* The request parser may return multiple individual decision requests from a single Request, e.g. if the request parser implements the Multiple Decision profile or Hierarchical Resource
* profile
*/
final List<? extends IndividualDecisionRequest> individualDecisionRequests;
final List<? extends IndividualXACMLRequest> individualDecisionRequests;
try
{
individualDecisionRequests = reqFilter.filter(request, namespaceURIsByPrefix);
......
......@@ -31,9 +31,9 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.Attributes;
import org.ow2.authzforce.core.pdp.api.AttributeGUID;
import org.ow2.authzforce.core.pdp.api.BaseRequestFilter;
import org.ow2.authzforce.core.pdp.api.HashCollections;
import org.ow2.authzforce.core.pdp.api.ImmutableIndividualDecisionRequest;
import org.ow2.authzforce.core.pdp.api.ImmutablePdpDecisionRequest;
import org.ow2.authzforce.core.pdp.api.IndeterminateEvaluationException;
import org.ow2.authzforce.core.pdp.api.IndividualDecisionRequest;
import org.ow2.authzforce.core.pdp.api.IndividualXACMLRequest;
import org.ow2.authzforce.core.pdp.api.JaxbXACMLUtils.JaxbXACMLAttributesParser;
import org.ow2.authzforce.core.pdp.api.RequestFilter;
import org.ow2.authzforce.core.pdp.api.SingleCategoryAttributes;
......@@ -41,6 +41,8 @@ import org.ow2.authzforce.core.pdp.api.StatusHelper;
import org.ow2.authzforce.core.pdp.api.value.Bag;
import org.ow2.authzforce.core.pdp.api.value.DatatypeFactoryRegistry;
import com.google.common.collect.ImmutableList;
/**
* Default Request filter for Individual Decision Requests only (no support of Multiple Decision Profile in particular)
*
......@@ -113,7 +115,7 @@ public final class DefaultRequestFilter extends BaseRequestFilter
/** {@inheritDoc} */
@Override
public List<? extends IndividualDecisionRequest> filter(final List<Attributes> attributesList, final JaxbXACMLAttributesParser xacmlAttrsParser, final boolean isApplicablePolicyIdListReturned,
public List<? extends IndividualXACMLRequest> filter(final List<Attributes> attributesList, final JaxbXACMLAttributesParser xacmlAttrsParser, final boolean isApplicablePolicyIdListReturned,
final boolean combinedDecision, final XPathCompiler xPathCompiler, final Map<String, String> namespaceURIsByPrefix) throws IndeterminateEvaluationException
{
final Map<AttributeGUID, Bag<?>> namedAttributes = HashCollections.newUpdatableMap(attributesList.size());
......@@ -165,6 +167,7 @@ public final class DefaultRequestFilter extends BaseRequestFilter
}
}
return Collections.singletonList(new ImmutableIndividualDecisionRequest(namedAttributes, extraContentsByCategory, attributesToIncludeInResult, isApplicablePolicyIdListReturned));
return Collections.singletonList(new IndividualXACMLRequest(new ImmutablePdpDecisionRequest(namedAttributes, extraContentsByCategory, isApplicablePolicyIdListReturned), ImmutableList
.copyOf(attributesToIncludeInResult)));
}
}
/**
* Copyright 2012-2017 Thales Services SAS.
*
* This file is part of AuthzForce CE.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
*
*/
package org.ow2.authzforce.core.pdp.impl;
import java.util.Map;
import net.sf.saxon.s9api.XdmNode;
import org.ow2.authzforce.core.pdp.api.AttributeGUID;
import org.ow2.authzforce.core.pdp.api.HashCollections;
import org.ow2.authzforce.core.pdp.api.IndividualPdpDecisionRequest;
import org.ow2.authzforce.core.pdp.api.value.Bag;
/**
* Immutable implementation of {@link IndividualPdpDecisionRequest} to be used as input to {@link BasePdpEngine}
*/
public final class ImmutablePdpDecisionRequest implements IndividualPdpDecisionRequest
{
private final Map<AttributeGUID, Bag<?>> attributes;
private final Map<String, XdmNode> extraContentsByCategory;
private final boolean isApplicablePolicyListReturned;
/**
* Create new instance
*
* @param namedAttributes
* named Attributes (no extra Content element)
* @param extraContentNodesByCategory
* extra XML Content elements by attribute Category
* @param includedInResult
* attributes to be include in the final Result
* @param returnApplicablePolicies
* return list of applicable policy identifiers; equivalent of XACML Request's ReturnPolicyIdList flag
*/
ImmutablePdpDecisionRequest(final Map<AttributeGUID, Bag<?>> namedAttributes, final Map<String, XdmNode> extraContentNodesByCategory, final boolean returnApplicablePolicies)
{
// these maps/lists may be updated later by put(...) method defined in this class
attributes = namedAttributes == null ? null : HashCollections.newImmutableMap(namedAttributes);
extraContentsByCategory = extraContentNodesByCategory == null ? null : HashCollections.newImmutableMap(extraContentNodesByCategory);
this.isApplicablePolicyListReturned = returnApplicablePolicies;
}
/*
* (non-Javadoc)
*
* @see org.ow2.authzforce.core.IndividualDecisionRequest#getNamedAttributes()
*/
@Override
public Map<AttributeGUID, Bag<?>> getNamedAttributes()
{
return attributes;
}
/*
* (non-Javadoc)
*
* @see org.ow2.authzforce.core.IndividualDecisionRequest#getExtraContentsByCategory()
*/
@Override
public Map<String, XdmNode> getExtraContentsByCategory()
{
return this.extraContentsByCategory;
}
/**
* @return the returnApplicablePolicyIdList
*/
@Override
public boolean isApplicablePolicyIdListReturned()
{
return isApplicablePolicyListReturned;
}
/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString()
{
return "[namedAttributes=" + attributes + ", extraContentsByCategory=" + extraContentsByCategory + ", returnApplicablePolicyIdList=" + isApplicablePolicyListReturned + "]";
}
}
......@@ -30,7 +30,7 @@ import org.ow2.authzforce.core.pdp.api.AttributeSelectorId;
import org.ow2.authzforce.core.pdp.api.EvaluationContext;
import org.ow2.authzforce.core.pdp.api.HashCollections;
import org.ow2.authzforce.core.pdp.api.IndeterminateEvaluationException;
import org.ow2.authzforce.core.pdp.api.IndividualDecisionRequest;
import org.ow2.authzforce.core.pdp.api.PdpDecisionRequest;
import org.ow2.authzforce.core.pdp.api.StatusHelper;
import org.ow2.authzforce.core.pdp.api.UpdatableCollections;
import org.ow2.authzforce.core.pdp.api.UpdatableMap;
......@@ -87,20 +87,20 @@ public final class IndividualDecisionRequestContext implements EvaluationContext
* @param namedAttributeMap
* updatable named attribute map (attribute key and value pairs) from the original Request; null iff none. An attribute key is a global ID based on attribute category,issuer,id. An
* attribute value is a bag of primitive values.
* @param extraContentsByAttributeCategory
* @param contentNodesByCategory
* extra contents by attribute category (equivalent to XACML Attributes/Content elements); null iff no Content in the attribute category.
* @param returnApplicablePolicyIdList
* true iff list of IDs of policies matched during evaluation must be returned
* @param returnUsedAttributes
* true iff the list of attributes used during evaluation may be requested by
*/
public IndividualDecisionRequestContext(final Map<AttributeGUID, Bag<?>> namedAttributeMap, final Map<String, XdmNode> extraContentsByAttributeCategory,
public IndividualDecisionRequestContext(final Map<AttributeGUID, Bag<?>> namedAttributeMap, final Map<String, XdmNode> contentNodesByCategory,
final boolean returnApplicablePolicyIdList, final boolean returnUsedAttributes)
{
this.namedAttributes = namedAttributeMap == null ? HashCollections.<AttributeGUID, Bag<?>> newUpdatableMap() : namedAttributeMap;
this.returnApplicablePolicyIdList = returnApplicablePolicyIdList;
this.usedNamedAttributeIdSet = returnUsedAttributes ? UpdatableCollections.<AttributeGUID> newUpdatableSet() : UpdatableCollections.<AttributeGUID> emptySet();
if (extraContentsByAttributeCategory == null)
if (contentNodesByCategory == null)
{
this.extraContentsByAttributeCategory = Collections.emptyMap();
this.attributeSelectorResults = UpdatableCollections.emptyMap();
......@@ -110,7 +110,7 @@ public final class IndividualDecisionRequestContext implements EvaluationContext
}
else
{
this.extraContentsByAttributeCategory = extraContentsByAttributeCategory;
this.extraContentsByAttributeCategory = contentNodesByCategory;
this.attributeSelectorResults = UpdatableCollections.newUpdatableMap();
this.usedAttributeSelectorIdSet = returnUsedAttributes ? UpdatableCollections.<AttributeSelectorId> newUpdatableSet() : UpdatableCollections.<AttributeSelectorId> emptySet();
}
......@@ -124,9 +124,9 @@ public final class IndividualDecisionRequestContext implements EvaluationContext
* @param returnUsedAttributes
* true iff the list of attributes used during evaluation may be requested by
*/
public IndividualDecisionRequestContext(final IndividualDecisionRequest individualDecisionReq, final boolean returnUsedAttributes)
public IndividualDecisionRequestContext(final PdpDecisionRequest individualDecisionReq, final boolean returnUsedAttributes)
{
this(individualDecisionReq.getNamedAttributes(), individualDecisionReq.getExtraContentsByCategory(), individualDecisionReq.isApplicablePolicyIdListReturned(), returnUsedAttributes);
this(individualDecisionReq.getNamedAttributes(), individualDecisionReq.getContentNodesByCategory(), individualDecisionReq.isApplicablePolicyIdListReturned(), returnUsedAttributes);
}
/** {@inheritDoc} */
......
......@@ -30,7 +30,7 @@ import org.ow2.authzforce.core.pdp.api.DecisionResultFilter.FilteringResultColle
import org.ow2.authzforce.core.pdp.api.EvaluationContext;
import org.ow2.authzforce.core.pdp.api.HashCollections;
import org.ow2.authzforce.core.pdp.api.IndeterminateEvaluationException;
import org.ow2.authzforce.core.pdp.api.IndividualDecisionRequest;
import org.ow2.authzforce.core.pdp.api.IndividualXACMLRequest;
import org.ow2.authzforce.core.pdp.api.PdpDecisionRequest;
import org.ow2.authzforce.core.pdp.api.PdpDecisionResult;
import org.ow2.authzforce.core.pdp.api.StatusHelper;
......@@ -179,9 +179,9 @@ public abstract class IndividualDecisionRequestEvaluator
}
@Override
public List<Result> addResult(final IndividualDecisionRequest request, final PdpDecisionResult result)
public List<Result> addResult(final IndividualXACMLRequest request, final PdpDecisionResult result)
{
results.add(result.toXACMLResult(request.getReturnedAttributes()));
results.add(result.toXACMLResult(request.getAttributesToBeReturned()));
return null;
}
......@@ -294,7 +294,7 @@ public abstract class IndividualDecisionRequestEvaluator
* </p>
*
* @param request
* a non-null {@link org.ow2.authzforce.core.pdp.api.IndividualDecisionRequest} object.
* a non-null {@link PdpDecisionRequest} object.
* @param pdpIssuedAttributes
* a {@link java.util.Map} of PDP-issued attributes including at least the standard environment attributes: current-time, current-date, current-dateTime.
* @param returnUsedAttributes
......@@ -308,8 +308,7 @@ public abstract class IndividualDecisionRequestEvaluator
// convert to EvaluationContext
final Map<AttributeGUID, Bag<?>> mergedNamedAttributes = reqAndPdpIssuedAttributesMerger.merge(pdpIssuedAttributes, request.getNamedAttributes());
final EvaluationContext ctx = new IndividualDecisionRequestContext(mergedNamedAttributes, request.getExtraContentsByCategory(), request.isApplicablePolicyIdListReturned(),
returnUsedAttributes);
final EvaluationContext ctx = new IndividualDecisionRequestContext(mergedNamedAttributes, request.getContentNodesByCategory(), request.isApplicablePolicyIdListReturned(), returnUsedAttributes);
return rootPolicyEvaluator.findAndEvaluate(ctx);
}
......@@ -354,6 +353,6 @@ public abstract class IndividualDecisionRequestEvaluator
* a {@link java.util.Map} of PDP-issued attributes including at least the standard environment attributes: current-time, current-date, current-dateTime.
* @return a {@link java.util.List} of XACML {@link Result}s (one per individual decision request), ready to be included in a final XACML Response.
*/
protected abstract List<Result> evaluateToJAXB(List<? extends IndividualDecisionRequest> individualDecisionRequests, final Map<AttributeGUID, Bag<?>> pdpIssuedAttributes);
protected abstract List<Result> evaluateToJAXB(List<? extends IndividualXACMLRequest> individualDecisionRequests, final Map<AttributeGUID, Bag<?>> pdpIssuedAttributes);
}
......@@ -27,26 +27,28 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.Attributes;
import org.ow2.authzforce.core.pdp.api.AttributeGUID;
import org.ow2.authzforce.core.pdp.api.HashCollections;
import org.ow2.authzforce.core.pdp.api.IndividualDecisionRequest;
import org.ow2.authzforce.core.pdp.api.IndividualXACMLRequest;
import org.ow2.authzforce.core.pdp.api.ImmutablePdpDecisionRequest;
import org.ow2.authzforce.core.pdp.api.SingleCategoryAttributes;
import org.ow2.authzforce.core.pdp.api.value.Bag;
import com.google.common.collect.ImmutableList;
/**
* Mutable Individual Decision Request
* (Mutable) Individual Decision Request builder, used only by {@link MultiDecisionRequestFilter}, to build an immutable decision request
*
* @version $Id: $
*/
public final class MutableIndividualDecisionRequest implements IndividualDecisionRequest
final class IndividualXACMLRequestBuilder
{
private static final IllegalArgumentException UNDEF_ATTRIBUTES_EXCEPTION = new IllegalArgumentException("Undefined attributes");
private static final IllegalArgumentException UNDEF_ATTRIBUTE_CATEGORY_EXCEPTION = new IllegalArgumentException("Undefined attribute category");
private final Map<AttributeGUID, Bag<?>> namedAttributes;
// initialized not null by constructors
private final Map<String, XdmNode> extraContentsByCategory;
private final Map<AttributeGUID, Bag<?>> namedAttributes;
private final Map<String, XdmNode> contentNodesByCategory;
private final List<Attributes> attributesToIncludeInResult;
private final boolean returnApplicablePolicyIdList;
private final boolean isApplicablePolicyIdListReturned;
/**
* Creates empty request (no attribute)
......@@ -54,13 +56,13 @@ public final class MutableIndividualDecisionRequest implements IndividualDecisio
* @param returnPolicyIdList
* equivalent of XACML ReturnPolicyIdList
*/
public MutableIndividualDecisionRequest(final boolean returnPolicyIdList)
IndividualXACMLRequestBuilder(final boolean returnPolicyIdList)
{
// these maps/lists may be updated later by put(...) method defined in this class
namedAttributes = HashCollections.newUpdatableMap();
extraContentsByCategory = HashCollections.newUpdatableMap();
contentNodesByCategory = HashCollections.newUpdatableMap();
attributesToIncludeInResult = new ArrayList<>();
returnApplicablePolicyIdList = returnPolicyIdList;
isApplicablePolicyIdListReturned = returnPolicyIdList;
}
/**
......@@ -69,16 +71,15 @@ public final class MutableIndividualDecisionRequest implements IndividualDecisio
* @param baseRequest
* replicated existing request. Further changes to it are not reflected back to this new instance.
*/
public MutableIndividualDecisionRequest(final IndividualDecisionRequest baseRequest)
IndividualXACMLRequestBuilder(final IndividualXACMLRequestBuilder baseRequest)
{
assert baseRequest != null;
// these maps/lists may be updated later by put(...) method defined in this class
final Map<AttributeGUID, Bag<?>> baseNamedAttributes = baseRequest.getNamedAttributes();
final Map<String, XdmNode> baseExtraContentsByCategory = baseRequest.getExtraContentsByCategory();
final List<Attributes> baseReturnedAttributes = baseRequest.getReturnedAttributes();
namedAttributes = baseNamedAttributes == null ? HashCollections.<AttributeGUID, Bag<?>> newUpdatableMap() : HashCollections.newUpdatableMap(baseNamedAttributes);
extraContentsByCategory = baseExtraContentsByCategory == null ? HashCollections.<String, XdmNode> newUpdatableMap() : HashCollections.newUpdatableMap(baseExtraContentsByCategory);
attributesToIncludeInResult = baseReturnedAttributes == null ? new ArrayList<>() : new ArrayList<>(baseRequest.getReturnedAttributes());
returnApplicablePolicyIdList = baseRequest.isApplicablePolicyIdListReturned();
namedAttributes = HashCollections.newUpdatableMap(baseRequest.namedAttributes);
contentNodesByCategory = HashCollections.newUpdatableMap(baseRequest.contentNodesByCategory);
isApplicablePolicyIdListReturned = baseRequest.isApplicablePolicyIdListReturned;
attributesToIncludeInResult = new ArrayList<>(baseRequest.attributesToIncludeInResult);
}
/**
......@@ -89,7 +90,7 @@ public final class MutableIndividualDecisionRequest implements IndividualDecisio
* @param categorySpecificAttributes
* attributes in category {@code categoryName}
* @throws java.lang.IllegalArgumentException
* if {@code categoryName == null || attributes == null} or duplicate attribute category ({@link #put(String, SingleCategoryAttributes)} already called with same {@code categoryName}
* if {@code categoryName == null || categorySpecificAttributes == null} or duplicate attribute category (this method was already called with same {@code categoryName})
*/
public void put(final String categoryName, final SingleCategoryAttributes<?> categorySpecificAttributes) throws IllegalArgumentException
{
......@@ -104,11 +105,11 @@ public final class MutableIndividualDecisionRequest implements IndividualDecisio
}
// extraContentsByCategory initialized not null by constructors
assert extraContentsByCategory != null;
assert contentNodesByCategory != null;
final XdmNode newContentNode = categorySpecificAttributes.getExtraContent();
if (newContentNode != null)
{
final XdmNode duplicate = extraContentsByCategory.putIfAbsent(categoryName, newContentNode);
final XdmNode duplicate = contentNodesByCategory.putIfAbsent(categoryName, newContentNode);
if (duplicate != null)
{
throw new IllegalArgumentException("Duplicate Attributes[@Category] in Individual Decision Request (not allowed): " + categoryName);
......@@ -134,47 +135,10 @@ public final class MutableIndividualDecisionRequest implements IndividualDecisio
}
/*
* (non-Javadoc)
*
* @see org.ow2.authzforce.core.IndividualDecisionRequest#getNamedAttributes()
*/
/** {@inheritDoc} */
@Override
public Map<AttributeGUID, Bag<?>> getNamedAttributes()
{
return namedAttributes;
}
/*
* (non-Javadoc)
*
* @see org.ow2.authzforce.core.IndividualDecisionRequest#getAttributesIncludedInResult()
*/
/** {@inheritDoc} */
@Override
public List<Attributes> getReturnedAttributes()
{
return this.attributesToIncludeInResult;
}
/*
* (non-Javadoc)
*
* @see org.ow2.authzforce.core.IndividualDecisionRequest#getExtraContentsByCategory()
*/
/** {@inheritDoc} */
@Override
public Map<String, XdmNode> getExtraContentsByCategory()
{
return this.extraContentsByCategory;
}
/** {@inheritDoc} */
@Override
public boolean isApplicablePolicyIdListReturned()
public IndividualXACMLRequest build()
{
return returnApplicablePolicyIdList;
return new IndividualXACMLRequest(new ImmutablePdpDecisionRequest(this.namedAttributes, this.contentNodesByCategory, this.isApplicablePolicyIdListReturned),
ImmutableList.copyOf(this.attributesToIncludeInResult));
}
}
......@@ -24,6 +24,7 @@ import java.util.Map;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.Request;
import oasis.names.tc.xacml._3_0.core.schema.wd_17.Response;
import org.ow2.authzforce.core.pdp.api.ImmutablePdpDecisionRequest;
import org.ow2.authzforce.core.pdp.api.IndeterminateEvaluationException;
import org.ow2.authzforce.core.pdp.api.PDPEngine;
import org.ow2.authzforce.core.pdp.api.PdpDecisionRequestBuilder;
......
......@@ -26,7 +26,7 @@ import oasis.names.tc.xacml._3_0.core.schema.wd_17.Result;
import org.ow2.authzforce.core.pdp.api.DecisionResultFilter;
import org.ow2.authzforce.core.pdp.api.ImmutablePepActions;
import org.ow2.authzforce.core.pdp.api.IndividualDecisionRequest;
import org.ow2.authzforce.core.pdp.api.IndividualXACMLRequest;
import org.ow2.authzforce.core.pdp.api.PdpDecisionResult;
import org.ow2.authzforce.core.pdp.api.StatusHelper;
......@@ -61,7 +61,7 @@ public class TestCombinedDecisionResultFilter implements DecisionResultFilter
private DecisionType combinedDecision = DecisionType.INDETERMINATE;
@Override
public List<Result> addResult(final IndividualDecisionRequest request, final PdpDecisionResult result)
public List<Result> addResult(final IndividualXACMLRequest request, final PdpDecisionResult result)
{
if (result.getDecision() == DecisionType.INDETERMINATE)
{
......
......@@ -44,6 +44,7 @@ import org.apache.cxf.security.SecurityContext;
import org.apache.wss4j.common.ext.WSSecurityException;
import org.ow2.authzforce.core.pdp.api.AttributeGUID;
import org.ow2.authzforce.core.pdp.api.HashCollections;
import org.ow2.authzforce.core.pdp.api.ImmutablePdpDecisionRequest;
import org.ow2.authzforce.core.pdp.api.PdpDecisionRequest;
import org.ow2.authzforce.core.pdp.api.PdpDecisionRequestBuilder;
import org.ow2.authzforce.core.pdp.api.PdpDecisionResult;
......@@ -52,7 +53,6 @@ import org.ow2.authzforce.core.pdp.api.value.Bag;
import org.ow2.authzforce.core.pdp.api.value.Bags;
import org.ow2.authzforce.core.pdp.api.value.StringValue;
import org.ow2.authzforce.core.pdp.impl.BasePdpEngine;
import org.ow2.authzforce.core.pdp.impl.ImmutablePdpDecisionRequest;
import org.ow2.authzforce.xacml.identifiers.XACMLAttributeId;
import org.slf4j.LoggerFactory;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment