public class AuthorizationInterceptor extends Object implements IRuleApplier
See the HAPI FHIR Documentation on Server Security for information on how to use this interceptor.
SearchNarrowingInterceptor| Modifier and Type | Class and Description |
|---|---|
static class |
AuthorizationInterceptor.Verdict |
| Constructor and Description |
|---|
AuthorizationInterceptor()
Constructor
|
AuthorizationInterceptor(PolicyEnum theDefaultPolicy)
Constructor
|
| Modifier and Type | Method and Description |
|---|---|
AuthorizationInterceptor.Verdict |
applyRulesAndReturnDecision(ca.uhn.fhir.rest.api.RestOperationTypeEnum theOperation,
RequestDetails theRequestDetails,
org.hl7.fhir.instance.model.api.IBaseResource theInputResource,
org.hl7.fhir.instance.model.api.IIdType theInputResourceId,
org.hl7.fhir.instance.model.api.IBaseResource theOutputResource) |
List<IAuthRule> |
buildRuleList(RequestDetails theRequestDetails)
Subclasses should override this method to supply the set of rules to be applied to
this individual request.
|
PolicyEnum |
getDefaultPolicy()
The default policy if no rules have been found to apply.
|
Set<AuthorizationFlagsEnum> |
getFlags()
This property configures any flags affecting how authorization is
applied.
|
protected void |
handleDeny(AuthorizationInterceptor.Verdict decision)
This method should not be overridden.
|
protected void |
handleDeny(RequestDetails theRequestDetails,
AuthorizationInterceptor.Verdict decision)
Handle an access control verdict of
PolicyEnum.DENY. |
void |
incomingRequestPreHandled(ca.uhn.fhir.rest.api.RestOperationTypeEnum theOperation,
IServerInterceptor.ActionRequestDetails theProcessedRequest) |
boolean |
outgoingResponse(RequestDetails theRequestDetails,
org.hl7.fhir.instance.model.api.IBaseResource theResponseObject) |
void |
resourcePreCreate(RequestDetails theRequest,
org.hl7.fhir.instance.model.api.IBaseResource theResource) |
void |
resourcePreDelete(RequestDetails theRequest,
org.hl7.fhir.instance.model.api.IBaseResource theResource) |
void |
resourcePreUpdate(RequestDetails theRequest,
org.hl7.fhir.instance.model.api.IBaseResource theOldResource,
org.hl7.fhir.instance.model.api.IBaseResource theNewResource) |
void |
setDefaultPolicy(PolicyEnum theDefaultPolicy)
The default policy if no rules have been found to apply.
|
AuthorizationInterceptor |
setFlags(AuthorizationFlagsEnum... theFlags)
This property configures any flags affecting how authorization is
applied.
|
AuthorizationInterceptor |
setFlags(Collection<AuthorizationFlagsEnum> theFlags)
This property configures any flags affecting how authorization is
applied.
|
public AuthorizationInterceptor()
public AuthorizationInterceptor(PolicyEnum theDefaultPolicy)
theDefaultPolicy - The default policy if no rules apply (must not be null)public AuthorizationInterceptor.Verdict applyRulesAndReturnDecision(ca.uhn.fhir.rest.api.RestOperationTypeEnum theOperation, RequestDetails theRequestDetails, org.hl7.fhir.instance.model.api.IBaseResource theInputResource, org.hl7.fhir.instance.model.api.IIdType theInputResourceId, org.hl7.fhir.instance.model.api.IBaseResource theOutputResource)
applyRulesAndReturnDecision in interface IRuleApplierpublic List<IAuthRule> buildRuleList(RequestDetails theRequestDetails)
Typically this is done by examining theRequestDetails to find
out who the current user is and then using a RuleBuilder to create
an appropriate rule chain.
theRequestDetails - The individual request currently being appliedpublic PolicyEnum getDefaultPolicy()
PolicyEnum.DENYpublic void setDefaultPolicy(PolicyEnum theDefaultPolicy)
PolicyEnum.DENYtheDefaultPolicy - The policy (must not be null)public Set<AuthorizationFlagsEnum> getFlags()
setFlags(Collection)public AuthorizationInterceptor setFlags(Collection<AuthorizationFlagsEnum> theFlags)
theFlags - The flags (must not be null)setFlags(AuthorizationFlagsEnum...)public AuthorizationInterceptor setFlags(AuthorizationFlagsEnum... theFlags)
theFlags - The flags (must not be null)setFlags(Collection)protected void handleDeny(RequestDetails theRequestDetails, AuthorizationInterceptor.Verdict decision)
PolicyEnum.DENY.
Subclasses may override to implement specific behaviour, but default is to
throw ForbiddenOperationException (HTTP 403) with error message citing the
rule name which trigered failure
protected void handleDeny(AuthorizationInterceptor.Verdict decision)
handleDeny(RequestDetails, Verdict) instead. This
method will be removed in the future.public void incomingRequestPreHandled(ca.uhn.fhir.rest.api.RestOperationTypeEnum theOperation, IServerInterceptor.ActionRequestDetails theProcessedRequest)
public boolean outgoingResponse(RequestDetails theRequestDetails, org.hl7.fhir.instance.model.api.IBaseResource theResponseObject)
public void resourcePreCreate(RequestDetails theRequest, org.hl7.fhir.instance.model.api.IBaseResource theResource)
public void resourcePreDelete(RequestDetails theRequest, org.hl7.fhir.instance.model.api.IBaseResource theResource)
public void resourcePreUpdate(RequestDetails theRequest, org.hl7.fhir.instance.model.api.IBaseResource theOldResource, org.hl7.fhir.instance.model.api.IBaseResource theNewResource)
Copyright © 2014–2019 University Health Network. All rights reserved.