/** * Check the case sensitivity of the user store in which the user is in. * * @param username user name with user store domain * @param tenantId tenant id of the user * @return */ public static boolean isUserStoreInUsernameCaseSensitive(String username, int tenantId) { return isUserStoreCaseSensitive(IdentityUtil.extractDomainFromName(username), tenantId); }
/** * Check the case sensitivity of the user store in which the user is in. * * @param username user name with user store domain * @param tenantId tenant id of the user * @return */ public static boolean isUserStoreInUsernameCaseSensitive(String username, int tenantId) { return isUserStoreCaseSensitive(IdentityUtil.extractDomainFromName(username), tenantId); }
/** * Check the case sensitivity of the user store in which the user is in. * * @param username user name with user store domain * @param tenantId tenant id of the user * @return */ public static boolean isUserStoreInUsernameCaseSensitive(String username, int tenantId) { return isUserStoreCaseSensitive(IdentityUtil.extractDomainFromName(username), tenantId); }
public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof User)) return false; User user = (User) o; if (!tenantDomain.equals(user.tenantDomain)) return false; boolean isUsernameCaseSensitive = IdentityUtil.isUserStoreCaseSensitive(userStoreDomain, IdentityTenantUtil.getTenantId(tenantDomain)); if(isUsernameCaseSensitive) { if (!userName.equals(user.userName)) return false; } else { if (!userName.equalsIgnoreCase(user.userName)) return false; } if (!userStoreDomain.equals(user.userStoreDomain)) return false; return true; }
public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof User)) return false; User user = (User) o; if (!tenantDomain.equals(user.tenantDomain)) return false; boolean isUsernameCaseSensitive = IdentityUtil.isUserStoreCaseSensitive(userStoreDomain, IdentityTenantUtil.getTenantId(tenantDomain)); if(isUsernameCaseSensitive) { if (!userName.equals(user.userName)) return false; } else { if (!userName.equalsIgnoreCase(user.userName)) return false; } if (!userStoreDomain.equals(user.userStoreDomain)) return false; return true; }
/** * This method will retrieve the 'CaseInsensitiveUsername' property from the respective userstore and set that value. */ protected void updateCaseSensitivity() { if (StringUtils.isNotEmpty(tenantDomain) && StringUtils.isNotEmpty(userStoreDomain) && IdentityTenantUtil.getRealmService() != null) { this.isUsernameCaseSensitive = IdentityUtil .isUserStoreCaseSensitive(userStoreDomain, IdentityTenantUtil.getTenantId(tenantDomain)); } }
/** * Compare and verify whether the logged in user and user in the payload are same. * * @param userDomain user store domain of the user in the payload. * @param tenantAwareUserName tenant aware username of the user in the payload * @param loggedInName user name of the logged in user * @return true/false */ private boolean isValidUser(String userDomain, String tenantAwareUserName, String loggedInName) { String loggedInUserDomain = UserCoreUtil.getDomainFromThreadLocal(); if (StringUtils.isEmpty(loggedInUserDomain)) { loggedInUserDomain = UserCoreConstants.PRIMARY_DEFAULT_DOMAIN_NAME; } if (StringUtils.isEmpty(userDomain)) { userDomain = UserCoreConstants.PRIMARY_DEFAULT_DOMAIN_NAME; } String domainAppendedUsername = appendDomainToUserName(tenantAwareUserName, userDomain); String domainAppendedLoggedInName = appendDomainToUserName(loggedInName, loggedInUserDomain); int tenantId = CarbonContext.getThreadLocalCarbonContext().getTenantId(); boolean isUsernameCaseSensitive = IdentityUtil.isUserStoreCaseSensitive(loggedInUserDomain, tenantId); if (isUsernameCaseSensitive) { return domainAppendedUsername.equals(domainAppendedLoggedInName); } else { return domainAppendedUsername.equalsIgnoreCase(domainAppendedLoggedInName); } }
/** * Check the case sensitivity of the user store. * * @param userStoreDomain user store domain * @param tenantId tenant id of the user store * @return */ public static boolean isUserStoreCaseSensitive(String userStoreDomain, int tenantId) { boolean isUsernameCaseSensitive = true; if (tenantId == MultitenantConstants.INVALID_TENANT_ID){ //this is to handle federated scenarios return true; } try { org.wso2.carbon.user.core.UserStoreManager userStoreManager = (org.wso2.carbon.user.core .UserStoreManager) IdentityTenantUtil.getRealmService() .getTenantUserRealm(tenantId).getUserStoreManager(); org.wso2.carbon.user.core.UserStoreManager userAvailableUserStoreManager = userStoreManager .getSecondaryUserStoreManager(userStoreDomain); return isUserStoreCaseSensitive(userAvailableUserStoreManager); } catch (UserStoreException e) { if (log.isDebugEnabled()) { log.debug("Error while reading user store property CaseInsensitiveUsername. Considering as case " + "sensitive."); } } return isUsernameCaseSensitive; }
/** * Check the case sensitivity of the user store. * * @param userStoreDomain user store domain * @param tenantId tenant id of the user store * @return */ public static boolean isUserStoreCaseSensitive(String userStoreDomain, int tenantId) { boolean isUsernameCaseSensitive = true; if (tenantId == MultitenantConstants.INVALID_TENANT_ID) { //this is to handle federated scenarios return true; } try { UserRealm tenantUserRealm = IdentityTenantUtil.getRealmService().getTenantUserRealm(tenantId); if (tenantUserRealm != null) { org.wso2.carbon.user.core.UserStoreManager userStoreManager = (org.wso2.carbon.user.core.UserStoreManager) tenantUserRealm .getUserStoreManager(); org.wso2.carbon.user.core.UserStoreManager userAvailableUserStoreManager = userStoreManager.getSecondaryUserStoreManager(userStoreDomain); return isUserStoreCaseSensitive(userAvailableUserStoreManager); } } catch (UserStoreException e) { if (log.isDebugEnabled()) { log.debug("Error while reading user store property CaseInsensitiveUsername. Considering as case " + "sensitive."); } } return isUsernameCaseSensitive; }
/** * Check the case sensitivity of the user store. * * @param userStoreDomain user store domain * @param tenantId tenant id of the user store * @return */ public static boolean isUserStoreCaseSensitive(String userStoreDomain, int tenantId) { boolean isUsernameCaseSensitive = true; if (tenantId == MultitenantConstants.INVALID_TENANT_ID) { //this is to handle federated scenarios return true; } try { UserRealm tenantUserRealm = IdentityTenantUtil.getRealmService().getTenantUserRealm(tenantId); if (tenantUserRealm != null) { org.wso2.carbon.user.core.UserStoreManager userStoreManager = (org.wso2.carbon.user.core.UserStoreManager) tenantUserRealm .getUserStoreManager(); org.wso2.carbon.user.core.UserStoreManager userAvailableUserStoreManager = userStoreManager.getSecondaryUserStoreManager(userStoreDomain); return isUserStoreCaseSensitive(userAvailableUserStoreManager); } } catch (UserStoreException e) { if (log.isDebugEnabled()) { log.debug("Error while reading user store property CaseInsensitiveUsername. Considering as case " + "sensitive."); } } return isUsernameCaseSensitive; }
if (userName != null && cache != null) { if (userStoreManager instanceof org.wso2.carbon.user.core.UserStoreManager) { if (!IdentityUtil.isUserStoreCaseSensitive((org.wso2.carbon.user.core.UserStoreManager) userStoreManager)) { if (log.isDebugEnabled()) {
if (userName != null && cache != null) { if (userStoreManager instanceof org.wso2.carbon.user.core.UserStoreManager) { if (!IdentityUtil.isUserStoreCaseSensitive((org.wso2.carbon.user.core.UserStoreManager) userStoreManager)) { if (log.isDebugEnabled()) {
String sql; try { if (IdentityUtil.isUserStoreCaseSensitive(user.getUserStoreDomain(), IdentityTenantUtil.getTenantId(user.getTenantDomain()))) { sql = IdentityRecoveryConstants.SQLQueries.LOAD_RECOVERY_DATA; } else {
if (IdentityUtil.isUserStoreCaseSensitive(user.getUserStoreDomain(), IdentityTenantUtil.getTenantId(user.getTenantDomain()))) { sql = IdentityRecoveryConstants.SQLQueries.LOAD_RECOVERY_DATA_OF_USER; } else {
@Override public void invalidate(User user) throws IdentityRecoveryException { PreparedStatement prepStmt = null; Connection connection = IdentityDatabaseUtil.getDBConnection(); try { String sql; if (IdentityUtil.isUserStoreCaseSensitive(user.getUserStoreDomain(), IdentityTenantUtil.getTenantId(user.getTenantDomain()))) { sql = IdentityRecoveryConstants.SQLQueries.INVALIDATE_USER_CODES; } else { sql = IdentityRecoveryConstants.SQLQueries.INVALIDATE_USER_CODES_CASE_INSENSITIVE; } prepStmt = connection.prepareStatement(sql); prepStmt.setString(1, user.getUserName()); prepStmt.setString(2, user.getUserStoreDomain()); prepStmt.setInt(3, IdentityTenantUtil.getTenantId(user.getTenantDomain())); prepStmt.execute(); connection.commit(); } catch (SQLException e) { throw Utils.handleServerException(IdentityRecoveryConstants.ErrorMessages.ERROR_CODE_UNEXPECTED, null, e); } finally { IdentityDatabaseUtil.closeStatement(prepStmt); IdentityDatabaseUtil.closeConnection(connection); } }
if (IdentityUtil.isUserStoreCaseSensitive(user.getUserStoreDomain(), IdentityTenantUtil.getTenantId(user.getTenantDomain()))) { sql = IdentityRecoveryConstants.SQLQueries.LOAD_RECOVERY_DATA_OF_USER; } else {
if (!IdentityUtil.isUserStoreCaseSensitive((org.wso2.carbon.user.core.UserStoreManager) userStoreManager)) { if (log.isDebugEnabled()) {
if (!IdentityUtil.isUserStoreCaseSensitive((org.wso2.carbon.user.core.UserStoreManager) userStoreManager)) { if (log.isDebugEnabled()) {
@Override public void remove(String userName, UserStoreManager userStoreManager) throws IdentityException { try { PrivilegedCarbonContext.startTenantFlow(); PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME); PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantId(MultitenantConstants.SUPER_TENANT_ID); Cache<String, UserIdentityClaimsDO> cache = getCache(); if (userName == null) { return; } if (userStoreManager instanceof org.wso2.carbon.user.core.UserStoreManager) { if (!IdentityUtil.isUserStoreCaseSensitive((org.wso2.carbon.user.core.UserStoreManager) userStoreManager)) { if (log.isDebugEnabled()) { log.debug("Case insensitive user store found. Changing username from : " + userName + " to : " + userName.toLowerCase()); } userName = userName.toLowerCase(); } } org.wso2.carbon.user.core.UserStoreManager store = (org.wso2.carbon.user.core.UserStoreManager) userStoreManager; String domainName = store.getRealmConfiguration().getUserStoreProperty(UserCoreConstants.RealmConfig .PROPERTY_DOMAIN_NAME); cache.remove(domainName + userStoreManager.getTenantId() + userName); } catch (UserStoreException e) { log.error("Error while obtaining tenant ID from user store manager"); } finally { PrivilegedCarbonContext.endTenantFlow(); } }
@Override public void remove(String userName, UserStoreManager userStoreManager) throws IdentityException { try { PrivilegedCarbonContext.startTenantFlow(); PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantDomain(MultitenantConstants.SUPER_TENANT_DOMAIN_NAME); PrivilegedCarbonContext.getThreadLocalCarbonContext().setTenantId(MultitenantConstants.SUPER_TENANT_ID); Cache<String, UserIdentityClaimsDO> cache = getCache(); if (userName == null) { return; } if (userStoreManager instanceof org.wso2.carbon.user.core.UserStoreManager) { if (!IdentityUtil.isUserStoreCaseSensitive((org.wso2.carbon.user.core.UserStoreManager) userStoreManager)) { if (log.isDebugEnabled()) { log.debug("Case insensitive user store found. Changing username from : " + userName + " to : " + userName.toLowerCase()); } userName = userName.toLowerCase(); } } org.wso2.carbon.user.core.UserStoreManager store = (org.wso2.carbon.user.core.UserStoreManager) userStoreManager; String domainName = store.getRealmConfiguration().getUserStoreProperty(UserCoreConstants.RealmConfig .PROPERTY_DOMAIN_NAME); cache.remove(domainName + userStoreManager.getTenantId() + userName); } catch (UserStoreException e) { log.error("Error while obtaining tenant ID from user store manager"); } finally { PrivilegedCarbonContext.endTenantFlow(); } }