Class AbstractXACMLAuthorizingInterceptor

java.lang.Object
org.apache.cxf.phase.AbstractPhaseInterceptor<Message>
org.apache.cxf.rt.security.saml.xacml2.AbstractXACMLAuthorizingInterceptor
All Implemented Interfaces:
Interceptor<Message>, PhaseInterceptor<Message>
Direct Known Subclasses:
XACMLAuthorizingInterceptor

public abstract class AbstractXACMLAuthorizingInterceptor extends AbstractPhaseInterceptor<Message>
An interceptor to perform an XACML 2.0 authorization request to a remote PDP using OpenSAML, and make an authorization decision based on the response. It takes the principal and roles from the SecurityContext, and uses the XACMLRequestBuilder to construct an XACML Request statement. How the actual PDP invocation is made is up to a subclass.
  • Constructor Details

    • AbstractXACMLAuthorizingInterceptor

      public AbstractXACMLAuthorizingInterceptor()
  • Method Details

    • handleMessage

      public void handleMessage(Message message) throws Fault
      Description copied from interface: Interceptor
      Intercepts a message. Interceptors should NOT invoke handleMessage or handleFault on the next interceptor - the interceptor chain will take care of this.
      Throws:
      Fault
    • getRequestBuilder

      public XACMLRequestBuilder getRequestBuilder()
    • setRequestBuilder

      public void setRequestBuilder(XACMLRequestBuilder requestBuilder)
    • authorize

      protected boolean authorize(Principal principal, List<String> roles, Message message) throws Exception
      Perform a (remote) authorization decision and return a boolean depending on the result
      Throws:
      Exception
    • handleObligations

      protected void handleObligations(org.opensaml.xacml.ctx.RequestType request, Principal principal, Message message, org.opensaml.xacml.ctx.ResultType result) throws Exception
      Handle any Obligations returned by the PDP
      Throws:
      Exception
    • performRequest

      protected abstract org.opensaml.xacml.ctx.ResponseType performRequest(org.opensaml.xacml.ctx.RequestType request, Message message) throws Exception
      Throws:
      Exception