public static void clearOAuthCache(String consumerKey, User authorizedUser, String scope) { String user = UserCoreUtil.addDomainToName(authorizedUser.getUserName(), authorizedUser.getUserStoreDomain()); user = UserCoreUtil.addTenantDomainToEntry(user, authorizedUser.getTenantDomain()); clearOAuthCache(consumerKey, user, scope); }
protected User getUser(Map eventProperties, UserStoreManager userStoreManager){ String userName = (String) eventProperties.get(IdentityEventConstants.EventProperty.USER_NAME); String tenantDomain = (String) eventProperties.get(IdentityEventConstants.EventProperty.TENANT_DOMAIN); String domainName = userStoreManager.getRealmConfiguration().getUserStoreProperty(UserCoreConstants.RealmConfig.PROPERTY_DOMAIN_NAME); User user = new User(); user.setUserName(userName); user.setTenantDomain(tenantDomain); user.setUserStoreDomain(domainName); return user; }
public static User createUser(String username, String tenantDomain) { User user = new User(); user.setUserName(MultitenantUtils.getTenantAwareUsername(username)); user.setTenantDomain(tenantDomain); return user; }
private void setTenantDomainForUser(User user) { if (StringUtils.isBlank(user.getTenantDomain())) { user.setTenantDomain(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME); if (log.isDebugEnabled()) { log.debug("Tenant domain is not in the request. Set super tenant domain for user : " + user.getUserName()); } } }
private void setUserStoreDomainForUser(User user) { if (StringUtils.isBlank(user.getUserStoreDomain())) { user.setUserStoreDomain(IdentityUtil.getPrimaryDomainName()); if (log.isDebugEnabled()) { log.debug("User store domain is not in the request. Set primary user store domain for user : " + user.getUserName()); } } }
/** * Check whether user is already confirmed or not. * * @param user * @return * @throws IdentityRecoveryException */ public boolean isUserConfirmed(User user) throws IdentityRecoveryException { boolean isUserConfirmed = false; if (StringUtils.isBlank(user.getTenantDomain())) { user.setTenantDomain(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME); log.info("confirmUserSelfRegistration :Tenant domain is not in the request. set to default for user : " + user.getUserName()); } if (StringUtils.isBlank(user.getUserStoreDomain())) { user.setUserStoreDomain(IdentityUtil.getPrimaryDomainName()); log.info("confirmUserSelfRegistration :User store domain is not in the request. set to default for user : " + user.getUserName()); } UserRecoveryDataStore userRecoveryDataStore = JDBCRecoveryDataStore.getInstance(); UserRecoveryData load = userRecoveryDataStore.loadWithoutCodeExpiryValidation(user); if (load == null || !RecoveryScenarios.SELF_SIGN_UP.equals(load.getRecoveryScenario())) { isUserConfirmed = true; } return isUserConfirmed; }
private void validateUser(User user) throws IdentityRecoveryClientException { if (user == null || StringUtils.isBlank(user.getUserName())) { throw Utils.handleClientException( IdentityRecoveryConstants.ErrorMessages.ERROR_CODE_INVALID_USER, "Invalid User Data provided."); } }
private int getTenantId (User user) throws UserStoreException { int tenantId = IdentityTenantUtil.getTenantId(user.getTenantDomain()); if (tenantId == 0 || tenantId == -1) { tenantId = IdentityTenantUtil.getTenantIdOfUser(user.getUserName()); } return tenantId; }
protected void triggerNotification(User user, String type, String code, Property[] props) throws IdentityRecoveryException { if (log.isDebugEnabled()) { log.debug("Sending : " + type + " notification to user : " + user.toString()); } String eventName = IdentityEventConstants.Event.TRIGGER_NOTIFICATION; HashMap<String, Object> properties = new HashMap<>(); properties.put(IdentityEventConstants.EventProperty.USER_NAME, user.getUserName()); properties.put(IdentityEventConstants.EventProperty.TENANT_DOMAIN, user.getTenantDomain()); properties.put(IdentityEventConstants.EventProperty.USER_STORE_DOMAIN, user.getUserStoreDomain()); if (props != null && props.length > 0) { for (Property prop : props) { properties.put(prop.getKey(), prop.getValue()); } } if (StringUtils.isNotBlank(code)) { properties.put(IdentityRecoveryConstants.CONFIRMATION_CODE, code); } properties.put(IdentityRecoveryConstants.TEMPLATE_TYPE, type); Event identityMgtEvent = new Event(eventName, properties); try { IdentityRecoveryServiceDataHolder.getInstance().getIdentityEventService().handleEvent(identityMgtEvent); } catch (IdentityEventException e) { throw Utils.handleServerException(IdentityRecoveryConstants.ErrorMessages.ERROR_CODE_TRIGGER_NOTIFICATION, user .getUserName(), e); } }
public static Map<String, String> getClaimValues(User user, int tenantId, String[] claimUris) throws CaptchaServerException { String username = user.getUserName(); if (!StringUtils.isBlank(user.getUserStoreDomain()) && !"PRIMARY".equals(user.getUserStoreDomain())) { username = IdentityUtil.addDomainToName(user.getUserName(), user.getUserStoreDomain()); } RealmService realmService = CaptchaDataHolder.getInstance().getRealmService(); UserRealm userRealm; try { userRealm = (UserRealm) realmService.getTenantUserRealm(tenantId); } catch (UserStoreException e) { throw new CaptchaServerException("Failed to retrieve user realm from tenant id : " + tenantId, e); } UserStoreManager userStoreManager; try { userStoreManager = userRealm.getUserStoreManager(); } catch (UserStoreException e) { throw new CaptchaServerException("Failed to retrieve user store manager.", e); } Map<String, String> claimValues = null; try { claimValues = userStoreManager.getUserClaimValues(username, claimUris, UserCoreConstants.DEFAULT_PROFILE); } catch (org.wso2.carbon.user.core.UserStoreException e) { if (log.isDebugEnabled()) { log.debug("Error occurred while retrieving user claims.", e); } } return claimValues; }
private String getSPTenantDomain(ServiceProvider serviceProvider) { String spTenantDomain; User owner = serviceProvider.getOwner(); if (owner != null) { spTenantDomain = owner.getTenantDomain(); } else { spTenantDomain = MultitenantConstants.SUPER_TENANT_DOMAIN_NAME; } return spTenantDomain; }
String password = credentials.substring(credentials.indexOf(":") + 1); if (StringUtils.isBlank(username) || StringUtils.isBlank(password)) { throw new AuthenticationFailedException("username and password cannot be empty", User.getUserFromUserName (username)); MultitenantUtils.getTenantAwareUsername(username), password); if (!isAuthenticated) { throw new InvalidCredentialsException("Authentication Failed", User.getUserFromUserName(username)); log.debug("BasicAuthentication failed while trying to get the tenant ID of the user " + username, e); throw new AuthenticationFailedException(e.getMessage(), User.getUserFromUserName(username), e); } catch (Exception e) { log.error(e.getMessage(), e); throw new AuthenticationFailedException("Authentication Failed", User.getUserFromUserName(username));
public NotificationResponseBean resendConfirmationCode(User user, Property[] properties) throws IdentityRecoveryException { if (StringUtils.isBlank(user.getTenantDomain())) { user.setTenantDomain(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME); log.info("confirmUserSelfRegistration :Tenant domain is not in the request. set to default for user : " + user.getUserName()); if (StringUtils.isBlank(user.getUserStoreDomain())) { user.setUserStoreDomain(IdentityUtil.getPrimaryDomainName()); log.info("confirmUserSelfRegistration :User store domain is not in the request. set to default for user : " + user.getUserName()); (IdentityRecoveryConstants.ConnectorConfig.ENABLE_SELF_SIGNUP, user.getTenantDomain())); .getUserName()); (IdentityRecoveryConstants.ConnectorConfig.SIGN_UP_NOTIFICATION_INTERNALLY_MANAGE, user.getTenantDomain()));
private User buildUser(String userName, String tenantDomain) { User user = new User(); user.setUserName(MultitenantUtils.getTenantAwareUsername(userName)); user.setTenantDomain(tenantDomain); return user; }
public void lockAccount(User user, UserStoreManager userStoreManager) throws IdentityEventException { if (log.isDebugEnabled()) { log.debug("Locking user account:" + user.getUserName()); } setUserClaim(IdentityRecoveryConstants.ACCOUNT_LOCKED_CLAIM, Boolean.TRUE.toString(), userStoreManager, user); }
/** * * This is the post authenticate hook. * * A custom authentication handler can provide its own implementation for the hook. * * The default behaviour is to set the user details in {@link org.wso2.carbon.context.CarbonContext} * * @param messageContext */ protected void postAuthenticate(MessageContext messageContext, AuthenticationResult authenticationResult){ AuthenticationContext authenticationContext = (AuthenticationContext) messageContext; if (AuthenticationStatus.SUCCESS.equals(authenticationResult.getAuthenticationStatus())){ User user = authenticationContext.getUser(); // Set the user and tenant in the Carbon context. PrivilegedCarbonContext.getThreadLocalCarbonContext().setUsername(user.getUserName()); PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain(user.getTenantDomain()); int tenantId = IdentityTenantUtil.getTenantIdOfUser(user.getUserName()); PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantId(tenantId); } } }
String tenantAwareUserName = MultitenantUtils.getTenantAwareUsername(user.getUserName()); if (tenantAwareUserName != null && !isValidUser(user.getUserStoreDomain(), tenantAwareUserName, loggedInName)) { boolean isAuthorized = isUserAuthorized(loggedInName, tenantDomain); if (!isAuthorized) {
private String getSPTenantDomain(ServiceProvider serviceProvider) { String spTenantDomain; User owner = serviceProvider.getOwner(); if (owner != null) { spTenantDomain = owner.getTenantDomain(); } else { spTenantDomain = MultitenantConstants.SUPER_TENANT_DOMAIN_NAME; } return spTenantDomain; }
String password = credentials.substring(credentials.indexOf(":") + 1); if (StringUtils.isBlank(username) || StringUtils.isBlank(password)) { throw new AuthenticationFailedException("username and password cannot be empty", User.getUserFromUserName (username)); MultitenantUtils.getTenantAwareUsername(username), password); if (!isAuthenticated) { throw new InvalidCredentialsException("Authentication Failed", User.getUserFromUserName(username)); log.debug("BasicAuthentication failed while trying to get the tenant ID of the user " + username, e); throw new AuthenticationFailedException(e.getMessage(), User.getUserFromUserName(username), e); } catch (Exception e) { log.error(e.getMessage(), e); throw new AuthenticationFailedException("Authentication Failed", User.getUserFromUserName(username));
/** * Create user object from user name and tenantDomain. * * @param tenantDomain tenantDomain * @param username username * @return User */ private User getUser(String tenantDomain, String username) { User user = new User(); user.setUserName(UserCoreUtil.removeDomainFromName(username)); user.setUserStoreDomain(UserCoreUtil.extractDomainFromName(username)); user.setTenantDomain(tenantDomain); return user; }