use of org.wso2.carbon.user.core.model.Condition in project carbon-apimgt by wso2.
the class ThrottleConditionEvaluator method isThrottledWithinCondition.
private boolean isThrottledWithinCondition(MessageContext axis2MessageContext, AuthenticationContext authContext, List<ConditionDto> conditionDtoList) {
ThrottleProperties throttleProperties = ServiceReferenceHolder.getInstance().getThrottleProperties();
boolean status = true;
for (ConditionDto condition : conditionDtoList) {
status = true;
if (condition.getIpCondition() != null) {
if (!isMatchingIP(axis2MessageContext, condition.getIpCondition())) {
status = false;
}
} else if (condition.getIpRangeCondition() != null) {
if (!isWithinIP(axis2MessageContext, condition.getIpRangeCondition())) {
status = false;
}
}
if (condition.getHeaderConditions() != null && throttleProperties.isEnableHeaderConditions() && !condition.getHeaderConditions().getValues().isEmpty()) {
if (!isHeaderPresent(axis2MessageContext, condition.getHeaderConditions())) {
status = false;
}
}
if (condition.getJwtClaimConditions() != null && throttleProperties.isEnableJwtConditions() && !condition.getJwtClaimConditions().getValues().isEmpty()) {
if (!isJWTClaimPresent(authContext, condition.getJwtClaimConditions())) {
status = false;
}
}
if (condition.getQueryParameterConditions() != null && throttleProperties.isEnableQueryParamConditions() && !condition.getQueryParameterConditions().getValues().isEmpty()) {
if (!isQueryParamPresent(axis2MessageContext, condition.getQueryParameterConditions())) {
status = false;
}
}
if (status) {
break;
}
}
return status;
}
use of org.wso2.carbon.user.core.model.Condition in project carbon-apimgt by wso2.
the class ThrottleConditionEvaluator method getApplicableConditions.
/**
* When called, provides a list of Applicable Condition Groups for the current request.
*
* @param synapseContext Message Context of the incoming request.
* @param authenticationContext AuthenticationContext populated by {@code APIAuthenticationHandler}
* @param inputConditionGroups All Condition Groups Attached with the resource/API being invoked.
* @return List of ConditionGroups applicable for the current request.
*/
public List<ConditionGroupDTO> getApplicableConditions(org.apache.synapse.MessageContext synapseContext, AuthenticationContext authenticationContext, ConditionGroupDTO[] inputConditionGroups) {
ArrayList<ConditionGroupDTO> matchingConditions = new ArrayList<>(inputConditionGroups.length);
ConditionGroupDTO defaultGroup = null;
for (ConditionGroupDTO conditionGroup : inputConditionGroups) {
if (APIConstants.THROTTLE_POLICY_DEFAULT.equals(conditionGroup.getConditionGroupId())) {
defaultGroup = conditionGroup;
} else if (isConditionGroupApplicable(synapseContext, authenticationContext, conditionGroup)) {
matchingConditions.add(conditionGroup);
}
}
// If no matching ConditionGroups are present, apply the default group.
if (matchingConditions.isEmpty()) {
matchingConditions.add(defaultGroup);
}
return matchingConditions;
}
use of org.wso2.carbon.user.core.model.Condition in project carbon-apimgt by wso2.
the class SubscriptionValidationDataUtil method fromApiPolicyToApiPolicyListDTO.
public static ApiPolicyListDTO fromApiPolicyToApiPolicyListDTO(List<APIPolicy> model) {
ApiPolicyListDTO apiPolicyListDTO = new ApiPolicyListDTO();
if (model != null) {
for (APIPolicy apiPolicyModel : model) {
ApiPolicyDTO policyDTO = new ApiPolicyDTO();
policyDTO.setName(apiPolicyModel.getName());
policyDTO.setQuotaType(apiPolicyModel.getQuotaType());
policyDTO.setTenantId(apiPolicyModel.getTenantId());
policyDTO.setTenantDomain(apiPolicyModel.getTenantDomain());
policyDTO.setApplicableLevel(apiPolicyModel.getApplicableLevel());
policyDTO.setDefaultLimit(getThrottleLimitDTO(apiPolicyModel));
apiPolicyListDTO.getList().add(policyDTO);
List<APIPolicyConditionGroup> retrievedGroups = apiPolicyModel.getConditionGroups();
List<ApiPolicyConditionGroupDTO> condGroups = new ArrayList<ApiPolicyConditionGroupDTO>();
for (APIPolicyConditionGroup retGroup : retrievedGroups) {
ApiPolicyConditionGroupDTO group = new ApiPolicyConditionGroupDTO();
group.setConditionGroupId(retGroup.getConditionGroupId());
group.setQuotaType(retGroup.getQuotaType());
group.setDefaultLimit(getThrottleLimitDTO(retGroup));
group.setPolicyId(retGroup.getPolicyId());
List<org.wso2.carbon.apimgt.internal.service.dto.ConditionDTO> condition = new ArrayList<org.wso2.carbon.apimgt.internal.service.dto.ConditionDTO>();
List<ConditionDTO> retrievedConditions = retGroup.getConditionDTOS();
for (ConditionDTO retrievedCondition : retrievedConditions) {
org.wso2.carbon.apimgt.internal.service.dto.ConditionDTO conditionDTO = new org.wso2.carbon.apimgt.internal.service.dto.ConditionDTO();
conditionDTO.setConditionType(retrievedCondition.getConditionType());
conditionDTO.setIsInverted(retrievedCondition.isInverted());
conditionDTO.setName(retrievedCondition.getConditionName());
conditionDTO.setValue(retrievedCondition.getConditionValue());
condition.add(conditionDTO);
}
group.setCondition(condition);
condGroups.add(group);
}
policyDTO.setConditionGroups(condGroups);
}
apiPolicyListDTO.setCount(model.size());
} else {
apiPolicyListDTO.setCount(0);
}
return apiPolicyListDTO;
}
use of org.wso2.carbon.user.core.model.Condition in project carbon-apimgt by wso2.
the class WSDLSOAPOperationExtractorImplTestCase method testGetSwaggerModelForSimpleType.
@Test
public void testGetSwaggerModelForSimpleType() throws Exception {
APIMWSDLReader wsdlReader = new APIMWSDLReader(Thread.currentThread().getContextClassLoader().getResource("wsdls/sample-service.wsdl").toExternalForm());
byte[] wsdlContent = wsdlReader.getWSDL();
WSDL11SOAPOperationExtractor processor = SOAPOperationBindingUtils.getWSDL11SOAPOperationExtractor(wsdlContent, wsdlReader);
Map<String, ModelImpl> parameterModelMap = processor.getWsdlInfo().getParameterModelMap();
Assert.assertNotNull(parameterModelMap);
// get simple type
Assert.assertNotNull(parameterModelMap.get("Condition"));
Assert.assertEquals("string", parameterModelMap.get("Condition").getType());
// get simple type inside complex type
Assert.assertNotNull(parameterModelMap.get("ItemSearchRequest").getProperties().get("Availability"));
Assert.assertEquals("string", parameterModelMap.get("ItemSearchRequest").getProperties().get("Availability").getType());
}
use of org.wso2.carbon.user.core.model.Condition in project carbon-apimgt by wso2.
the class CommonThrottleMappingUtil method fromJWTClaimsConditionToDTO.
/**
* Converts a JWT Claims Condition model object into a DTO
*
* @param condition JWT Claims Condition model object
* @return DTO object that was derived from JWT Claims Condition model object
*/
public static JWTClaimsConditionDTO fromJWTClaimsConditionToDTO(JWTClaimsCondition condition) {
JWTClaimsConditionDTO dto = new JWTClaimsConditionDTO();
dto.setClaimUrl(condition.getClaimUrl());
dto.setAttribute(condition.getAttribute());
return dto;
}
Aggregations