|
|
|
@ -28,11 +28,9 @@ import org.wso2.carbon.identity.core.util.IdentityTenantUtil;
|
|
|
|
|
import org.wso2.carbon.identity.oauth.cache.CacheEntry;
|
|
|
|
|
import org.wso2.carbon.identity.oauth.cache.OAuthCache;
|
|
|
|
|
import org.wso2.carbon.identity.oauth.cache.OAuthCacheKey;
|
|
|
|
|
import org.wso2.carbon.identity.oauth.config.OAuthServerConfiguration;
|
|
|
|
|
import org.wso2.carbon.identity.oauth2.IdentityOAuth2Exception;
|
|
|
|
|
import org.wso2.carbon.identity.oauth2.dao.OAuthScopeDAO;
|
|
|
|
|
import org.wso2.carbon.identity.oauth2.dao.OAuthScopeDAOImpl;
|
|
|
|
|
import org.wso2.carbon.identity.oauth2.dao.TokenMgtDAO;
|
|
|
|
|
import org.wso2.carbon.identity.oauth2.dao.TokenManagementDAOImpl;
|
|
|
|
|
import org.wso2.carbon.identity.oauth2.model.AccessTokenDO;
|
|
|
|
|
import org.wso2.carbon.identity.oauth2.model.ResourceScopeCacheEntry;
|
|
|
|
|
import org.wso2.carbon.identity.oauth2.validators.OAuth2ScopeValidator;
|
|
|
|
@ -64,12 +62,12 @@ public class ExtendedJDBCScopeValidator extends OAuth2ScopeValidator {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String resourceScope = null;
|
|
|
|
|
// TokenMgtDAO tokenMgtDAO = new TokenMgtDAO();
|
|
|
|
|
OAuthScopeDAOImpl scopeDAO = new OAuthScopeDAOImpl();
|
|
|
|
|
|
|
|
|
|
TokenManagementDAOImpl tokenManagementDAO = new TokenManagementDAOImpl();
|
|
|
|
|
boolean cacheHit = false;
|
|
|
|
|
|
|
|
|
|
// Check the cache, if caching is enabled.
|
|
|
|
|
if (OAuthServerConfiguration.getInstance().isCacheEnabled()) {
|
|
|
|
|
if (OAuthCache.getInstance().isEnabled()) {
|
|
|
|
|
OAuthCache oauthCache = OAuthCache.getInstance();
|
|
|
|
|
OAuthCacheKey cacheKey = new OAuthCacheKey(resource);
|
|
|
|
|
CacheEntry result = oauthCache.getValueFromCache(cacheKey);
|
|
|
|
@ -82,9 +80,9 @@ public class ExtendedJDBCScopeValidator extends OAuth2ScopeValidator {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!cacheHit) {
|
|
|
|
|
resourceScope = scopeDAO.findScopeOfResource(resource);
|
|
|
|
|
resourceScope = tokenManagementDAO.findTenantAndScopeOfResource(resource).getKey();
|
|
|
|
|
|
|
|
|
|
if (OAuthServerConfiguration.getInstance().isCacheEnabled()) {
|
|
|
|
|
if (OAuthCache.getInstance().isEnabled()) {
|
|
|
|
|
OAuthCache oauthCache = OAuthCache.getInstance();
|
|
|
|
|
OAuthCacheKey cacheKey = new OAuthCacheKey(resource);
|
|
|
|
|
ResourceScopeCacheEntry cacheEntry = new ResourceScopeCacheEntry(resourceScope);
|
|
|
|
@ -114,8 +112,12 @@ public class ExtendedJDBCScopeValidator extends OAuth2ScopeValidator {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
User authorizedUser = accessTokenDO.getAuthzUser();
|
|
|
|
|
RealmService realmService = OAuthExtensionsDataHolder.getInstance().getRealmService();
|
|
|
|
|
int tenantId = realmService.getTenantManager().getTenantId(authorizedUser.getTenantDomain());
|
|
|
|
|
|
|
|
|
|
//Get the permissions associated with the scope, if any
|
|
|
|
|
Set<String> permissionsOfScope = scopeDAO.getBindingsOfScopeByScopeName(resourceScope);
|
|
|
|
|
Set<String> permissionsOfScope = scopeDAO.getBindingsOfScopeByScopeName(resourceScope, tenantId);
|
|
|
|
|
|
|
|
|
|
//If the scope doesn't have any permissions associated with it.
|
|
|
|
|
if (permissionsOfScope == null || permissionsOfScope.isEmpty()) {
|
|
|
|
@ -134,10 +136,6 @@ public class ExtendedJDBCScopeValidator extends OAuth2ScopeValidator {
|
|
|
|
|
log.debug(logMessage.toString());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
User authorizedUser = accessTokenDO.getAuthzUser();
|
|
|
|
|
RealmService realmService = OAuthExtensionsDataHolder.getInstance().getRealmService();
|
|
|
|
|
|
|
|
|
|
int tenantId = realmService.getTenantManager().getTenantId(authorizedUser.getTenantDomain());
|
|
|
|
|
|
|
|
|
|
if (tenantId == 0 || tenantId == -1) {
|
|
|
|
|
tenantId = IdentityTenantUtil.getTenantIdOfUser(authorizedUser.getUserName());
|
|
|
|
|