Search in sources :

Example 6 with RequestType

use of org.opensaml.xacml.ctx.RequestType in project testcases by coheigea.

the class MockPDPImpl method requestSourceToRequestType.

private RequestType requestSourceToRequestType(Source requestSource) {
    try {
        Transformer trans = TransformerFactory.newInstance().newTransformer();
        DOMResult res = new DOMResult();
        trans.transform(requestSource, res);
        Node nd = res.getNode();
        if (nd instanceof Document) {
            nd = ((Document) nd).getDocumentElement();
        }
        return (RequestType) OpenSAMLUtil.fromDom((Element) nd);
    } catch (Exception e) {
        throw new RuntimeException("Error converting pdp response to ResponseType", e);
    }
}
Also used : Transformer(javax.xml.transform.Transformer) DOMResult(javax.xml.transform.dom.DOMResult) Node(org.w3c.dom.Node) Element(org.w3c.dom.Element) Document(org.w3c.dom.Document) WSSecurityException(org.apache.wss4j.common.ext.WSSecurityException) RequestType(org.opensaml.xacml.ctx.RequestType)

Example 7 with RequestType

use of org.opensaml.xacml.ctx.RequestType in project cxf by apache.

the class RequestComponentBuilder method createRequestType.

@SuppressWarnings("unchecked")
public static RequestType createRequestType(List<SubjectType> subjects, List<ResourceType> resources, ActionType action, EnvironmentType environment) {
    if (requestTypeBuilder == null) {
        requestTypeBuilder = (XACMLObjectBuilder<RequestType>) builderFactory.getBuilder(RequestType.DEFAULT_ELEMENT_NAME);
    }
    RequestType request = requestTypeBuilder.buildObject();
    request.getSubjects().addAll(subjects);
    request.getResources().addAll(resources);
    request.setAction(action);
    request.setEnvironment(environment);
    return request;
}
Also used : RequestType(org.opensaml.xacml.ctx.RequestType)

Example 8 with RequestType

use of org.opensaml.xacml.ctx.RequestType in project cxf by apache.

the class RequestComponentBuilderTest method testEnvironment.

@org.junit.Test
public void testEnvironment() throws Exception {
    Document doc = docBuilder.newDocument();
    // Subject
    AttributeValueType subjectIdAttributeValue = RequestComponentBuilder.createAttributeValueType("alice-user@apache.org");
    AttributeType subjectIdAttribute = RequestComponentBuilder.createAttributeType(XACMLConstants.SUBJECT_ID, XACMLConstants.RFC_822_NAME, null, Collections.singletonList(subjectIdAttributeValue));
    List<AttributeType> attributes = new ArrayList<>();
    attributes.add(subjectIdAttribute);
    SubjectType subject = RequestComponentBuilder.createSubjectType(attributes, null);
    // Resource
    AttributeValueType resourceAttributeValue = RequestComponentBuilder.createAttributeValueType("{http://www.example.org/contract/DoubleIt}DoubleIt");
    AttributeType resourceAttribute = RequestComponentBuilder.createAttributeType(XACMLConstants.RESOURCE_ID, XACMLConstants.XS_STRING, null, Collections.singletonList(resourceAttributeValue));
    attributes.clear();
    attributes.add(resourceAttribute);
    ResourceType resource = RequestComponentBuilder.createResourceType(attributes, null);
    // Action
    AttributeValueType actionAttributeValue = RequestComponentBuilder.createAttributeValueType("execute");
    AttributeType actionAttribute = RequestComponentBuilder.createAttributeType(XACMLConstants.ACTION_ID, XACMLConstants.XS_STRING, null, Collections.singletonList(actionAttributeValue));
    attributes.clear();
    attributes.add(actionAttribute);
    ActionType action = RequestComponentBuilder.createActionType(attributes);
    // Environment
    DateTime dateTime = new DateTime();
    AttributeValueType environmentAttributeValue = RequestComponentBuilder.createAttributeValueType(dateTime.toString());
    AttributeType environmentAttribute = RequestComponentBuilder.createAttributeType(XACMLConstants.CURRENT_DATETIME, XACMLConstants.XS_DATETIME, null, Collections.singletonList(environmentAttributeValue));
    attributes.clear();
    attributes.add(environmentAttribute);
    EnvironmentType environmentType = RequestComponentBuilder.createEnvironmentType(attributes);
    // Request
    RequestType request = RequestComponentBuilder.createRequestType(Collections.singletonList(subject), Collections.singletonList(resource), action, environmentType);
    Element policyElement = OpenSAMLUtil.toDom(request, doc);
    // String outputString = DOM2Writer.nodeToString(policyElement);
    assertNotNull(policyElement);
}
Also used : SubjectType(org.opensaml.xacml.ctx.SubjectType) ActionType(org.opensaml.xacml.ctx.ActionType) EnvironmentType(org.opensaml.xacml.ctx.EnvironmentType) AttributeValueType(org.opensaml.xacml.ctx.AttributeValueType) AttributeType(org.opensaml.xacml.ctx.AttributeType) Element(org.w3c.dom.Element) ArrayList(java.util.ArrayList) ResourceType(org.opensaml.xacml.ctx.ResourceType) Document(org.w3c.dom.Document) DateTime(org.joda.time.DateTime) RequestType(org.opensaml.xacml.ctx.RequestType)

Example 9 with RequestType

use of org.opensaml.xacml.ctx.RequestType in project cxf by apache.

the class RequestComponentBuilderTest method testCreateXACMLRequest.

@org.junit.Test
public void testCreateXACMLRequest() throws Exception {
    Document doc = docBuilder.newDocument();
    // Subject
    AttributeValueType subjectIdAttributeValue = RequestComponentBuilder.createAttributeValueType("alice-user@apache.org");
    AttributeType subjectIdAttribute = RequestComponentBuilder.createAttributeType(XACMLConstants.SUBJECT_ID, XACMLConstants.RFC_822_NAME, null, Collections.singletonList(subjectIdAttributeValue));
    AttributeValueType subjectGroupAttributeValue = RequestComponentBuilder.createAttributeValueType("manager");
    AttributeType subjectGroupAttribute = RequestComponentBuilder.createAttributeType(XACMLConstants.SUBJECT_ROLE, XACMLConstants.XS_ANY_URI, "admin-user@apache.org", Collections.singletonList(subjectGroupAttributeValue));
    List<AttributeType> attributes = new ArrayList<>();
    attributes.add(subjectIdAttribute);
    attributes.add(subjectGroupAttribute);
    SubjectType subject = RequestComponentBuilder.createSubjectType(attributes, null);
    // Resource
    AttributeValueType resourceAttributeValue = RequestComponentBuilder.createAttributeValueType("{http://www.example.org/contract/DoubleIt}DoubleIt");
    AttributeType resourceAttribute = RequestComponentBuilder.createAttributeType(XACMLConstants.RESOURCE_ID, XACMLConstants.XS_STRING, null, Collections.singletonList(resourceAttributeValue));
    attributes.clear();
    attributes.add(resourceAttribute);
    ResourceType resource = RequestComponentBuilder.createResourceType(attributes, null);
    // Action
    AttributeValueType actionAttributeValue = RequestComponentBuilder.createAttributeValueType("execute");
    AttributeType actionAttribute = RequestComponentBuilder.createAttributeType(XACMLConstants.ACTION_ID, XACMLConstants.XS_STRING, null, Collections.singletonList(actionAttributeValue));
    attributes.clear();
    attributes.add(actionAttribute);
    ActionType action = RequestComponentBuilder.createActionType(attributes);
    // Request
    RequestType request = RequestComponentBuilder.createRequestType(Collections.singletonList(subject), Collections.singletonList(resource), action, null);
    Element policyElement = OpenSAMLUtil.toDom(request, doc);
    // String outputString = DOM2Writer.nodeToString(policyElement);
    assertNotNull(policyElement);
}
Also used : SubjectType(org.opensaml.xacml.ctx.SubjectType) ActionType(org.opensaml.xacml.ctx.ActionType) AttributeValueType(org.opensaml.xacml.ctx.AttributeValueType) AttributeType(org.opensaml.xacml.ctx.AttributeType) Element(org.w3c.dom.Element) ArrayList(java.util.ArrayList) ResourceType(org.opensaml.xacml.ctx.ResourceType) Document(org.w3c.dom.Document) RequestType(org.opensaml.xacml.ctx.RequestType)

Example 10 with RequestType

use of org.opensaml.xacml.ctx.RequestType in project cxf by apache.

the class XACMLRequestBuilderTest method testRESTResource.

@org.junit.Test
public void testRESTResource() throws Exception {
    // Mock up a request
    Principal principal = new Principal() {

        public String getName() {
            return "alice";
        }
    };
    MessageImpl msg = new MessageImpl();
    String resourceURL = "https://localhost:8080/doubleit";
    msg.put(Message.REQUEST_URL, resourceURL);
    XACMLRequestBuilder builder = new DefaultXACMLRequestBuilder();
    RequestType request = builder.createRequest(principal, Collections.singletonList("manager"), msg);
    assertNotNull(request);
    List<ResourceType> resources = request.getResources();
    assertNotNull(resources);
    assertEquals(1, resources.size());
    ResourceType resource = resources.get(0);
    assertEquals(1, resource.getAttributes().size());
    for (AttributeType attribute : resource.getAttributes()) {
        String attributeValue = attribute.getAttributeValues().get(0).getValue();
        assertEquals(attributeValue, resourceURL);
    }
}
Also used : AttributeType(org.opensaml.xacml.ctx.AttributeType) ResourceType(org.opensaml.xacml.ctx.ResourceType) MessageImpl(org.apache.cxf.message.MessageImpl) Principal(java.security.Principal) RequestType(org.opensaml.xacml.ctx.RequestType)

Aggregations

RequestType (org.opensaml.xacml.ctx.RequestType)14 Principal (java.security.Principal)7 MessageImpl (org.apache.cxf.message.MessageImpl)7 AttributeType (org.opensaml.xacml.ctx.AttributeType)7 ResourceType (org.opensaml.xacml.ctx.ResourceType)7 Document (org.w3c.dom.Document)5 Element (org.w3c.dom.Element)5 ArrayList (java.util.ArrayList)3 ActionType (org.opensaml.xacml.ctx.ActionType)3 AttributeValueType (org.opensaml.xacml.ctx.AttributeValueType)3 SubjectType (org.opensaml.xacml.ctx.SubjectType)3 ResponseType (org.opensaml.xacml.ctx.ResponseType)2 ResultType (org.opensaml.xacml.ctx.ResultType)2 StatusType (org.opensaml.xacml.ctx.StatusType)2 POST (javax.ws.rs.POST)1 Transformer (javax.xml.transform.Transformer)1 DOMResult (javax.xml.transform.dom.DOMResult)1 WSSecurityException (org.apache.wss4j.common.ext.WSSecurityException)1 DateTime (org.joda.time.DateTime)1 XMLObjectBuilderFactory (org.opensaml.core.xml.XMLObjectBuilderFactory)1