/** * Get tenant Id of the user * * @param username Username * @return JSONObject */ protected int getTenantIdOfUser(String username) { return IdentityTenantUtil.getTenantIdOfUser(username); }
prepStmt = connection.prepareStatement(SQLQuery.LOAD_USER_METADATA); prepStmt.setString(1, userName); prepStmt.setInt(2, IdentityTenantUtil.getTenantIdOfUser(userName));
conn = APIMgtDBUtil.getConnection(); ps = conn.prepareStatement(query); tenantId = IdentityTenantUtil.getTenantIdOfUser(webappProvider); ps.setString(1, appName); ps.setInt(2, tenantId);
prepStmt = connection.prepareStatement(SQLQuery.LOAD_USER_METADATA); prepStmt.setString(1, userName); prepStmt.setInt(2, IdentityTenantUtil.getTenantIdOfUser(userName));
prepStmt = connection.prepareStatement(SQLQuery.LOAD_USER_METADATA); prepStmt.setString(1, userName); prepStmt.setInt(2, IdentityTenantUtil.getTenantIdOfUser(userName));
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; }
/** * Check if the token already exist in the database. * * @param connection * @param rememberMe * @return * @throws SQLException */ private boolean isTokenExist(Connection connection, OpenIDRememberMeDO rememberMe) throws SQLException { PreparedStatement prepStmt = null; ResultSet results = null; boolean result = false; try { prepStmt = connection.prepareStatement(OpenIDSQLQueries.CHECK_REMEMBER_ME_TOKEN_EXIST); prepStmt.setString(1, rememberMe.getUserName()); prepStmt.setInt(2, IdentityTenantUtil.getTenantIdOfUser(rememberMe.getUserName())); results = prepStmt.executeQuery(); if (results.next()) { result = true; } } finally { IdentityDatabaseUtil.closeResultSet(results); IdentityDatabaseUtil.closeStatement(prepStmt); } return result; }
/** * Check if the token already exist in the database. * * @param connection * @param rememberMe * @return * @throws SQLException */ private boolean isTokenExist(Connection connection, OpenIDRememberMeDO rememberMe) throws SQLException { PreparedStatement prepStmt = null; ResultSet results = null; boolean result = false; try { prepStmt = connection.prepareStatement(OpenIDSQLQueries.CHECK_REMEMBER_ME_TOKEN_EXIST); prepStmt.setString(1, rememberMe.getUserName()); prepStmt.setInt(2, IdentityTenantUtil.getTenantIdOfUser(rememberMe.getUserName())); results = prepStmt.executeQuery(); if (results.next()) { result = true; } } finally { IdentityDatabaseUtil.closeResultSet(results); IdentityDatabaseUtil.closeStatement(prepStmt); } return result; }
prepStmt = connection.prepareStatement(OpenIDSQLQueries.UPDATE_REMEMBER_ME_TOKEN); prepStmt.setString(2, rememberMe.getUserName()); prepStmt.setInt(3, IdentityTenantUtil.getTenantIdOfUser(rememberMe.getUserName())); prepStmt.setString(1, rememberMe.getToken()); prepStmt.execute(); prepStmt = connection.prepareStatement(OpenIDSQLQueries.STORE_REMEMBER_ME_TOKEN); prepStmt.setString(1, rememberMe.getUserName()); prepStmt.setInt(2, IdentityTenantUtil.getTenantIdOfUser(rememberMe.getUserName())); prepStmt.setString(3, rememberMe.getToken()); prepStmt.execute();
tenantId = IdentityTenantUtil.getTenantIdOfUser(subscriberName); } catch (IdentityRuntimeException e) { String msg = "Failed to get tenant id of user : " + subscriberName;
/** * Return the remember me token after validations. Expairy will be checked. * * @param rememberMe * @return <code>OpenIDRememberMeDO</code> * @throws IdentityProviderException */ public OpenIDRememberMeDO getTokenData(OpenIDRememberMeDO rememberMe) throws IdentityProviderException { Connection connection = IdentityDatabaseUtil.getDBConnection(); PreparedStatement prepStmt = null; try { prepStmt = connection.prepareStatement(OpenIDSQLQueries.LOAD_REMEMBER_ME_TOKEN); prepStmt.setString(1, rememberMe.getUserName()); prepStmt.setInt(2, IdentityTenantUtil.getTenantIdOfUser(rememberMe.getUserName())); OpenIDRememberMeDO openIDRememberMeDO = buildRememberMeDO(prepStmt.executeQuery(), rememberMe.getUserName()); connection.commit(); return openIDRememberMeDO; } catch (SQLException e) { throw new IdentityProviderException("Unable to load RememberMe token for " + rememberMe.getUserName(), e); } finally { IdentityDatabaseUtil.closeStatement(prepStmt); IdentityDatabaseUtil.closeConnection(connection); } }
/** * Returns the RememberMe token from cache * * @param rememberMe * @return <code>OpenIDRememberMeDO</code> * @throws IdentityProviderException */ public synchronized OpenIDRememberMeDO getTokenData(OpenIDRememberMeDO rememberMe) throws IdentityProviderException { String username = rememberMe.getUserName(); int tenantId = IdentityTenantUtil.getTenantIdOfUser(rememberMe.getUserName()); if (log.isDebugEnabled()) { log.debug("Loading RememberMe token in cache for " + username + " with tenant ID " + tenantId); } OpenIDIdentityCacheKey key = new OpenIDIdentityCacheKey(tenantId, username); OpenIDIdentityCacheEntry entry = rememberMeCache.getValueFromCache(key); if (entry == null) { return null; } rememberMe.setToken(entry.getCacheEntry()); Timestamp timestamp = new Timestamp(entry.getDate().getTime()); rememberMe.setTimestamp(timestamp); return rememberMe; }
/** * Return the remember me token after validations. Expairy will be checked. * * @param rememberMe * @return <code>OpenIDRememberMeDO</code> * @throws IdentityProviderException */ public OpenIDRememberMeDO getTokenData(OpenIDRememberMeDO rememberMe) throws IdentityProviderException { Connection connection = IdentityDatabaseUtil.getDBConnection(); PreparedStatement prepStmt = null; try { prepStmt = connection.prepareStatement(OpenIDSQLQueries.LOAD_REMEMBER_ME_TOKEN); prepStmt.setString(1, rememberMe.getUserName()); prepStmt.setInt(2, IdentityTenantUtil.getTenantIdOfUser(rememberMe.getUserName())); OpenIDRememberMeDO openIDRememberMeDO = buildRememberMeDO(prepStmt.executeQuery(), rememberMe.getUserName()); connection.commit(); return openIDRememberMeDO; } catch (SQLException e) { throw new IdentityProviderException("Unable to load RememberMe token for " + rememberMe.getUserName(), e); } finally { IdentityDatabaseUtil.closeStatement(prepStmt); IdentityDatabaseUtil.closeConnection(connection); } }
/** * Returns the RememberMe token from cache * * @param rememberMe * @return <code>OpenIDRememberMeDO</code> * @throws IdentityProviderException */ public synchronized OpenIDRememberMeDO getTokenData(OpenIDRememberMeDO rememberMe) throws IdentityProviderException { String username = rememberMe.getUserName(); int tenantId = IdentityTenantUtil.getTenantIdOfUser(rememberMe.getUserName()); if (log.isDebugEnabled()) { log.debug("Loading RememberMe token in cache for " + username + " with tenant ID " + tenantId); } OpenIDIdentityCacheKey key = new OpenIDIdentityCacheKey(tenantId, username); OpenIDIdentityCacheEntry entry = rememberMeCache.getValueFromCache(key); if (entry == null) { return null; } rememberMe.setToken(entry.getCacheEntry()); Timestamp timestamp = new Timestamp(entry.getDate().getTime()); rememberMe.setTimestamp(timestamp); return rememberMe; }
/** * Get the users tokenId from the UserStoreManager. * Check the format of the tokenId, 3 hex chars, a space then 6 numeric digits. * * @param userName Username of the user * @return @return the CASQUE Token ID * @throws CasqueException UserRealm for user or tenant domain is null */ private String getCasqueTokenId(String userName) throws CasqueException { try { UserStoreManager userStoreManager = CasqueAuthenticatorServiceDataHolder.getInstance() .getRealmService().getTenantUserRealm(IdentityTenantUtil.getTenantIdOfUser(userName)) .getUserStoreManager(); // Getting the Token ID assigned to userName Map<String, String> tokenIdMap = userStoreManager.getUserClaimValues(userName, new String[]{CASQUE_SNR_CLAIM}, null); if (tokenIdMap == null || tokenIdMap.get(CASQUE_SNR_CLAIM) == null) { throw new CasqueException("Token ID is null for user: " + userName); } String tokenId = tokenIdMap.get(CASQUE_SNR_CLAIM); if (tokenId.matches(TOKEN_ID_FORMAT)) { return tokenId; } throw new CasqueException(String.format("%s is a bad formatted Token ID for user : %s", tokenId, userName)); } catch (org.wso2.carbon.user.api.UserStoreException e) { log.error("User Store Exception:" + e.getMessage()); } throw new CasqueException("Unable to get token id for user: " + userName); }
/** * Updates the OpenID RememberMe token in cache * * @param rememberMe * @throws IdentityProviderException */ public synchronized void updateTokenData(OpenIDRememberMeDO rememberMe) throws IdentityProviderException { String username = rememberMe.getUserName(); int tenantId = IdentityTenantUtil.getTenantIdOfUser(rememberMe.getUserName()); if (log.isDebugEnabled()) { log.debug("Updating RememberMe token in cache for " + username + " with tenant ID " + tenantId); } OpenIDIdentityCacheKey key = new OpenIDIdentityCacheKey(tenantId, username); // if the entry exist, remove it if (rememberMeCache.getValueFromCache(key) != null) { rememberMeCache.clearCacheEntry(key); } // now create a new entry Date date = null; if (rememberMe.getTimestamp() != null) { date = new Date(rememberMe.getTimestamp().getTime()); } else { date = new Date(); } OpenIDIdentityCacheEntry entry = new OpenIDIdentityCacheEntry(rememberMe.getToken(), null, date); // add the entry rememberMeCache.addToCache(key, entry); }
/** * Updates the OpenID RememberMe token in cache * * @param rememberMe * @throws IdentityProviderException */ public synchronized void updateTokenData(OpenIDRememberMeDO rememberMe) throws IdentityProviderException { String username = rememberMe.getUserName(); int tenantId = IdentityTenantUtil.getTenantIdOfUser(rememberMe.getUserName()); if (log.isDebugEnabled()) { log.debug("Updating RememberMe token in cache for " + username + " with tenant ID " + tenantId); } OpenIDIdentityCacheKey key = new OpenIDIdentityCacheKey(tenantId, username); // if the entry exist, remove it if (rememberMeCache.getValueFromCache(key) != null) { rememberMeCache.clearCacheEntry(key); } // now create a new entry Date date = null; if (rememberMe.getTimestamp() != null) { date = new Date(rememberMe.getTimestamp().getTime()); } else { date = new Date(); } OpenIDIdentityCacheEntry entry = new OpenIDIdentityCacheEntry(rememberMe.getToken(), null, date); // add the entry rememberMeCache.addToCache(key, entry); }
.setUsername(apiKeyValidationDTO.getEndUserName()); PrivilegedCarbonContext.getThreadLocalCarbonContext() .setTenantId(IdentityTenantUtil.getTenantIdOfUser(userName));
/** * Handle Authorization. * * @param authorizationContext * @return * @throws AuthzServiceServerException */ public AuthorizationResult handleAuthorization(AuthorizationContext authorizationContext) throws AuthzServiceServerException { AuthorizationResult authorizationResult = new AuthorizationResult(AuthorizationStatus.DENY); try { String userName = authorizationContext.getUserName(); int tenantId = IdentityTenantUtil.getTenantIdOfUser(userName); String permissionString = authorizationContext.getPermissionString(); RealmService realmService = AuthorizationServiceHolder.getInstance().getRealmService(); UserRealm tenantUserRealm = realmService.getTenantUserRealm(tenantId); AuthorizationManager authorizationManager = tenantUserRealm.getAuthorizationManager(); boolean isUserAuthorized = authorizationManager.isUserAuthorized(MultitenantUtils. getTenantAwareUsername(userName), permissionString, CarbonConstants.UI_PERMISSION_ACTION); if ( isUserAuthorized ) { authorizationResult.setAuthorizationStatus(AuthorizationStatus.GRANT); } } catch ( UserStoreException e ) { String errorMessage = "Error occurred while trying to authorize, " + e.getMessage(); log.error(errorMessage); throw new AuthzServiceServerException(errorMessage, e); } return authorizationResult; }
/** * * 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); } } }