use of org.wso2.carbon.apimgt.core.exception.KeyManagementException in project carbon-apimgt by wso2.
the class DefaultKeyManagerImplTestCase method testRetrieveApplication.
@Test
public void testRetrieveApplication() throws Exception {
DCRMServiceStub dcrmServiceStub = Mockito.mock(DCRMServiceStub.class);
OAuth2ServiceStubs oAuth2ServiceStub = Mockito.mock(OAuth2ServiceStubs.class);
ScopeRegistration scopeRegistration = Mockito.mock(ScopeRegistration.class);
DefaultKeyManagerImpl kmImpl = new DefaultKeyManagerImpl(dcrmServiceStub, oAuth2ServiceStub, scopeRegistration);
// happy path - 200
// //mocked response object from dcr api
DCRClientInfo dcrClientInfoResponse = new DCRClientInfo();
dcrClientInfoResponse.setClientName("appx");
List<String> grantTypesList = new ArrayList<>();
grantTypesList.add("password");
grantTypesList.add("client-credentials");
dcrClientInfoResponse.setGrantTypes(grantTypesList);
dcrClientInfoResponse.addCallbackUrl("https://sample.callback/url");
dcrClientInfoResponse.setClientId(consumerKey);
dcrClientInfoResponse.setClientSecret(consumerSecret);
dcrClientInfoResponse.setClientIdIssuedAt("now");
dcrClientInfoResponse.setClientSecretExpiresAt("future");
dcrClientInfoResponse.setRegistrationClientUri("https://localhost:9443/oauth/xxx-xxx-xxx-xxx");
// //expected response object from key manager
OAuthApplicationInfo oAuthApplicationInfoResponse = new OAuthApplicationInfo();
oAuthApplicationInfoResponse.setClientName(dcrClientInfoResponse.getClientName());
oAuthApplicationInfoResponse.setGrantTypes(dcrClientInfoResponse.getGrantTypes());
oAuthApplicationInfoResponse.setCallBackURL(dcrClientInfoResponse.getRedirectURIs().get(0));
oAuthApplicationInfoResponse.setClientId(dcrClientInfoResponse.getClientId());
oAuthApplicationInfoResponse.setClientSecret(dcrClientInfoResponse.getClientSecret());
Response appGetResponse = Response.builder().status(200).headers(new HashMap<>()).body(new Gson().toJson(dcrClientInfoResponse), feign.Util.UTF_8).build();
Mockito.when(dcrmServiceStub.getApplication(consumerKey)).thenReturn(appGetResponse);
try {
OAuthApplicationInfo app = kmImpl.retrieveApplication(consumerKey);
Assert.assertEquals(app, oAuthApplicationInfoResponse);
} catch (Exception ex) {
Assert.fail(ex.getMessage());
}
// error case - empty consumer key
try {
kmImpl.retrieveApplication("");
Assert.fail("Exception was expected, but wasn't thrown");
} catch (KeyManagementException ex) {
Assert.assertTrue(ex.getMessage().equals("Unable to retrieve OAuth Application. Consumer Key is null " + "or empty"));
}
// error case - empty consumer null
try {
kmImpl.retrieveApplication(null);
Assert.fail("Exception was expected, but wasn't thrown");
} catch (KeyManagementException ex) {
Assert.assertTrue(ex.getMessage().equals("Unable to retrieve OAuth Application. Consumer Key is null " + "or empty"));
}
// error case - backend error
String errorMsg = "unknown error occurred";
Response errorResponse = Response.builder().status(500).headers(new HashMap<>()).body(errorMsg.getBytes()).build();
Mockito.when(dcrmServiceStub.getApplication(consumerKey)).thenReturn(errorResponse);
try {
kmImpl.retrieveApplication(consumerKey);
Assert.fail("Exception was expected, but wasn't thrown");
} catch (KeyManagementException ex) {
Assert.assertTrue(ex.getMessage().startsWith("Error occurred while retrieving DCR application."));
}
}
use of org.wso2.carbon.apimgt.core.exception.KeyManagementException in project carbon-apimgt by wso2.
the class WSO2ISScopeRegistrationImpl method updateScope.
@Override
public boolean updateScope(Scope scope) throws KeyManagementException {
ScopeInfo scopeInfo = getScopeInfoForUpdate(scope);
Response response = wso2ISScopeRegistrationServiceStub.updateScope(scopeInfo, scope.getName());
if (response.status() == APIMgtConstants.HTTPStatusCodes.SC_200_OK) {
return true;
} else {
throw new KeyManagementException("Scope Couldn't get updated", ExceptionCodes.INTERNAL_ERROR);
}
}
use of org.wso2.carbon.apimgt.core.exception.KeyManagementException in project carbon-apimgt by wso2.
the class WSO2ISScopeRegistrationImpl method registerScope.
@Override
public boolean registerScope(Scope scope) throws KeyManagementException {
ScopeInfo scopeInfo = getScopeInfo(scope);
Response response = wso2ISScopeRegistrationServiceStub.registerScope(scopeInfo);
if (response.status() == APIMgtConstants.HTTPStatusCodes.SC_201_CREATED) {
return true;
} else {
throw new KeyManagementException("Scope Registration Failed", ExceptionCodes.SCOPE_REGISTRATION_FAILED);
}
}
use of org.wso2.carbon.apimgt.core.exception.KeyManagementException in project carbon-apimgt by wso2.
the class DefaultScopeRegistrationImpl method registerScope.
@Override
public boolean registerScope(Scope scope) throws KeyManagementException {
ScopeInfo scopeInfo = getScopeInfo(scope);
Response response = scopeRegistrationServiceStub.registerScope(scopeInfo);
if (response.status() == APIMgtConstants.HTTPStatusCodes.SC_201_CREATED) {
return true;
} else {
throw new KeyManagementException("Scope Registration Failed", ExceptionCodes.SCOPE_REGISTRATION_FAILED);
}
}
use of org.wso2.carbon.apimgt.core.exception.KeyManagementException in project carbon-apimgt by wso2.
the class ApplicationUtils method createAccessTokenRequest.
public static AccessTokenRequest createAccessTokenRequest(OAuthApplicationInfo oAuthApplication) throws APIManagementException {
AccessTokenRequest tokenRequest = new AccessTokenRequest();
if (oAuthApplication.getClientId() != null || oAuthApplication.getClientSecret() != null) {
tokenRequest.setClientId(oAuthApplication.getClientId());
tokenRequest.setClientSecret(oAuthApplication.getClientSecret());
} else {
throw new KeyManagementException("Consumer key or Consumer Secret is missing.");
}
if (oAuthApplication.getParameter(KeyManagerConstants.TOKEN_SCOPES) != null) {
String tokenScopes = (String) oAuthApplication.getParameter(KeyManagerConstants.TOKEN_SCOPES);
tokenRequest.setScopes(tokenScopes);
oAuthApplication.addParameter(KeyManagerConstants.OAUTH_CLIENT_TOKEN_SCOPE, tokenScopes);
}
tokenRequest.setGrantType(KeyManagerConstants.CLIENT_CREDENTIALS_GRANT_TYPE);
if (oAuthApplication.getParameter(KeyManagerConstants.VALIDITY_PERIOD) != null) {
tokenRequest.setValidityPeriod(Long.parseLong((String) oAuthApplication.getParameter(KeyManagerConstants.VALIDITY_PERIOD)));
} else {
throw new KeyManagementException("Validity period missing for generated oAuth keys");
}
return tokenRequest;
}
Aggregations