@Override public void handle(IAsyncResult<ApiContract> result) { if (result.isSuccess()) { ApiContract contract = result.getResult(); List<Policy> policies = contract.getPolicies(); decryptPolicies(contract.getClient().getOrganizationId(), contract.getClient().getClientId(), contract.getClient().getVersion(), EntityType.ClientApp, policies); Api api = contract.getApi(); if (api != null) { List<Policy> apiPolicies = api.getApiPolicies(); decryptPolicies(api.getOrganizationId(), api.getApiId(), api.getVersion(), EntityType.Api, apiPolicies); decryptEndpointProperties(api.getOrganizationId(), api.getApiId(), api.getVersion(), EntityType.Api, api.getEndpointProperties()); } } handler.handle(result); } });
/** * Constructor. * @param api the api * @param client the client * @param plan the plan * @param policies the list of policies */ public ApiContract(Api api, Client client, String plan, List<Policy> policies) { setApi(api); setClient(client); setPlan(plan); setPolicies(policies); }
/** * Resolve contract property replacements */ protected void resolvePropertyReplacements(ApiContract apiContract) { if (apiContract == null) { return; } Api api = apiContract.getApi(); if (api != null) { resolvePropertyReplacements(api); } resolvePropertyReplacements(apiContract.getPolicies()); }
ApiContract apiContract = new ApiContract(api, client, contract.getPlan(), contract.getPolicies()); handler.handle(AsyncResultImpl.create(apiContract)); } else {
requestMetric.setClientOrgId(apiContract.getClient().getOrganizationId()); requestMetric.setClientId(apiContract.getClient().getClientId()); requestMetric.setClientVersion(apiContract.getClient().getVersion()); requestMetric.setPlanId(apiContract.getPlan()); requestMetric.setContractId(request.getApiKey()); api = apiContract.getApi(); request.setContract(apiContract); request.setApi(api); policies = apiContract.getPolicies(); policyImpls = new ArrayList<>(policies.size()); if (request.getApiOrgId() != null) {
} else { builder.append("||USER||"); //$NON-NLS-1$ builder.append(request.getContract().getClient().getOrganizationId()); builder.append("||"); //$NON-NLS-1$ builder.append(request.getContract().getClient().getClientId()); builder.append("||"); //$NON-NLS-1$ builder.append(user); builder.append(request.getApiKey()); builder.append("||APP||"); //$NON-NLS-1$ builder.append(request.getContract().getClient().getOrganizationId()); builder.append("||"); //$NON-NLS-1$ builder.append(request.getContract().getClient().getClientId()); } else if (config.getGranularity() == RateLimitingGranularity.Ip) { builder.append(request.getApiKey()); builder.append("||IP||"); //$NON-NLS-1$ builder.append(request.getContract().getClient().getOrganizationId()); builder.append("||"); //$NON-NLS-1$ builder.append(request.getRemoteAddr()); builder.append(request.getApiKey()); builder.append("||SERVICE||"); //$NON-NLS-1$ builder.append(request.getContract().getApi().getOrganizationId()); builder.append("||"); //$NON-NLS-1$ builder.append(request.getContract().getApi().getApiId());
/** * Validates that the contract being used for the request is valid against the * api information included in the request. Basically the request includes * information indicating which specific api is being invoked. This method * ensures that the api information in the contract matches the requested * api. * @param request the request to validate */ protected void validateRequest(ApiRequest request) throws InvalidContractException { ApiContract contract = request.getContract(); boolean matches = true; if (!contract.getApi().getOrganizationId().equals(request.getApiOrgId())) { matches = false; } if (!contract.getApi().getApiId().equals(request.getApiId())) { matches = false; } if (!contract.getApi().getVersion().equals(request.getApiVersion())) { matches = false; } if (!matches) { throw new InvalidContractException(Messages.i18n.format("EngineImpl.InvalidContractForApi", //$NON-NLS-1$ request.getApiOrgId(), request.getApiId(), request.getApiVersion())); } }
ApiContract apiContract = new ApiContract(api, client, contract.getPlan(), contract.getPolicies()); handler.handle(AsyncResultImpl.create(apiContract)); } else {
requestMetric.setClientOrgId(apiContract.getClient().getOrganizationId()); requestMetric.setClientId(apiContract.getClient().getClientId()); requestMetric.setClientVersion(apiContract.getClient().getVersion()); requestMetric.setPlanId(apiContract.getPlan()); requestMetric.setContractId(request.getApiKey()); api = apiContract.getApi(); request.setContract(apiContract); request.setApi(api); policies = apiContract.getPolicies(); policyImpls = new ArrayList<>(policies.size()); if (request.getApiOrgId() != null) {
/** * Resolve contract property replacements */ protected void resolvePropertyReplacements(ApiContract apiContract) { if (apiContract == null) { return; } Api api = apiContract.getApi(); if (api != null) { resolvePropertyReplacements(api); } resolvePropertyReplacements(apiContract.getPolicies()); }
/** * Validates that the contract being used for the request is valid against the * api information included in the request. Basically the request includes * information indicating which specific api is being invoked. This method * ensures that the api information in the contract matches the requested * api. * @param request the request to validate */ protected void validateRequest(ApiRequest request) throws InvalidContractException { ApiContract contract = request.getContract(); boolean matches = true; if (!contract.getApi().getOrganizationId().equals(request.getApiOrgId())) { matches = false; } if (!contract.getApi().getApiId().equals(request.getApiId())) { matches = false; } if (!contract.getApi().getVersion().equals(request.getApiVersion())) { matches = false; } if (!matches) { throw new InvalidContractException(Messages.i18n.format("EngineImpl.InvalidContractForApi", //$NON-NLS-1$ request.getApiOrgId(), request.getApiId(), request.getApiVersion())); } }
ApiContract contract = new ApiContract(api, client, matchedContract.getPlan(), matchedContract.getPolicies()); handler.handle(AsyncResultImpl.create(contract));
@Override public void handle(IAsyncResult<ApiContract> result) { if (result.isSuccess()) { ApiContract contract = result.getResult(); List<Policy> policies = contract.getPolicies(); decryptPolicies(contract.getClient().getOrganizationId(), contract.getClient().getClientId(), contract.getClient().getVersion(), EntityType.ClientApp, policies); Api api = contract.getApi(); if (api != null) { List<Policy> apiPolicies = api.getApiPolicies(); decryptPolicies(api.getOrganizationId(), api.getApiId(), api.getVersion(), EntityType.Api, apiPolicies); decryptEndpointProperties(api.getOrganizationId(), api.getApiId(), api.getVersion(), EntityType.Api, api.getEndpointProperties()); } } handler.handle(result); } });
ApiContract contract = new ApiContract(api, client, matchedContract.getPlan(), matchedContract.getPolicies()); handler.handle(AsyncResultImpl.create(contract));
ApiContract contract = new ApiContract(api, client, matchedContract.getPlan(), matchedContract.getPolicies()); handler.handle(AsyncResultImpl.create(contract)); } catch (Exception e) {
ApiContract contract = new ApiContract(api, client, matchedContract.getPlan(), matchedContract.getPolicies()); handler.handle(AsyncResultImpl.create(contract)); } catch (Exception e) {
ApiContract contract = new ApiContract(api, client, matchedContract.getPlan(), matchedContract.getPolicies()); handler.handle(AsyncResultImpl.create(contract)); } catch (Exception e) {
ApiContract contract = new ApiContract(api, client, matchedContract.getPlan(), matchedContract.getPolicies()); handler.handle(AsyncResultImpl.create(contract)); } catch (Exception e) {
ApiContract contract = new ApiContract(api, client, matchedContract.getPlan(), matchedContract.getPolicies()); handler.handle(AsyncResultImpl.create(contract)); } catch (Exception e) {
ApiContract contract = new ApiContract(api, client, matchedContract.getPlan(), matchedContract.getPolicies()); handler.handle(AsyncResultImpl.create(contract)); } catch (Exception e) {