use of org.wso2.carbon.apimgt.api.model.policy.HeaderCondition in project carbon-apimgt by wso2.
the class APIMgtDAOTest method getPolicyAPILevelPerUser.
private Policy getPolicyAPILevelPerUser(String policyName) {
APIPolicy policy = new APIPolicy(policyName);
policy.setUserLevel(PolicyConstants.PER_USER);
policy.setDescription("Description");
policy.setTenantId(-1234);
BandwidthLimit defaultLimit = new BandwidthLimit();
defaultLimit.setTimeUnit("min");
defaultLimit.setUnitTime(5);
defaultLimit.setDataAmount(400);
defaultLimit.setDataUnit("MB");
QuotaPolicy defaultQuotaPolicy = new QuotaPolicy();
defaultQuotaPolicy.setLimit(defaultLimit);
defaultQuotaPolicy.setType(PolicyConstants.BANDWIDTH_TYPE);
policy.setDefaultQuotaPolicy(defaultQuotaPolicy);
List<Pipeline> pipelines;
QuotaPolicy quotaPolicy;
List<Condition> condition;
BandwidthLimit bandwidthLimit;
RequestCountLimit requestCountLimit;
pipelines = new ArrayList<Pipeline>();
// /////////pipeline item 1 start//////
Pipeline p1 = new Pipeline();
quotaPolicy = new QuotaPolicy();
quotaPolicy.setType(PolicyConstants.BANDWIDTH_TYPE);
bandwidthLimit = new BandwidthLimit();
bandwidthLimit.setTimeUnit("min");
bandwidthLimit.setUnitTime(5);
bandwidthLimit.setDataAmount(100);
bandwidthLimit.setDataUnit("GB");
quotaPolicy.setLimit(bandwidthLimit);
condition = new ArrayList<Condition>();
HTTPVerbCondition verbCond = new HTTPVerbCondition();
verbCond.setHttpVerb("POST");
condition.add(verbCond);
IPCondition ipCondition = new IPCondition(PolicyConstants.IP_SPECIFIC_TYPE);
ipCondition.setSpecificIP("127.0.0.1");
condition.add(ipCondition);
DateRangeCondition dateRangeCondition = new DateRangeCondition();
dateRangeCondition.setStartingDate("2016-01-03");
dateRangeCondition.setEndingDate("2016-01-31");
condition.add(dateRangeCondition);
p1.setQuotaPolicy(quotaPolicy);
p1.setConditions(condition);
pipelines.add(p1);
// /////////pipeline item 1 end//////
// /////////pipeline item 2 start//////
Pipeline p2 = new Pipeline();
quotaPolicy = new QuotaPolicy();
quotaPolicy.setType("requestCount");
requestCountLimit = new RequestCountLimit();
requestCountLimit.setTimeUnit("min");
requestCountLimit.setUnitTime(50);
requestCountLimit.setRequestCount(1000);
quotaPolicy.setLimit(requestCountLimit);
List<Condition> condition2 = new ArrayList<Condition>();
DateCondition dateCondition = new DateCondition();
dateCondition.setSpecificDate("2016-01-02");
condition2.add(dateCondition);
HeaderCondition headerCondition1 = new HeaderCondition();
headerCondition1.setHeader("User-Agent");
headerCondition1.setValue("Firefox");
condition2.add(headerCondition1);
HeaderCondition headerCondition2 = new HeaderCondition();
headerCondition2.setHeader("Accept-Ranges");
headerCondition2.setValue("bytes");
condition2.add(headerCondition2);
QueryParameterCondition queryParameterCondition1 = new QueryParameterCondition();
queryParameterCondition1.setParameter("test1");
queryParameterCondition1.setValue("testValue1");
condition2.add(queryParameterCondition1);
QueryParameterCondition queryParameterCondition2 = new QueryParameterCondition();
queryParameterCondition2.setParameter("test2");
queryParameterCondition2.setValue("testValue2");
condition2.add(queryParameterCondition2);
JWTClaimsCondition jwtClaimsCondition1 = new JWTClaimsCondition();
jwtClaimsCondition1.setClaimUrl("test_url");
jwtClaimsCondition1.setAttribute("test_attribute");
condition2.add(jwtClaimsCondition1);
JWTClaimsCondition jwtClaimsCondition2 = new JWTClaimsCondition();
jwtClaimsCondition2.setClaimUrl("test_url");
jwtClaimsCondition2.setAttribute("test_attribute");
condition2.add(jwtClaimsCondition2);
IPCondition ipRangeCondition = new IPCondition(PolicyConstants.IP_RANGE_TYPE);
ipCondition.setStartingIP("127.0.0.1");
ipCondition.setEndingIP("127.0.0.12");
condition2.add(ipRangeCondition);
p2.setQuotaPolicy(quotaPolicy);
p2.setConditions(condition2);
pipelines.add(p2);
// /////////pipeline item 2 end//////
policy.setPipelines(pipelines);
return policy;
}
use of org.wso2.carbon.apimgt.api.model.policy.HeaderCondition in project carbon-apimgt by wso2.
the class ApiMgtDAO method createConditionGroupDTO.
/**
* Converts an {@code Pipeline} object into a {@code ConditionGroupDTO}.{@code ConditionGroupDTO} class tries to
* contain the same information held by {@code Pipeline}, but in a much lightweight fashion.
*
* @param conditionGroup Id of the condition group ({@code Pipeline}) to be converted
* @return An object of {@code ConditionGroupDTO} type.
* @throws APIManagementException
*/
public ConditionGroupDTO createConditionGroupDTO(int conditionGroup) throws APIManagementException {
List<Condition> conditions = getConditions(conditionGroup);
ArrayList<ConditionDTO> conditionDTOs = new ArrayList<ConditionDTO>(conditions.size());
for (Condition condition : conditions) {
ConditionDTO conditionDTO = new ConditionDTO();
conditionDTO.setConditionType(condition.getType());
conditionDTO.isInverted(condition.isInvertCondition());
if (PolicyConstants.IP_RANGE_TYPE.equals(condition.getType())) {
IPCondition ipRangeCondition = (IPCondition) condition;
conditionDTO.setConditionName(ipRangeCondition.getStartingIP());
conditionDTO.setConditionValue(ipRangeCondition.getEndingIP());
} else if (PolicyConstants.IP_SPECIFIC_TYPE.equals(condition.getType())) {
IPCondition ipCondition = (IPCondition) condition;
conditionDTO.setConditionName(PolicyConstants.IP_SPECIFIC_TYPE);
conditionDTO.setConditionValue(ipCondition.getSpecificIP());
} else if (PolicyConstants.HEADER_TYPE.equals(condition.getType())) {
HeaderCondition headerCondition = (HeaderCondition) condition;
conditionDTO.setConditionName(headerCondition.getHeaderName());
conditionDTO.setConditionValue(headerCondition.getValue());
} else if (PolicyConstants.JWT_CLAIMS_TYPE.equals(condition.getType())) {
JWTClaimsCondition jwtClaimsCondition = (JWTClaimsCondition) condition;
conditionDTO.setConditionName(jwtClaimsCondition.getClaimUrl());
conditionDTO.setConditionValue(jwtClaimsCondition.getAttribute());
} else if (PolicyConstants.QUERY_PARAMETER_TYPE.equals(condition.getType())) {
QueryParameterCondition parameterCondition = (QueryParameterCondition) condition;
conditionDTO.setConditionName(parameterCondition.getParameter());
conditionDTO.setConditionValue(parameterCondition.getValue());
}
conditionDTOs.add(conditionDTO);
}
ConditionGroupDTO conditionGroupDTO = new ConditionGroupDTO();
conditionGroupDTO.setConditions(conditionDTOs.toArray(new ConditionDTO[] {}));
return conditionGroupDTO;
}
Aggregations