use of org.wso2.carbon.messaging.Header in project ballerina by ballerina-lang.
the class HTTPCorsTest method testPreFlightReqwithCaseInsensitiveHeader.
@Test(description = "Test for case insensitive header")
public void testPreFlightReqwithCaseInsensitiveHeader() {
String path = "/hello1/test1";
HTTPTestRequest cMsg = MessageUtils.generateHTTPMessage(path, "OPTIONS", "Hello there");
cMsg.setHeader(HttpHeaderNames.ORIGIN.toString(), "http://www.wso2.com");
cMsg.setHeader(HttpHeaderNames.ACCESS_CONTROL_REQUEST_METHOD.toString(), HttpConstants.HTTP_METHOD_POST);
cMsg.setHeader(HttpHeaderNames.ACCESS_CONTROL_REQUEST_HEADERS.toString(), "X-PINGOTHER");
HTTPCarbonMessage response = Services.invokeNew(complieResult, TEST_EP, cMsg);
Assert.assertNotNull(response);
assertEqualsCorsResponse(response, 200, "http://www.wso2.com", "true", "X-PINGOTHER", "POST", "-1");
}
use of org.wso2.carbon.messaging.Header in project ballerina by ballerina-lang.
the class ProducesConsumesAnnotationTest method testProducesAnnotationWithSubTypeWildCard.
@Test(description = "Test Produces with sub type wildcard header with URL. /echo66/test2 ")
public void testProducesAnnotationWithSubTypeWildCard() {
String path = "/echo66/test2";
HTTPTestRequest cMsg = MessageUtils.generateHTTPMessage(path, "GET");
cMsg.setHeader(HttpHeaderNames.ACCEPT.toString(), "text/*;q=0.3, text/html;Level=1;q=0.7");
HTTPCarbonMessage response = Services.invokeNew(compileResult, TEST_EP, cMsg);
Assert.assertNotNull(response, "Response message not found");
BJSON bJson = new BJSON(new HttpMessageDataStreamer(response).getInputStream());
Assert.assertEquals(bJson.value().get("msg").asText(), "wso22", "media type matched");
}
use of org.wso2.carbon.messaging.Header in project ballerina by ballerina-lang.
the class ProducesConsumesAnnotationTest method testProducesAnnotationWithWildCard.
@Test(description = "Test Produces with wildcard header with URL. /echo66/test2 ")
public void testProducesAnnotationWithWildCard() {
String path = "/echo66/test2";
HTTPTestRequest cMsg = MessageUtils.generateHTTPMessage(path, "GET");
cMsg.setHeader(HttpHeaderNames.ACCEPT.toString(), "*/*, text/html;Level=1;q=0.7");
HTTPCarbonMessage response = Services.invokeNew(compileResult, TEST_EP, cMsg);
Assert.assertNotNull(response, "Response message not found");
BJSON bJson = new BJSON(new HttpMessageDataStreamer(response).getInputStream());
Assert.assertEquals(bJson.value().get("msg").asText(), "wso22", "media type matched");
}
use of org.wso2.carbon.messaging.Header in project charon by wso2.
the class GroupResourceManager method create.
/*
* Create group in the service provider given the submitted payload that contains the SCIM group
* resource, format and the handler to usermanager.
*
* @param scimObjectString - Payload of HTTP request, which contains the SCIM object.
* @param usermanager
* @param attributes
* @param excludeAttributes
* @return
*/
@Override
public SCIMResponse create(String scimObjectString, UserManager userManager, String attributes, String excludeAttributes) {
JSONEncoder encoder = null;
JSONDecoder decoder = null;
try {
// obtain the json encoder
encoder = getEncoder();
// obtain the json decoder
decoder = getDecoder();
// returns core-group schema
SCIMResourceTypeSchema schema = SCIMResourceSchemaManager.getInstance().getGroupResourceSchema();
// get the URIs of required attributes which must be given a value
Map<String, Boolean> requiredAttributes = ResourceManagerUtil.getOnlyRequiredAttributesURIs((SCIMResourceTypeSchema) CopyUtil.deepCopy(schema), attributes, excludeAttributes);
// decode the SCIM group object, encoded in the submitted payload.
Group group = (Group) decoder.decodeResource(scimObjectString, schema, new Group());
// validate decoded group
ServerSideValidator.validateCreatedSCIMObject(group, SCIMSchemaDefinitions.SCIM_GROUP_SCHEMA);
// handover the SCIM User object to the group usermanager provided by the SP.
Group createdGroup;
// need to send back the newly created group in the response payload
createdGroup = ((UserManager) userManager).createGroup(group, requiredAttributes);
// encode the newly created SCIM group object and add id attribute to Location header.
String encodedGroup;
Map<String, String> httpHeaders = new HashMap<String, String>();
if (createdGroup != null) {
encodedGroup = encoder.encodeSCIMObject(createdGroup);
// add location header
httpHeaders.put(SCIMConstants.LOCATION_HEADER, getResourceEndpointURL(SCIMConstants.GROUP_ENDPOINT) + "/" + createdGroup.getId());
httpHeaders.put(SCIMConstants.CONTENT_TYPE_HEADER, SCIMConstants.APPLICATION_JSON);
} else {
String message = "Newly created Group resource is null..";
throw new InternalErrorException(message);
}
// put the uri of the Group object in the response header parameter.
return new SCIMResponse(ResponseCodeConstants.CODE_CREATED, encodedGroup, httpHeaders);
} catch (InternalErrorException e) {
return encodeSCIMException(e);
} catch (BadRequestException e) {
return encodeSCIMException(e);
} catch (ConflictException e) {
return encodeSCIMException(e);
} catch (CharonException e) {
return encodeSCIMException(e);
} catch (NotFoundException e) {
return encodeSCIMException(e);
} catch (NotImplementedException e) {
return encodeSCIMException(e);
}
}
use of org.wso2.carbon.messaging.Header in project charon by wso2.
the class GroupResourceManager method get.
/*
* Retrieves a group resource given an unique group id. Mapped to HTTP GET request.
*
* @param id - unique resource id
* @param usermanager
* @param attributes
* @param excludeAttributes
* @return SCIM response to be returned.
*/
@Override
public SCIMResponse get(String id, UserManager userManager, String attributes, String excludeAttributes) {
JSONEncoder encoder = null;
try {
// obtain the correct encoder according to the format requested.
encoder = getEncoder();
// returns core-group schema
SCIMResourceTypeSchema schema = SCIMResourceSchemaManager.getInstance().getGroupResourceSchema();
// get the URIs of required attributes which must be given a value
Map<String, Boolean> requiredAttributes = ResourceManagerUtil.getOnlyRequiredAttributesURIs((SCIMResourceTypeSchema) CopyUtil.deepCopy(schema), attributes, excludeAttributes);
// API user should pass a usermanager usermanager to GroupResourceEndpoint.
// retrieve the group from the provided usermanager.
Group group = ((UserManager) userManager).getGroup(id, requiredAttributes);
// if group not found, return an error in relevant format.
if (group == null) {
String message = "Group not found in the user store.";
throw new NotFoundException(message);
}
ServerSideValidator.validateRetrievedSCIMObjectInList(group, schema, attributes, excludeAttributes);
// convert the group into specific format.
String encodedGroup = encoder.encodeSCIMObject(group);
// if there are any http headers to be added in the response header.
Map<String, String> httpHeaders = new HashMap<String, String>();
httpHeaders.put(SCIMConstants.CONTENT_TYPE_HEADER, SCIMConstants.APPLICATION_JSON);
return new SCIMResponse(ResponseCodeConstants.CODE_OK, encodedGroup, httpHeaders);
} catch (NotFoundException e) {
return encodeSCIMException(e);
} catch (BadRequestException e) {
return encodeSCIMException(e);
} catch (CharonException e) {
return encodeSCIMException(e);
} catch (NotImplementedException e) {
return encodeSCIMException(e);
}
}
Aggregations