Class 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 Detail

      • AbstractXACMLAuthorizingInterceptor

        public AbstractXACMLAuthorizingInterceptor()
    • Method Detail

      • 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
      • 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