use of org.wso2.carbon.apimgt.api.model.policy.Policy in project carbon-apimgt by wso2.
the class ApisApiServiceImpl method apisApiIdThreatProtectionPoliciesDelete.
/**
* Delete a threat protection policy from an API
* @param apiId APIID
* @param policyId Threat protection policy id
* @param request MSF4J Request
* @return HTTP status 200 if success, 500 otherwise
* @throws NotFoundException When the particular resource does not exist in the system
*/
@Override
public Response apisApiIdThreatProtectionPoliciesDelete(String apiId, String policyId, Request request) throws NotFoundException {
String username = RestApiUtil.getLoggedInUsername(request);
try {
APIPublisher apiPublisher = RestAPIPublisherUtil.getApiPublisher(username);
if (!apiPublisher.isAPIExists(apiId)) {
ErrorDTO errorDTO = new ErrorDTO();
errorDTO.setCode(404l);
errorDTO.setDescription("Specified API was not found");
return Response.status(404).entity(errorDTO).build();
}
apiPublisher.deleteThreatProtectionPolicy(apiId, policyId);
return Response.ok().build();
} catch (APIManagementException e) {
log.error(e.getMessage(), e);
return Response.status(500).entity("Internal Server Error.").build();
}
}
use of org.wso2.carbon.apimgt.api.model.policy.Policy in project carbon-apimgt by wso2.
the class SampleTestObjectCreator method createDefaultSubscriptionPolicy.
/**
* Create a subscription policy.
*
* @return SubscriptionPolicy object
*/
protected static SubscriptionPolicy createDefaultSubscriptionPolicy() {
SubscriptionPolicy subscriptionPolicy = new SubscriptionPolicy(SAMPLE_SUBSCRIPTION_POLICY);
subscriptionPolicy.setUuid(UUID.randomUUID().toString());
subscriptionPolicy.setDisplayName(SAMPLE_SUBSCRIPTION_POLICY);
subscriptionPolicy.setDescription(SAMPLE_SUBSCRIPTION_POLICY_DESCRIPTION);
QuotaPolicy defaultQuotaPolicy = new QuotaPolicy();
defaultQuotaPolicy.setType(REQUEST_COUNT_TYPE);
RequestCountLimit requestCountLimit = new RequestCountLimit(TIME_UNIT_SECONDS, 10000, 1000);
defaultQuotaPolicy.setLimit(requestCountLimit);
subscriptionPolicy.setDefaultQuotaPolicy(defaultQuotaPolicy);
return subscriptionPolicy;
}
use of org.wso2.carbon.apimgt.api.model.policy.Policy in project carbon-apimgt by wso2.
the class ApisApiServiceImpl method apisApiIdThreatProtectionPoliciesPost.
/**
* Add a threat protection policy to an API
* @param apiId APIID
* @param policyId Threat protection policy id
* @param request MSF4J Request
* @return HTTP status 200 if success, 500 otherwise
* @throws NotFoundException When the particular resource does not exist in the system
*/
@Override
public Response apisApiIdThreatProtectionPoliciesPost(String apiId, String policyId, Request request) throws NotFoundException {
String username = RestApiUtil.getLoggedInUsername(request);
try {
APIPublisher apiPublisher = RestAPIPublisherUtil.getApiPublisher(username);
if (!apiPublisher.isAPIExists(apiId)) {
ErrorDTO errorDTO = new ErrorDTO();
errorDTO.setCode(404l);
errorDTO.setDescription("Specified API was not found");
return Response.status(404).entity(errorDTO).build();
}
apiPublisher.addThreatProtectionPolicy(apiId, policyId);
return Response.ok().build();
} catch (APIManagementException e) {
log.error(e.getMessage(), e);
return Response.status(500).entity("Internal Server Error.").build();
}
}
use of org.wso2.carbon.apimgt.api.model.policy.Policy in project carbon-apimgt by wso2.
the class PoliciesApiServiceImpl method policiesTierLevelTierNameGet.
/**
* Retrieves a tier by tier name and level
*
* @param tierName Name of the tier
* @param tierLevel Level of the tier
* @param ifNoneMatch If-Non-Match header value
* @param ifModifiedSince If-Modified-Since header value
* @param request msf4j request object
* @return The requested tier as the response
* @throws NotFoundException When the particular resource does not exist in the system
*/
@Override
public Response policiesTierLevelTierNameGet(String tierName, String tierLevel, String ifNoneMatch, String ifModifiedSince, Request request) throws NotFoundException {
TierDTO tierDTO = null;
String username = RestApiUtil.getLoggedInUsername(request);
try {
APIStore apiStore = RestApiUtil.getConsumer(username);
String existingFingerprint = policiesTierLevelTierNameGetFingerprint(tierName, tierLevel, ifNoneMatch, ifModifiedSince, request);
if (!StringUtils.isEmpty(ifNoneMatch) && !StringUtils.isEmpty(existingFingerprint) && ifNoneMatch.contains(existingFingerprint)) {
return Response.notModified().build();
}
Policy tier = apiStore.getPolicy(RestApiUtil.mapRestApiPolicyLevelToPolicyLevelEnum(tierLevel), tierName);
tierDTO = TierMappingUtil.fromTierToDTO(tier, tierLevel);
return Response.ok().entity(tierDTO).header(HttpHeaders.ETAG, "\"" + existingFingerprint + "\"").build();
} catch (APIManagementException e) {
String errorMessage = "Error while retrieving tier";
HashMap<String, String> paramList = new HashMap<String, String>();
paramList.put(APIMgtConstants.ExceptionsConstants.TIER_LEVEL, tierLevel);
ErrorDTO errorDTO = RestApiUtil.getErrorDTO(e.getErrorHandler(), paramList);
log.error(errorMessage, e);
return Response.status(e.getErrorHandler().getHttpStatusCode()).entity(errorDTO).build();
}
}
use of org.wso2.carbon.apimgt.api.model.policy.Policy in project carbon-apimgt by wso2.
the class TierMappingUtil method fromTierListToDTO.
/**
* Converts a List object of Tiers into a DTO
*
* @param tiers a list of Tier objects
* @param limit max number of objects returned
* @param offset starting index
* @return TierListDTO object containing TierDTOs
*/
public static TierListDTO fromTierListToDTO(List<Policy> tiers, String tierLevel, int limit, int offset) {
TierListDTO tierListDTO = new TierListDTO();
List<TierDTO> tierDTOs = tierListDTO.getList();
if (tierDTOs == null) {
tierDTOs = new ArrayList<>();
tierListDTO.setList(tierDTOs);
}
// identifying the proper start and end indexes
int size = tiers.size();
int start = offset < size && offset >= 0 ? offset : Integer.MAX_VALUE;
int end = offset + limit - 1 <= size - 1 ? offset + limit - 1 : size - 1;
for (int i = start; i <= end; i++) {
Policy tier = tiers.get(i);
tierDTOs.add(fromTierToDTO(tier, tierLevel));
}
tierListDTO.setCount(tierDTOs.size());
return tierListDTO;
}
Aggregations