use of org.wso2.carbon.identity.scim2.common.impl.DefaultSCIMUserStoreErrorResolver in project identity-inbound-provisioning-scim2 by wso2-extensions.
the class SCIMCommonComponent method activate.
@Activate
protected void activate(ComponentContext ctx) {
try {
String filePath = IdentityUtil.getIdentityConfigDirPath() + File.separator + SCIMCommonConstants.CHARON_CONFIG_NAME;
SCIMConfigProcessor scimConfigProcessor = SCIMConfigProcessor.getInstance();
scimConfigProcessor.buildConfigFromFile(filePath);
// reading user schema extension
if (Boolean.parseBoolean(scimConfigProcessor.getProperty("user-schema-extension-enabled"))) {
String schemaFilePath = CarbonUtils.getCarbonConfigDirPath() + File.separator + SCIMConfigConstants.SCIM_SCHEMA_EXTENSION_CONFIG;
SCIMUserSchemaExtensionBuilder.getInstance().buildUserSchemaExtension(schemaFilePath);
}
// If custom schema is enabled, read it root attribute URI from the file config if it is configured.
if (SCIMCommonUtils.isCustomSchemaEnabled()) {
SCIMCustomSchemaExtensionBuilder.getInstance().setURI(SCIMCommonUtils.getCustomSchemaURI());
}
// register UserOperationEventListener implementation
SCIMUserOperationListener scimUserOperationListener = new SCIMUserOperationListener();
userOperationEventListenerServiceReg = ctx.getBundleContext().registerService(UserOperationEventListener.class, scimUserOperationListener, null);
// register scimTenantMgtListener implementation
SCIMTenantMgtListener scimTenantMgtListener = new SCIMTenantMgtListener();
tenantMgtListenerServiceReg = ctx.getBundleContext().registerService(TenantMgtListener.class, scimTenantMgtListener, null);
// Register claim operation event handler implementation.
ctx.getBundleContext().registerService(AbstractEventHandler.class.getName(), new SCIMClaimOperationEventHandler(), null);
if (logger.isDebugEnabled()) {
logger.debug("SCIMClaimOperationEventHandler is successfully registered.");
}
// Register default implementation of SCIMUserStoreErrorResolver
ctx.getBundleContext().registerService(SCIMUserStoreErrorResolver.class.getName(), new DefaultSCIMUserStoreErrorResolver(), null);
// Register default implementation of SCIMGroupResolver.
ctx.getBundleContext().registerService(GroupResolver.class.getName(), new SCIMGroupResolver(), null);
// Update super tenant user/group attributes.
AdminAttributeUtil.updateAdminUser(MultitenantConstants.SUPER_TENANT_ID, true);
AdminAttributeUtil.updateAdminGroup(MultitenantConstants.SUPER_TENANT_ID);
if (logger.isDebugEnabled()) {
logger.debug("SCIM Common component activated successfully.");
}
} catch (CharonException e) {
logger.error("Error in reading information from identity tables at SCIMCommonComponentStartup.", e);
} catch (InternalErrorException e) {
logger.error("Error in reading information from identity tables at SCIMCommonComponentStartup.", e);
}
}
use of org.wso2.carbon.identity.scim2.common.impl.DefaultSCIMUserStoreErrorResolver in project identity-inbound-provisioning-scim2 by wso2-extensions.
the class SCIMUserManagerTest method testGetUserWithInvalidUserID.
@Test(expectedExceptions = AbstractCharonException.class, dataProvider = "exceptionHandlingConfigurations")
public void testGetUserWithInvalidUserID(Boolean isNotifyUserstoreStatusEnabled) throws Exception {
String userId = "12345";
Map<String, Boolean> requiredAttributes = new HashMap<>();
Map<String, String> scimToLocalClaimsMap = new HashMap<>();
scimToLocalClaimsMap.put(SCIMConstants.CommonSchemaConstants.ID_URI, USERID_LOCAL_CLAIM);
mockStatic(SCIMCommonUtils.class);
when(SCIMCommonUtils.getSCIMtoLocalMappings()).thenReturn(scimToLocalClaimsMap);
when(SCIMCommonUtils.isNotifyUserstoreStatusEnabled()).thenReturn(isNotifyUserstoreStatusEnabled);
SCIMUserManager scimUserManager = new SCIMUserManager(mockedUserStoreManager, mockClaimMetadataManagementService, MultitenantConstants.SUPER_TENANT_DOMAIN_NAME);
UserStoreException e = new UserStoreException("30007 - UserNotFound: User 12345 does not exist in: PRIMARY");
when(mockedUserStoreManager.getUserWithID(anyString(), any(), anyString())).thenThrow(e);
List<SCIMUserStoreErrorResolver> scimUserStoreErrorResolvers = new ArrayList<>();
SCIMUserStoreErrorResolver scimUserStoreErrorResolver = new DefaultSCIMUserStoreErrorResolver();
scimUserStoreErrorResolvers.add(scimUserStoreErrorResolver);
mockStatic(SCIMCommonComponentHolder.class);
when(SCIMCommonComponentHolder.getScimUserStoreErrorResolverList()).thenReturn(scimUserStoreErrorResolvers);
scimUserManager.getUser(userId, requiredAttributes);
// This method is for testing of throwing CharonException, hence no assertion.
}
use of org.wso2.carbon.identity.scim2.common.impl.DefaultSCIMUserStoreErrorResolver in project identity-inbound-provisioning-scim2 by wso2-extensions.
the class DefaultSCIMUserStoreErrorResolverTest method testResolveUnHappyPath.
@Test(dataProvider = "dataProviderForResolveUnHappyPath")
public void testResolveUnHappyPath(Object userStoreException) {
DefaultSCIMUserStoreErrorResolver defaultSCIMUserStoreErrorResolver = new DefaultSCIMUserStoreErrorResolver();
SCIMUserStoreException scimUserStoreException = defaultSCIMUserStoreErrorResolver.resolve((UserStoreException) userStoreException);
assertNull(scimUserStoreException);
}
use of org.wso2.carbon.identity.scim2.common.impl.DefaultSCIMUserStoreErrorResolver in project identity-inbound-provisioning-scim2 by wso2-extensions.
the class DefaultSCIMUserStoreErrorResolverTest method testResolveHappyPath.
@Test(dataProvider = "dataProviderForResolveUserNameMandatory")
public void testResolveHappyPath(Object userStoreException, int expected) {
DefaultSCIMUserStoreErrorResolver defaultSCIMUserStoreErrorResolver = new DefaultSCIMUserStoreErrorResolver();
SCIMUserStoreException scimUserStoreException = defaultSCIMUserStoreErrorResolver.resolve((UserStoreException) userStoreException);
assertEquals(scimUserStoreException.getHttpStatusCode(), expected);
}
Aggregations