diff --git a/perun-oidc-server-webapp/src/main/resources/db/hsql/hsql_database_tables.sql b/perun-oidc-server-webapp/src/main/resources/db/hsql/hsql_database_tables.sql
index 52081b686..2475d8358 100644
--- a/perun-oidc-server-webapp/src/main/resources/db/hsql/hsql_database_tables.sql
+++ b/perun-oidc-server-webapp/src/main/resources/db/hsql/hsql_database_tables.sql
@@ -14,11 +14,6 @@ CREATE TABLE IF NOT EXISTS access_token (
 	UNIQUE(token_value)
 );
 
-CREATE TABLE IF NOT EXISTS access_token_permissions (
-	access_token_id BIGINT NOT NULL,
-	permission_id BIGINT NOT NULL
-);
-
 CREATE TABLE IF NOT EXISTS address (
 	id BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) PRIMARY KEY,
 	formatted VARCHAR(256),
@@ -284,83 +279,6 @@ CREATE TABLE IF NOT EXISTS pairwise_identifier (
 	sector_identifier VARCHAR(2048)
 );
 
-CREATE TABLE IF NOT EXISTS resource_set (
-	id BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) PRIMARY KEY,
-	name VARCHAR(1024) NOT NULL,
-	uri VARCHAR(1024),
-	icon_uri VARCHAR(1024),
-	rs_type VARCHAR(256),
-	owner VARCHAR(256) NOT NULL,
-	client_id VARCHAR(256)
-);
-
-CREATE TABLE IF NOT EXISTS resource_set_scope (
-	owner_id BIGINT NOT NULL,
-	scope VARCHAR(256) NOT NULL
-);
-
-CREATE TABLE IF NOT EXISTS permission_ticket (
-	id BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) PRIMARY KEY,
-	ticket VARCHAR(256) NOT NULL,
-	permission_id BIGINT NOT NULL,
-	expiration TIMESTAMP
-);
-
-CREATE TABLE IF NOT EXISTS permission (
-	id BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) PRIMARY KEY,
-	resource_set_id BIGINT
-);
-
-CREATE TABLE IF NOT EXISTS permission_scope (
-	owner_id BIGINT NOT NULL,
-	scope VARCHAR(256) NOT NULL
-);
-
-CREATE TABLE IF NOT EXISTS claim (
-	id BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) PRIMARY KEY,
-	name VARCHAR(256),
-	friendly_name VARCHAR(1024),
-	claim_type VARCHAR(1024),
-	claim_value VARCHAR(1024)
-);
-
-CREATE TABLE IF NOT EXISTS claim_to_policy (
-	policy_id BIGINT NOT NULL,
-	claim_id BIGINT NOT NULL
-);
-
-CREATE TABLE IF NOT EXISTS claim_to_permission_ticket (
-	permission_ticket_id BIGINT NOT NULL,
-	claim_id BIGINT NOT NULL
-);
-
-CREATE TABLE IF NOT EXISTS policy (
-	id BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) PRIMARY KEY,
-	name VARCHAR(1024),
-	resource_set_id BIGINT
-);
-
-CREATE TABLE IF NOT EXISTS policy_scope (
-	owner_id BIGINT NOT NULL,
-	scope VARCHAR(256) NOT NULL
-);
-
-CREATE TABLE IF NOT EXISTS claim_token_format (
-	owner_id BIGINT NOT NULL,
-	claim_token_format VARCHAR(1024)
-);
-
-CREATE TABLE IF NOT EXISTS claim_issuer (
-	owner_id BIGINT NOT NULL,
-	issuer VARCHAR(1024)
-);
-
-CREATE TABLE IF NOT EXISTS saved_registered_client (
-	id BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) PRIMARY KEY,
-	issuer VARCHAR(1024),
-	registered_client VARCHAR(8192)
-);
-
 CREATE TABLE IF NOT EXISTS device_code (
 	id BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) PRIMARY KEY,
 	device_code VARCHAR(1024),
diff --git a/perun-oidc-server-webapp/src/main/resources/db/mysql/mysql_database_tables.sql b/perun-oidc-server-webapp/src/main/resources/db/mysql/mysql_database_tables.sql
index 08d774c73..6641c04a6 100644
--- a/perun-oidc-server-webapp/src/main/resources/db/mysql/mysql_database_tables.sql
+++ b/perun-oidc-server-webapp/src/main/resources/db/mysql/mysql_database_tables.sql
@@ -13,11 +13,6 @@ CREATE TABLE IF NOT EXISTS access_token (
     approved_site_id BIGINT
 );
 
-CREATE TABLE IF NOT EXISTS access_token_permissions (
-    access_token_id BIGINT NOT NULL,
-    permission_id BIGINT NOT NULL
-);
-
 CREATE TABLE IF NOT EXISTS address (
     id BIGINT AUTO_INCREMENT PRIMARY KEY,
     formatted VARCHAR(256),
@@ -87,7 +82,7 @@ CREATE TABLE IF NOT EXISTS saved_user_auth (
     id BIGINT AUTO_INCREMENT PRIMARY KEY,
     acr VARCHAR(1024),
     name VARCHAR(1024),
-    authenticated BOOLEAN,
+    authenticated BOOLEAN
 );
 
 CREATE TABLE IF NOT EXISTS saved_user_auth_authority (
@@ -283,83 +278,6 @@ CREATE TABLE IF NOT EXISTS pairwise_identifier (
     sector_identifier VARCHAR(2048)
 );
 
-CREATE TABLE IF NOT EXISTS resource_set (
-    id BIGINT AUTO_INCREMENT PRIMARY KEY,
-    name VARCHAR(1024) NOT NULL,
-    uri VARCHAR(1024),
-    icon_uri VARCHAR(1024),
-    rs_type VARCHAR(256),
-    owner VARCHAR(256) NOT NULL,
-    client_id VARCHAR(256)
-);
-
-CREATE TABLE IF NOT EXISTS resource_set_scope (
-    owner_id BIGINT NOT NULL,
-    scope VARCHAR(256) NOT NULL
-);
-
-CREATE TABLE IF NOT EXISTS permission_ticket (
-    id BIGINT AUTO_INCREMENT PRIMARY KEY,
-    ticket VARCHAR(256) NOT NULL,
-    permission_id BIGINT NOT NULL,
-    expiration TIMESTAMP NULL
-);
-
-CREATE TABLE IF NOT EXISTS permission (
-    id BIGINT AUTO_INCREMENT PRIMARY KEY,
-    resource_set_id BIGINT
-);
-
-CREATE TABLE IF NOT EXISTS permission_scope (
-    owner_id BIGINT NOT NULL,
-    scope VARCHAR(256) NOT NULL
-);
-
-CREATE TABLE IF NOT EXISTS claim (
-    id BIGINT AUTO_INCREMENT PRIMARY KEY,
-    name VARCHAR(256),
-    friendly_name VARCHAR(1024),
-    claim_type VARCHAR(1024),
-    claim_value VARCHAR(1024)
-);
-
-CREATE TABLE IF NOT EXISTS claim_to_policy (
-    policy_id BIGINT NOT NULL,
-    claim_id BIGINT NOT NULL
-);
-
-CREATE TABLE IF NOT EXISTS claim_to_permission_ticket (
-    permission_ticket_id BIGINT NOT NULL,
-    claim_id BIGINT NOT NULL
-);
-
-CREATE TABLE IF NOT EXISTS policy (
-    id BIGINT AUTO_INCREMENT PRIMARY KEY,
-    name VARCHAR(1024),
-    resource_set_id BIGINT
-);
-
-CREATE TABLE IF NOT EXISTS policy_scope (
-    owner_id BIGINT NOT NULL,
-    scope VARCHAR(256) NOT NULL
-);
-
-CREATE TABLE IF NOT EXISTS claim_token_format (
-    owner_id BIGINT NOT NULL,
-    claim_token_format VARCHAR(1024)
-);
-
-CREATE TABLE IF NOT EXISTS claim_issuer (
-    owner_id BIGINT NOT NULL,
-    issuer VARCHAR(1024)
-);
-
-CREATE TABLE IF NOT EXISTS saved_registered_client (
-    id BIGINT AUTO_INCREMENT PRIMARY KEY,
-    issuer VARCHAR(1024),
-    registered_client VARCHAR(8192)
-);
-
 CREATE TABLE IF NOT EXISTS device_code (
     id BIGINT AUTO_INCREMENT PRIMARY KEY,
     device_code VARCHAR(1024),
diff --git a/perun-oidc-server-webapp/src/main/resources/db/psql/psql_database_tables.sql b/perun-oidc-server-webapp/src/main/resources/db/psql/psql_database_tables.sql
index 27a77d0f1..74c8c8ffe 100644
--- a/perun-oidc-server-webapp/src/main/resources/db/psql/psql_database_tables.sql
+++ b/perun-oidc-server-webapp/src/main/resources/db/psql/psql_database_tables.sql
@@ -14,11 +14,6 @@ CREATE TABLE IF NOT EXISTS access_token (
     UNIQUE(token_value)
 );
 
-CREATE TABLE IF NOT EXISTS access_token_permissions (
-    access_token_id BIGINT NOT NULL,
-    permission_id BIGINT NOT NULL
-);
-
 CREATE TABLE IF NOT EXISTS address (
     id BIGSERIAL PRIMARY KEY,
     formatted VARCHAR(256),
@@ -88,7 +83,7 @@ CREATE TABLE IF NOT EXISTS saved_user_auth (
     id BIGSERIAL PRIMARY KEY,
     acr VARCHAR(1024),
     name VARCHAR(1024),
-    authenticated BOOLEAN,
+    authenticated BOOLEAN
 );
 
 CREATE TABLE IF NOT EXISTS saved_user_auth_authority (
@@ -284,83 +279,6 @@ CREATE TABLE IF NOT EXISTS pairwise_identifier (
     sector_identifier VARCHAR(2048)
 );
 
-CREATE TABLE IF NOT EXISTS resource_set (
-    id BIGSERIAL PRIMARY KEY,
-    name VARCHAR(1024) NOT NULL,
-    uri VARCHAR(1024),
-    icon_uri VARCHAR(1024),
-    rs_type VARCHAR(256),
-    owner VARCHAR(256) NOT NULL,
-    client_id VARCHAR(256)
-);
-
-CREATE TABLE IF NOT EXISTS resource_set_scope (
-    owner_id BIGINT NOT NULL,
-    scope VARCHAR(256) NOT NULL
-);
-
-CREATE TABLE IF NOT EXISTS permission_ticket (
-    id BIGSERIAL PRIMARY KEY,
-    ticket VARCHAR(256) NOT NULL,
-    permission_id BIGINT NOT NULL,
-    expiration TIMESTAMP
-);
-
-CREATE TABLE IF NOT EXISTS permission (
-    id BIGSERIAL PRIMARY KEY,
-    resource_set_id BIGINT
-);
-
-CREATE TABLE IF NOT EXISTS permission_scope (
-    owner_id BIGINT NOT NULL,
-    scope VARCHAR(256) NOT NULL
-);
-
-CREATE TABLE IF NOT EXISTS claim (
-    id BIGSERIAL PRIMARY KEY,
-    name VARCHAR(256),
-    friendly_name VARCHAR(1024),
-    claim_type VARCHAR(1024),
-    claim_value VARCHAR(1024)
-);
-
-CREATE TABLE IF NOT EXISTS claim_to_policy (
-    policy_id BIGINT NOT NULL,
-    claim_id BIGINT NOT NULL
-);
-
-CREATE TABLE IF NOT EXISTS claim_to_permission_ticket (
-    permission_ticket_id BIGINT NOT NULL,
-    claim_id BIGINT NOT NULL
-);
-
-CREATE TABLE IF NOT EXISTS policy (
-    id BIGSERIAL PRIMARY KEY,
-    name VARCHAR(1024),
-    resource_set_id BIGINT
-);
-
-CREATE TABLE IF NOT EXISTS policy_scope (
-    owner_id BIGINT NOT NULL,
-    scope VARCHAR(256) NOT NULL
-);
-
-CREATE TABLE IF NOT EXISTS claim_token_format (
-    owner_id BIGINT NOT NULL,
-    claim_token_format VARCHAR(1024)
-);
-
-CREATE TABLE IF NOT EXISTS claim_issuer (
-    owner_id BIGINT NOT NULL,
-    issuer VARCHAR(1024)
-);
-
-CREATE TABLE IF NOT EXISTS saved_registered_client (
-    id BIGSERIAL PRIMARY KEY,
-    issuer VARCHAR(1024),
-    registered_client VARCHAR(8192)
-);
-
 CREATE TABLE IF NOT EXISTS device_code (
     id BIGSERIAL PRIMARY KEY,
     device_code VARCHAR(1024),
@@ -381,4 +299,3 @@ CREATE TABLE IF NOT EXISTS device_code_request_parameter (
     param VARCHAR(2048),
     val VARCHAR(2048)
 );
-
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/model/OAuth2AccessTokenEntity.java b/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/model/OAuth2AccessTokenEntity.java
index 1ceefc1be..4e47c2574 100644
--- a/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/model/OAuth2AccessTokenEntity.java
+++ b/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/model/OAuth2AccessTokenEntity.java
@@ -20,20 +20,29 @@
  */
 package cz.muni.ics.oauth2.model;
 
-import static cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity.*;
+import static cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity.PARAM_APPROVED_SITE;
+import static cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity.PARAM_CLIENT;
+import static cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity.PARAM_DATE;
+import static cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity.PARAM_NAME;
+import static cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity.PARAM_REFRESH_TOKEN;
+import static cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity.PARAM_TOKEN_VALUE;
+import static cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity.QUERY_ALL;
+import static cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity.QUERY_BY_APPROVED_SITE;
+import static cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity.QUERY_BY_CLIENT;
+import static cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity.QUERY_BY_NAME;
+import static cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity.QUERY_BY_REFRESH_TOKEN;
+import static cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity.QUERY_BY_TOKEN_VALUE;
+import static cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity.QUERY_EXPIRED_BY_DATE;
 
 import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.nimbusds.jwt.JWT;
 import cz.muni.ics.oauth2.model.convert.JWTStringConverter;
 import cz.muni.ics.openid.connect.model.ApprovedSite;
-import cz.muni.ics.uma.model.Permission;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
 import javax.persistence.CollectionTable;
 import javax.persistence.Column;
 import javax.persistence.Convert;
@@ -44,11 +53,9 @@ import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
 import javax.persistence.JoinColumn;
-import javax.persistence.JoinTable;
 import javax.persistence.ManyToOne;
 import javax.persistence.NamedQueries;
 import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
 import javax.persistence.Table;
 import javax.persistence.Temporal;
 import javax.persistence.TemporalType;
@@ -96,9 +103,6 @@ import org.springframework.security.oauth2.common.OAuth2RefreshToken;
 	@NamedQuery(name = QUERY_BY_APPROVED_SITE,
 				query = "SELECT a FROM OAuth2AccessTokenEntity a " +
 						"WHERE a.approvedSite = :" + PARAM_APPROVED_SITE),
-	@NamedQuery(name = QUERY_BY_RESOURCE_SET,
-				query = "SELECT a FROM OAuth2AccessTokenEntity a JOIN a.permissions p " +
-						"WHERE p.resourceSet.id = :" + PARAM_RESOURCE_SET_ID),
 	@NamedQuery(name = QUERY_BY_NAME,
 				query = "SELECT r FROM OAuth2AccessTokenEntity r " +
 						"WHERE r.authenticationHolder.userAuth.name = :" + PARAM_NAME)
@@ -160,12 +164,6 @@ public class OAuth2AccessTokenEntity implements OAuth2AccessToken {
 	@CascadeOnDelete
 	private Set<String> scope;
 
-	@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
-	@JoinTable(name = "access_token_permissions", joinColumns = @JoinColumn(name = "access_token_id"),
-			inverseJoinColumns = @JoinColumn(name = "permission_id"))
-	@CascadeOnDelete
-	private Set<Permission> permissions;
-
 	@ManyToOne
 	@JoinColumn(name = "approved_site_id")
 	private ApprovedSite approvedSite;
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/repository/OAuth2TokenRepository.java b/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/repository/OAuth2TokenRepository.java
index 4ddbaf5b1..c9a0cb028 100644
--- a/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/repository/OAuth2TokenRepository.java
+++ b/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/repository/OAuth2TokenRepository.java
@@ -22,7 +22,6 @@ import cz.muni.ics.oauth2.model.ClientDetailsEntity;
 import cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity;
 import cz.muni.ics.oauth2.model.OAuth2RefreshTokenEntity;
 import cz.muni.ics.openid.connect.model.ApprovedSite;
-import cz.muni.ics.uma.model.ResourceSet;
 import java.util.List;
 import java.util.Set;
 
@@ -68,8 +67,6 @@ public interface OAuth2TokenRepository {
 
 	Set<OAuth2RefreshTokenEntity> getAllExpiredRefreshTokens(PageCriteria pageCriteria);
 
-	Set<OAuth2AccessTokenEntity> getAccessTokensForResourceSet(ResourceSet rs);
-
 	/**
 	 * removes duplicate access tokens.
 	 *
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/repository/impl/JpaOAuth2TokenRepository.java b/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/repository/impl/JpaOAuth2TokenRepository.java
index ce64890dd..36a8f647d 100644
--- a/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/repository/impl/JpaOAuth2TokenRepository.java
+++ b/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/repository/impl/JpaOAuth2TokenRepository.java
@@ -26,7 +26,6 @@ import cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity;
 import cz.muni.ics.oauth2.model.OAuth2RefreshTokenEntity;
 import cz.muni.ics.oauth2.repository.OAuth2TokenRepository;
 import cz.muni.ics.openid.connect.model.ApprovedSite;
-import cz.muni.ics.uma.model.ResourceSet;
 import cz.muni.ics.util.jpa.JpaUtil;
 import java.text.ParseException;
 import java.util.ArrayList;
@@ -222,13 +221,6 @@ public class JpaOAuth2TokenRepository implements OAuth2TokenRepository {
 		return new LinkedHashSet<>(JpaUtil.getResultPage(query,pageCriteria));
 	}
 
-	@Override
-	public Set<OAuth2AccessTokenEntity> getAccessTokensForResourceSet(ResourceSet rs) {
-		TypedQuery<OAuth2AccessTokenEntity> query = manager.createNamedQuery(OAuth2AccessTokenEntity.QUERY_BY_RESOURCE_SET, OAuth2AccessTokenEntity.class);
-		query.setParameter(OAuth2AccessTokenEntity.PARAM_RESOURCE_SET_ID, rs.getId());
-		return new LinkedHashSet<>(query.getResultList());
-	}
-
 	@Override
 	@Transactional(value="defaultTransactionManager")
 	public void clearDuplicateAccessTokens() {
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/service/impl/DefaultIntrospectionResultAssembler.java b/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/service/impl/DefaultIntrospectionResultAssembler.java
index e18bd1257..3ee84c1b0 100644
--- a/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/service/impl/DefaultIntrospectionResultAssembler.java
+++ b/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/service/impl/DefaultIntrospectionResultAssembler.java
@@ -19,11 +19,11 @@ import static com.google.common.collect.Maps.newLinkedHashMap;
 
 import com.google.common.base.Joiner;
 import com.google.common.collect.Sets;
+import com.google.common.collect.Sets;
 import cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity;
 import cz.muni.ics.oauth2.model.OAuth2RefreshTokenEntity;
 import cz.muni.ics.oauth2.service.IntrospectionResultAssembler;
 import cz.muni.ics.openid.connect.model.UserInfo;
-import cz.muni.ics.uma.model.Permission;
 import java.text.ParseException;
 import java.util.Map;
 import java.util.Set;
@@ -46,26 +46,9 @@ public class DefaultIntrospectionResultAssembler implements IntrospectionResultA
 
 		result.put(ACTIVE, true);
 
-		if (accessToken.getPermissions() != null && !accessToken.getPermissions().isEmpty()) {
 
-			Set<Object> permissions = Sets.newHashSet();
-
-			for (Permission perm : accessToken.getPermissions()) {
-				Map<String, Object> o = newLinkedHashMap();
-				o.put("resource_set_id", perm.getResourceSet().getId().toString());
-				Set<String> scopes = Sets.newHashSet(perm.getScopes());
-				o.put("scopes", scopes);
-				permissions.add(o);
-			}
-
-			result.put("permissions", permissions);
-
-		} else {
-			Set<String> scopes = Sets.intersection(authScopes, accessToken.getScope());
-
-			result.put(SCOPE, Joiner.on(SCOPE_SEPARATOR).join(scopes));
-
-		}
+		Set<String> scopes = Sets.intersection(authScopes, accessToken.getScope());
+		result.put(SCOPE, Joiner.on(SCOPE_SEPARATOR).join(scopes));
 
 		if (accessToken.getExpiration() != null) {
 			try {
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/service/impl/DefaultOAuth2ClientDetailsEntityService.java b/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/service/impl/DefaultOAuth2ClientDetailsEntityService.java
index 6cca58027..a668754a1 100644
--- a/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/service/impl/DefaultOAuth2ClientDetailsEntityService.java
+++ b/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/service/impl/DefaultOAuth2ClientDetailsEntityService.java
@@ -36,8 +36,6 @@ import cz.muni.ics.openid.connect.model.WhitelistedSite;
 import cz.muni.ics.openid.connect.service.ApprovedSiteService;
 import cz.muni.ics.openid.connect.service.BlacklistedSiteService;
 import cz.muni.ics.openid.connect.service.WhitelistedSiteService;
-import cz.muni.ics.uma.model.ResourceSet;
-import cz.muni.ics.uma.service.ResourceSetService;
 import java.math.BigInteger;
 import java.security.SecureRandom;
 import java.util.ArrayList;
@@ -83,9 +81,6 @@ public class DefaultOAuth2ClientDetailsEntityService implements ClientDetailsEnt
 	@Autowired
 	private SystemScopeService scopeService;
 
-	@Autowired
-	private ResourceSetService resourceSetService;
-
 	@Autowired
 	private ConfigurationPropertiesBean config;
 
@@ -354,12 +349,6 @@ public class DefaultOAuth2ClientDetailsEntityService implements ClientDetailsEnt
 			whitelistedSiteService.remove(whitelistedSite);
 		}
 
-		// clear out resource sets registered for this client
-		Collection<ResourceSet> resourceSets = resourceSetService.getAllForClient(client);
-		for (ResourceSet rs : resourceSets) {
-			resourceSetService.remove(rs);
-		}
-
 		// take care of the client itself
 		clientRepository.deleteClient(client);
 	}
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/web/IntrospectionEndpoint.java b/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/web/IntrospectionEndpoint.java
index 43f0c3672..f70d89557 100644
--- a/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/web/IntrospectionEndpoint.java
+++ b/perun-oidc-server/src/main/java/cz/muni/ics/oauth2/web/IntrospectionEndpoint.java
@@ -30,9 +30,6 @@ import cz.muni.ics.openid.connect.model.UserInfo;
 import cz.muni.ics.openid.connect.service.UserInfoService;
 import cz.muni.ics.openid.connect.view.HttpCodeView;
 import cz.muni.ics.openid.connect.view.JsonEntityView;
-import cz.muni.ics.uma.model.ResourceSet;
-import cz.muni.ics.uma.service.ResourceSetService;
-import java.util.Collection;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
@@ -68,9 +65,6 @@ public class IntrospectionEndpoint {
 	@Autowired
 	private UserInfoService userInfoService;
 
-	@Autowired
-	private ResourceSetService resourceSetService;
-
 	public IntrospectionEndpoint() {
 
 	}
@@ -101,15 +95,6 @@ public class IntrospectionEndpoint {
 			String ownerId = o2a.getUserAuthentication().getName();
 
 			authScopes.addAll(authClient.getScope());
-
-			// UMA style clients also get a subset of scopes of all the resource sets they've registered
-			Collection<ResourceSet> resourceSets = resourceSetService.getAllForOwnerAndClient(ownerId, authClientId);
-
-			// collect all the scopes
-			for (ResourceSet rs : resourceSets) {
-				authScopes.addAll(rs.getScopes());
-			}
-
 		} else {
 			// the client authenticated directly, make sure it's got the right access
 
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/openid/connect/service/impl/DummyResourceSetService.java b/perun-oidc-server/src/main/java/cz/muni/ics/openid/connect/service/impl/DummyResourceSetService.java
deleted file mode 100644
index 2d711252d..000000000
--- a/perun-oidc-server/src/main/java/cz/muni/ics/openid/connect/service/impl/DummyResourceSetService.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*******************************************************************************
- * Copyright 2018 The MIT Internet Trust Consortium
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *******************************************************************************/
-
-package cz.muni.ics.openid.connect.service.impl;
-
-import cz.muni.ics.oauth2.model.ClientDetailsEntity;
-import cz.muni.ics.uma.model.ResourceSet;
-import cz.muni.ics.uma.service.ResourceSetService;
-import java.util.Collection;
-import java.util.Collections;
-import org.springframework.stereotype.Service;
-
-/**
- * Dummy resource set service that doesn't do anything; acts as a stub for the
- * introspection service when the UMA functionality is disabled.
- *
- * @author jricher
- *
- */
-@Service
-public class DummyResourceSetService implements ResourceSetService {
-
-	@Override
-	public ResourceSet saveNew(ResourceSet rs) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public ResourceSet getById(Long id) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public ResourceSet update(ResourceSet oldRs, ResourceSet newRs) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public void remove(ResourceSet rs) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public Collection<ResourceSet> getAllForOwner(String owner) {
-		throw new UnsupportedOperationException();
-	}
-
-	@Override
-	public Collection<ResourceSet> getAllForOwnerAndClient(String owner, String authClientId) {
-		return Collections.emptySet();
-	}
-
-	@Override
-	public Collection<ResourceSet> getAllForClient(ClientDetailsEntity client) {
-		return Collections.emptySet();
-	}
-
-}
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/Claim.java b/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/Claim.java
deleted file mode 100644
index f12eedc48..000000000
--- a/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/Claim.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/*******************************************************************************
- * Copyright 2018 The MIT Internet Trust Consortium
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *******************************************************************************/
-
-package cz.muni.ics.uma.model;
-
-import com.google.gson.JsonElement;
-import cz.muni.ics.oauth2.model.convert.JsonElementStringConverter;
-import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.CollectionTable;
-import javax.persistence.Column;
-import javax.persistence.Convert;
-import javax.persistence.ElementCollection;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.Table;
-
-/**
- * @author jricher
- */
-@Entity
-@Table(name = "claim")
-public class Claim {
-
-	private Long id;
-	private String name;
-	private String friendlyName;
-	private String claimType;
-	private JsonElement value;
-	private Set<String> claimTokenFormat;
-	private Set<String> issuer;
-
-	@Id
-	@GeneratedValue(strategy = GenerationType.IDENTITY)
-	@Column(name = "id")
-	public Long getId() {
-		return id;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
-
-	@Basic
-	@Column(name = "name")
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-
-	@Basic
-	@Column(name = "friendly_name")
-	public String getFriendlyName() {
-		return friendlyName;
-	}
-
-	public void setFriendlyName(String friendlyName) {
-		this.friendlyName = friendlyName;
-	}
-
-	@Basic
-	@Column(name = "claim_type")
-	public String getClaimType() {
-		return claimType;
-	}
-
-	public void setClaimType(String claimType) {
-		this.claimType = claimType;
-	}
-
-	@ElementCollection(fetch = FetchType.EAGER)
-	@Column(name = "claim_token_format")
-	@CollectionTable(name = "claim_token_format", joinColumns = @JoinColumn(name = "owner_id"))
-	public Set<String> getClaimTokenFormat() {
-		return claimTokenFormat;
-	}
-
-	public void setClaimTokenFormat(Set<String> claimTokenFormat) {
-		this.claimTokenFormat = claimTokenFormat;
-	}
-
-	@ElementCollection(fetch = FetchType.EAGER)
-	@Column(name = "issuer")
-	@CollectionTable(name = "claim_issuer", joinColumns = @JoinColumn(name = "owner_id"))
-	public Set<String> getIssuer() {
-		return issuer;
-	}
-
-	public void setIssuer(Set<String> issuer) {
-		this.issuer = issuer;
-	}
-
-	@Basic
-	@Column(name = "claim_value")
-	@Convert(converter = JsonElementStringConverter.class)
-	public JsonElement getValue() {
-		return value;
-	}
-
-	public void setValue(JsonElement value) {
-		this.value = value;
-	}
-
-	@Override
-	public String toString() {
-		return "Claim [id=" + id + ", name=" + name + ", friendlyName=" + friendlyName + ", claimType=" + claimType + ", value=" + value + ", claimTokenFormat=" + claimTokenFormat + ", issuer=" + issuer + "]";
-	}
-
-	@Override
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((claimTokenFormat == null) ? 0 : claimTokenFormat.hashCode());
-		result = prime * result + ((claimType == null) ? 0 : claimType.hashCode());
-		result = prime * result + ((friendlyName == null) ? 0 : friendlyName.hashCode());
-		result = prime * result + ((id == null) ? 0 : id.hashCode());
-		result = prime * result + ((issuer == null) ? 0 : issuer.hashCode());
-		result = prime * result + ((name == null) ? 0 : name.hashCode());
-		result = prime * result + ((value == null) ? 0 : value.hashCode());
-		return result;
-	}
-
-	@Override
-	public boolean equals(Object obj) {
-		if (this == obj) {
-			return true;
-		}
-		if (obj == null) {
-			return false;
-		}
-		if (getClass() != obj.getClass()) {
-			return false;
-		}
-		Claim other = (Claim) obj;
-		if (claimTokenFormat == null) {
-			if (other.claimTokenFormat != null) {
-				return false;
-			}
-		} else if (!claimTokenFormat.equals(other.claimTokenFormat)) {
-			return false;
-		}
-		if (claimType == null) {
-			if (other.claimType != null) {
-				return false;
-			}
-		} else if (!claimType.equals(other.claimType)) {
-			return false;
-		}
-		if (friendlyName == null) {
-			if (other.friendlyName != null) {
-				return false;
-			}
-		} else if (!friendlyName.equals(other.friendlyName)) {
-			return false;
-		}
-		if (id == null) {
-			if (other.id != null) {
-				return false;
-			}
-		} else if (!id.equals(other.id)) {
-			return false;
-		}
-		if (issuer == null) {
-			if (other.issuer != null) {
-				return false;
-			}
-		} else if (!issuer.equals(other.issuer)) {
-			return false;
-		}
-		if (name == null) {
-			if (other.name != null) {
-				return false;
-			}
-		} else if (!name.equals(other.name)) {
-			return false;
-		}
-		if (value == null) {
-			return other.value == null;
-		} else return value.equals(other.value);
-	}
-
-}
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/ClaimProcessingResult.java b/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/ClaimProcessingResult.java
deleted file mode 100644
index 190034aaf..000000000
--- a/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/ClaimProcessingResult.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*******************************************************************************
- * Copyright 2018 The MIT Internet Trust Consortium
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *******************************************************************************/
-
-package cz.muni.ics.uma.model;
-
-import java.util.Collection;
-
-/**
- * Data shuttle to return results of the claims processing service.
- *
- * @author jricher
- */
-public class ClaimProcessingResult {
-
-	private boolean satisfied;
-	private Collection<Claim> unmatched;
-	private Policy matched;
-
-	public ClaimProcessingResult(Collection<Claim> unmatched) {
-		this.satisfied = false;
-		this.unmatched = unmatched;
-		this.matched = null;
-	}
-
-	public ClaimProcessingResult(Policy matched) {
-		this.satisfied = true;
-		this.matched = matched;
-		this.unmatched = null;
-	}
-
-	public boolean isSatisfied() {
-		return satisfied;
-	}
-
-	public void setSatisfied(boolean satisfied) {
-		this.satisfied = satisfied;
-	}
-
-	public Collection<Claim> getUnmatched() {
-		return unmatched;
-	}
-
-	public void setUnmatched(Collection<Claim> unmatched) {
-		this.unmatched = unmatched;
-	}
-
-	public Policy getMatched() {
-		return matched;
-	}
-
-	public void setMatched(Policy matched) {
-		this.matched = matched;
-	}
-
-}
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/Permission.java b/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/Permission.java
deleted file mode 100644
index 57e371bbe..000000000
--- a/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/Permission.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright 2018 The MIT Internet Trust Consortium
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *******************************************************************************/
-
-package cz.muni.ics.uma.model;
-
-import java.util.Set;
-import javax.persistence.CollectionTable;
-import javax.persistence.Column;
-import javax.persistence.ElementCollection;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.Table;
-
-/**
- * @author  jricher
- */
-@Entity
-@Table(name = "permission")
-public class Permission {
-
-	private Long id;
-	private ResourceSet resourceSet;
-	private Set<String> scopes;
-
-	@Id
-	@GeneratedValue(strategy = GenerationType.IDENTITY)
-	@Column(name = "id")
-	public Long getId() {
-		return id;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
-
-	@ManyToOne(fetch = FetchType.EAGER)
-	@JoinColumn(name = "resource_set_id")
-	public ResourceSet getResourceSet() {
-		return resourceSet;
-	}
-
-	public void setResourceSet(ResourceSet resourceSet) {
-		this.resourceSet = resourceSet;
-	}
-
-	@ElementCollection(fetch = FetchType.EAGER)
-	@Column(name = "scope")
-	@CollectionTable(name = "permission_scope", joinColumns = @JoinColumn(name = "owner_id"))
-	public Set<String> getScopes() {
-		return scopes;
-	}
-
-	public void setScopes(Set<String> scopes) {
-		this.scopes = scopes;
-	}
-
-}
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/PermissionTicket.java b/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/PermissionTicket.java
deleted file mode 100644
index 39856f156..000000000
--- a/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/PermissionTicket.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*******************************************************************************
- * Copyright 2018 The MIT Internet Trust Consortium
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *******************************************************************************/
-
-package cz.muni.ics.uma.model;
-
-import java.util.Collection;
-import java.util.Date;
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.JoinTable;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.OneToOne;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-
-/**
- *
- * An UMA permission, used in the protection API.
- *
- * @author jricher
- *
- */
-@Entity
-@Table(name = "permission_ticket")
-@NamedQueries({
-	@NamedQuery(name = PermissionTicket.QUERY_TICKET, query = "select p from PermissionTicket p where p.ticket = :" + PermissionTicket.PARAM_TICKET),
-	@NamedQuery(name = PermissionTicket.QUERY_ALL, query = "select p from PermissionTicket p"),
-	@NamedQuery(name = PermissionTicket.QUERY_BY_RESOURCE_SET, query = "select p from PermissionTicket p where p.permission.resourceSet.id = :" + PermissionTicket.PARAM_RESOURCE_SET_ID)
-})
-public class PermissionTicket {
-
-	public static final String QUERY_TICKET = "PermissionTicket.queryByTicket";
-	public static final String QUERY_ALL = "PermissionTicket.queryAll";
-	public static final String QUERY_BY_RESOURCE_SET = "PermissionTicket.queryByResourceSet";
-
-	public static final String PARAM_TICKET = "ticket";
-	public static final String PARAM_RESOURCE_SET_ID = "rsid";
-
-	private Long id;
-	private Permission permission;
-	private String ticket;
-	private Date expiration;
-	private Collection<Claim> claimsSupplied;
-
-	@Id
-	@GeneratedValue(strategy = GenerationType.IDENTITY)
-	@Column(name = "id")
-	public Long getId() {
-		return id;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
-
-	@OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
-	@JoinColumn(name = "permission_id")
-	public Permission getPermission() {
-		return permission;
-	}
-
-	public void setPermission(Permission permission) {
-		this.permission = permission;
-	}
-
-	@Basic
-	@Column(name = "ticket")
-	public String getTicket() {
-		return ticket;
-	}
-
-	public void setTicket(String ticket) {
-		this.ticket = ticket;
-	}
-
-	@Basic
-	@Temporal(TemporalType.TIMESTAMP)
-	@Column(name = "expiration")
-	public Date getExpiration() {
-		return expiration;
-	}
-
-	public void setExpiration(Date expiration) {
-		this.expiration = expiration;
-	}
-
-	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
-	@JoinTable(name = "claim_to_permission_ticket", joinColumns = @JoinColumn(name = "permission_ticket_id"),
-			inverseJoinColumns = @JoinColumn(name = "claim_id"))
-	public Collection<Claim> getClaimsSupplied() {
-		return claimsSupplied;
-	}
-
-	public void setClaimsSupplied(Collection<Claim> claimsSupplied) {
-		this.claimsSupplied = claimsSupplied;
-	}
-
-}
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/Policy.java b/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/Policy.java
deleted file mode 100644
index e1c8a20c3..000000000
--- a/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/Policy.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*******************************************************************************
- * Copyright 2018 The MIT Internet Trust Consortium
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *******************************************************************************/
-
-package cz.muni.ics.uma.model;
-
-import java.util.Collection;
-import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
-import javax.persistence.CollectionTable;
-import javax.persistence.Column;
-import javax.persistence.ElementCollection;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.JoinTable;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-
-/**
- * A set of claims required to fulfill a given permission.
- *
- * @author jricher
- */
-@Entity
-@Table(name = "policy")
-public class Policy {
-
-	private Long id;
-	private String name;
-	private Collection<Claim> claimsRequired;
-	private Set<String> scopes;
-
-	@Id
-	@GeneratedValue(strategy = GenerationType.IDENTITY)
-	@Column(name = "id")
-	public Long getId() {
-		return id;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
-
-	@Basic
-	@Column(name = "name")
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
-	@JoinTable(name = "claim_to_policy", joinColumns = @JoinColumn(name = "policy_id"),
-			inverseJoinColumns = @JoinColumn(name = "claim_id"))
-	public Collection<Claim> getClaimsRequired() {
-		return claimsRequired;
-	}
-
-	public void setClaimsRequired(Collection<Claim> claimsRequired) {
-		this.claimsRequired = claimsRequired;
-	}
-
-	@ElementCollection(fetch = FetchType.EAGER)
-	@Column(name = "scope")
-	@CollectionTable(name = "policy_scope", joinColumns = @JoinColumn(name = "owner_id"))
-	public Set<String> getScopes() {
-		return scopes;
-	}
-
-	public void setScopes(Set<String> scopes) {
-		this.scopes = scopes;
-	}
-
-	@Override
-	public String toString() {
-		return "Policy [id=" + id + ", name=" + name + ", claimsRequired=" + claimsRequired + ", scopes=" + scopes + "]";
-	}
-
-	@Override
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((claimsRequired == null) ? 0 : claimsRequired.hashCode());
-		result = prime * result + ((id == null) ? 0 : id.hashCode());
-		result = prime * result + ((name == null) ? 0 : name.hashCode());
-		result = prime * result + ((scopes == null) ? 0 : scopes.hashCode());
-		return result;
-	}
-
-	@Override
-	public boolean equals(Object obj) {
-		if (this == obj) {
-			return true;
-		}
-		if (obj == null) {
-			return false;
-		}
-		if (getClass() != obj.getClass()) {
-			return false;
-		}
-		Policy other = (Policy) obj;
-		if (claimsRequired == null) {
-			if (other.claimsRequired != null) {
-				return false;
-			}
-		} else if (!claimsRequired.equals(other.claimsRequired)) {
-			return false;
-		}
-		if (id == null) {
-			if (other.id != null) {
-				return false;
-			}
-		} else if (!id.equals(other.id)) {
-			return false;
-		}
-		if (name == null) {
-			if (other.name != null) {
-				return false;
-			}
-		} else if (!name.equals(other.name)) {
-			return false;
-		}
-		if (scopes == null) {
-			return other.scopes == null;
-		} else return scopes.equals(other.scopes);
-	}
-
-}
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/ResourceSet.java b/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/ResourceSet.java
deleted file mode 100644
index c8ab96aa7..000000000
--- a/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/ResourceSet.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/*******************************************************************************
- * Copyright 2018 The MIT Internet Trust Consortium
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *******************************************************************************/
-package cz.muni.ics.uma.model;
-
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
-import javax.persistence.CollectionTable;
-import javax.persistence.Column;
-import javax.persistence.ElementCollection;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.JoinColumn;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToMany;
-import javax.persistence.Table;
-
-@Entity
-@Table(name = "resource_set")
-@NamedQueries ({
-	@NamedQuery(name = ResourceSet.QUERY_BY_OWNER, query = "select r from ResourceSet r where r.owner = :" + ResourceSet.PARAM_OWNER),
-	@NamedQuery(name = ResourceSet.QUERY_BY_OWNER_AND_CLIENT, query = "select r from ResourceSet r where r.owner = :" + ResourceSet.PARAM_OWNER + " and r.clientId = :" + ResourceSet.PARAM_CLIENTID),
-	@NamedQuery(name = ResourceSet.QUERY_BY_CLIENT, query = "select r from ResourceSet r where r.clientId = :" + ResourceSet.PARAM_CLIENTID),
-	@NamedQuery(name = ResourceSet.QUERY_ALL, query = "select r from ResourceSet r")
-})
-public class ResourceSet {
-
-	public static final String QUERY_BY_OWNER = "ResourceSet.queryByOwner";
-	public static final String QUERY_BY_OWNER_AND_CLIENT = "ResourceSet.queryByOwnerAndClient";
-	public static final String QUERY_BY_CLIENT = "ResourceSet.queryByClient";
-	public static final String QUERY_ALL = "ResourceSet.queryAll";
-
-	public static final String PARAM_OWNER = "owner";
-	public static final String PARAM_CLIENTID = "clientId";
-
-	private Long id;
-	private String name;
-	private String uri;
-	private String type;
-	private Set<String> scopes = new HashSet<>();
-	private String iconUri;
-	private String owner; // username of the person responsible for the registration (either directly or via OAuth token)
-	private String clientId; // client id of the protected resource that registered this resource set via OAuth token
-
-	private Collection<Policy> policies = new HashSet<>();
-
-	@Id
-	@GeneratedValue(strategy = GenerationType.IDENTITY)
-	@Column(name = "id")
-	public Long getId() {
-		return id;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
-
-	@Basic
-	@Column(name = "name")
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	@Basic
-	@Column(name = "uri")
-	public String getUri() {
-		return uri;
-	}
-
-	public void setUri(String uri) {
-		this.uri = uri;
-	}
-
-	@Basic
-	@Column(name = "rs_type")
-	public String getType() {
-		return type;
-	}
-
-	public void setType(String type) {
-		this.type = type;
-	}
-
-	@ElementCollection(fetch = FetchType.EAGER)
-	@Column(name = "scope")
-	@CollectionTable(name = "resource_set_scope", joinColumns = @JoinColumn(name = "owner_id"))
-	public Set<String> getScopes() {
-		return scopes;
-	}
-
-	public void setScopes(Set<String> scopes) {
-		this.scopes = scopes;
-	}
-
-	@Basic
-	@Column(name = "icon_uri")
-	public String getIconUri() {
-		return iconUri;
-	}
-
-	public void setIconUri(String iconUri) {
-		this.iconUri = iconUri;
-	}
-
-	@Basic
-	@Column(name = "owner")
-	public String getOwner() {
-		return owner;
-	}
-
-	public void setOwner(String owner) {
-		this.owner = owner;
-	}
-
-	@Basic
-	@Column(name = "client_id")
-	public String getClientId() {
-		return clientId;
-	}
-
-	public void setClientId(String clientId) {
-		this.clientId = clientId;
-	}
-
-	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
-	@JoinColumn(name = "resource_set_id")
-	public Collection<Policy> getPolicies() {
-		return policies;
-	}
-
-	public void setPolicies(Collection<Policy> policies) {
-		this.policies = policies;
-	}
-
-	@Override
-	public String toString() {
-		return "ResourceSet [id=" + id + ", name=" + name + ", uri=" + uri + ", type=" + type + ", scopes=" + scopes + ", iconUri=" + iconUri + ", owner=" + owner + ", clientId=" + clientId + ", policies=" + policies + "]";
-	}
-
-	@Override
-	public int hashCode() {
-		final int prime = 31;
-		int result = 1;
-		result = prime * result + ((clientId == null) ? 0 : clientId.hashCode());
-		result = prime * result + ((iconUri == null) ? 0 : iconUri.hashCode());
-		result = prime * result + ((id == null) ? 0 : id.hashCode());
-		result = prime * result + ((name == null) ? 0 : name.hashCode());
-		result = prime * result + ((owner == null) ? 0 : owner.hashCode());
-		result = prime * result + ((policies == null) ? 0 : policies.hashCode());
-		result = prime * result + ((scopes == null) ? 0 : scopes.hashCode());
-		result = prime * result + ((type == null) ? 0 : type.hashCode());
-		result = prime * result + ((uri == null) ? 0 : uri.hashCode());
-		return result;
-	}
-
-	/* (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	@Override
-	public boolean equals(Object obj) {
-		if (this == obj) {
-			return true;
-		}
-		if (obj == null) {
-			return false;
-		}
-		if (getClass() != obj.getClass()) {
-			return false;
-		}
-		ResourceSet other = (ResourceSet) obj;
-		if (clientId == null) {
-			if (other.clientId != null) {
-				return false;
-			}
-		} else if (!clientId.equals(other.clientId)) {
-			return false;
-		}
-		if (iconUri == null) {
-			if (other.iconUri != null) {
-				return false;
-			}
-		} else if (!iconUri.equals(other.iconUri)) {
-			return false;
-		}
-		if (id == null) {
-			if (other.id != null) {
-				return false;
-			}
-		} else if (!id.equals(other.id)) {
-			return false;
-		}
-		if (name == null) {
-			if (other.name != null) {
-				return false;
-			}
-		} else if (!name.equals(other.name)) {
-			return false;
-		}
-		if (owner == null) {
-			if (other.owner != null) {
-				return false;
-			}
-		} else if (!owner.equals(other.owner)) {
-			return false;
-		}
-		if (policies == null) {
-			if (other.policies != null) {
-				return false;
-			}
-		} else if (!policies.equals(other.policies)) {
-			return false;
-		}
-		if (scopes == null) {
-			if (other.scopes != null) {
-				return false;
-			}
-		} else if (!scopes.equals(other.scopes)) {
-			return false;
-		}
-		if (type == null) {
-			if (other.type != null) {
-				return false;
-			}
-		} else if (!type.equals(other.type)) {
-			return false;
-		}
-		if (uri == null) {
-			return other.uri == null;
-		} else return uri.equals(other.uri);
-	}
-
-}
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/SavedRegisteredClient.java b/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/SavedRegisteredClient.java
deleted file mode 100644
index 26c2c5d3f..000000000
--- a/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/SavedRegisteredClient.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright 2018 The MIT Internet Trust Consortium
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *******************************************************************************/
-
-package cz.muni.ics.uma.model;
-
-import cz.muni.ics.oauth2.model.RegisteredClient;
-import cz.muni.ics.uma.model.convert.RegisteredClientStringConverter;
-import javax.persistence.Basic;
-import javax.persistence.Column;
-import javax.persistence.Convert;
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-import javax.persistence.Id;
-import javax.persistence.Table;
-
-/**
- * @author jricher
- */
-@Entity
-@Table(name = "saved_registered_client")
-public class SavedRegisteredClient {
-
-	private Long id;
-	private String issuer;
-	private RegisteredClient registeredClient;
-
-	@Id
-	@GeneratedValue(strategy = GenerationType.IDENTITY)
-	@Column(name = "id")
-	public Long getId() {
-		return id;
-	}
-
-	public void setId(Long id) {
-		this.id = id;
-	}
-
-	@Basic
-	@Column(name = "issuer")
-	public String getIssuer() {
-		return issuer;
-	}
-
-	public void setIssuer(String issuer) {
-		this.issuer = issuer;
-	}
-
-	@Basic
-	@Column(name = "registered_client")
-	@Convert(converter = RegisteredClientStringConverter.class)
-	public RegisteredClient getRegisteredClient() {
-		return registeredClient;
-	}
-
-	public void setRegisteredClient(RegisteredClient registeredClient) {
-		this.registeredClient = registeredClient;
-	}
-
-}
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/convert/RegisteredClientStringConverter.java b/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/convert/RegisteredClientStringConverter.java
deleted file mode 100644
index 238f70b56..000000000
--- a/perun-oidc-server/src/main/java/cz/muni/ics/uma/model/convert/RegisteredClientStringConverter.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright 2018 The MIT Internet Trust Consortium
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *******************************************************************************/
-
-package cz.muni.ics.uma.model.convert;
-
-import cz.muni.ics.oauth2.model.RegisteredClient;
-import cz.muni.ics.openid.connect.ClientDetailsEntityJsonProcessor;
-import javax.persistence.AttributeConverter;
-import javax.persistence.Converter;
-import org.springframework.util.StringUtils;
-
-/**
- * @author jricher
- */
-@Converter
-public class RegisteredClientStringConverter implements AttributeConverter<RegisteredClient, String>{
-
-	@Override
-	public String convertToDatabaseColumn(RegisteredClient attribute) {
-		return attribute == null || attribute.getSource() == null ? null : attribute.getSource().toString();
-	}
-
-	@Override
-	public RegisteredClient convertToEntityAttribute(String dbData) {
-		return StringUtils.isEmpty(dbData) ? null : ClientDetailsEntityJsonProcessor.parseRegistered(dbData);
-	}
-
-}
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/uma/repository/PermissionRepository.java b/perun-oidc-server/src/main/java/cz/muni/ics/uma/repository/PermissionRepository.java
deleted file mode 100644
index 07dca1de6..000000000
--- a/perun-oidc-server/src/main/java/cz/muni/ics/uma/repository/PermissionRepository.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright 2018 The MIT Internet Trust Consortium
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *******************************************************************************/
-
-package cz.muni.ics.uma.repository;
-
-import cz.muni.ics.uma.model.Permission;
-import cz.muni.ics.uma.model.PermissionTicket;
-import cz.muni.ics.uma.model.ResourceSet;
-import java.util.Collection;
-
-/**
- * @author jricher
- */
-public interface PermissionRepository {
-
-	PermissionTicket save(PermissionTicket p);
-
-	PermissionTicket getByTicket(String ticket);
-
-	Collection<PermissionTicket> getAll();
-
-	Permission saveRawPermission(Permission p);
-
-	Permission getById(Long permissionId);
-
-	Collection<PermissionTicket> getPermissionTicketsForResourceSet(ResourceSet rs);
-
-	void remove(PermissionTicket ticket);
-
-}
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/uma/repository/ResourceSetRepository.java b/perun-oidc-server/src/main/java/cz/muni/ics/uma/repository/ResourceSetRepository.java
deleted file mode 100644
index a7786ed7c..000000000
--- a/perun-oidc-server/src/main/java/cz/muni/ics/uma/repository/ResourceSetRepository.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright 2018 The MIT Internet Trust Consortium
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *******************************************************************************/
-
-package cz.muni.ics.uma.repository;
-
-import cz.muni.ics.uma.model.ResourceSet;
-import java.util.Collection;
-
-/**
- * @author jricher
- */
-public interface ResourceSetRepository {
-
-	ResourceSet save(ResourceSet rs);
-
-	ResourceSet getById(Long id);
-
-	void remove(ResourceSet rs);
-
-	Collection<ResourceSet> getAllForOwner(String owner);
-
-	Collection<ResourceSet> getAllForOwnerAndClient(String owner, String clientId);
-
-	Collection<ResourceSet> getAll();
-
-	Collection<ResourceSet> getAllForClient(String clientId);
-
-}
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/uma/service/ClaimsProcessingService.java b/perun-oidc-server/src/main/java/cz/muni/ics/uma/service/ClaimsProcessingService.java
deleted file mode 100644
index 40b092b88..000000000
--- a/perun-oidc-server/src/main/java/cz/muni/ics/uma/service/ClaimsProcessingService.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright 2018 The MIT Internet Trust Consortium
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *******************************************************************************/
-
-package cz.muni.ics.uma.service;
-
-import cz.muni.ics.uma.model.ClaimProcessingResult;
-import cz.muni.ics.uma.model.PermissionTicket;
-import cz.muni.ics.uma.model.ResourceSet;
-
-/**
- * Processes claims presented during an UMA transaction.
- *
- * @author jricher
- */
-public interface ClaimsProcessingService {
-
-	/**
-	 *
-	 * Determine whether or not the claims that have been supplied are
-	 * sufficient to fulfill the requirements given by the claims that
-	 * are required.
-	 *
-	 * @param rs the required claims to check against
-	 * @param ticket the supplied claims to test
-	 * @return the result of the claims processing action
-	 */
-	ClaimProcessingResult claimsAreSatisfied(ResourceSet rs, PermissionTicket ticket);
-
-}
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/uma/service/PermissionService.java b/perun-oidc-server/src/main/java/cz/muni/ics/uma/service/PermissionService.java
deleted file mode 100644
index da26b3c29..000000000
--- a/perun-oidc-server/src/main/java/cz/muni/ics/uma/service/PermissionService.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright 2018 The MIT Internet Trust Consortium
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *******************************************************************************/
-
-package cz.muni.ics.uma.service;
-
-import cz.muni.ics.uma.model.PermissionTicket;
-import cz.muni.ics.uma.model.ResourceSet;
-import java.util.Set;
-import org.springframework.security.oauth2.common.exceptions.InsufficientScopeException;
-
-
-/**
- * @author jricher
- */
-public interface PermissionService {
-
-	/**
-	 * @param resourceSet the resource set to create the permission on
-	 * @param scopes the set of scopes that this permission is for
-	 * @return the created (and stored) permission object, with ticket
-	 * @throws InsufficientScopeException if the scopes in scopes don't match those in resourceSet.getScopes
-	 */
-	PermissionTicket createTicket(ResourceSet resourceSet, Set<String> scopes);
-
-	/**
-	 * Read the permission associated with the given ticket.
-	 *
-	 * @param the ticket value to search on
-	 * @return the permission object, or null if none is found
-	 */
-	PermissionTicket getByTicket(String ticket);
-
-	/**
-	 * Save the updated permission ticket to the database. Does not create a new ticket.
-	 *
-	 * @param ticket
-	 * @return
-	 */
-	PermissionTicket updateTicket(PermissionTicket ticket);
-
-}
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/uma/service/ResourceSetService.java b/perun-oidc-server/src/main/java/cz/muni/ics/uma/service/ResourceSetService.java
deleted file mode 100644
index db966efa4..000000000
--- a/perun-oidc-server/src/main/java/cz/muni/ics/uma/service/ResourceSetService.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright 2018 The MIT Internet Trust Consortium
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *******************************************************************************/
-package cz.muni.ics.uma.service;
-
-import cz.muni.ics.oauth2.model.ClientDetailsEntity;
-import cz.muni.ics.uma.model.ResourceSet;
-import java.util.Collection;
-
-/**
- * Manage registered resource sets at this authorization server.
- *
- * @author jricher
- */
-public interface ResourceSetService {
-
-	ResourceSet saveNew(ResourceSet rs);
-
-	ResourceSet getById(Long id);
-
-	ResourceSet update(ResourceSet oldRs, ResourceSet newRs);
-
-	void remove(ResourceSet rs);
-
-	Collection<ResourceSet> getAllForOwner(String owner);
-
-	Collection<ResourceSet> getAllForOwnerAndClient(String owner, String authClientId);
-
-	Collection<ResourceSet> getAllForClient(ClientDetailsEntity client);
-
-}
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/uma/service/SavedRegisteredClientService.java b/perun-oidc-server/src/main/java/cz/muni/ics/uma/service/SavedRegisteredClientService.java
deleted file mode 100644
index 55630fcb5..000000000
--- a/perun-oidc-server/src/main/java/cz/muni/ics/uma/service/SavedRegisteredClientService.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright 2018 The MIT Internet Trust Consortium
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *******************************************************************************/
-
-package cz.muni.ics.uma.service;
-
-import cz.muni.ics.oauth2.model.RegisteredClient;
-import cz.muni.ics.uma.model.SavedRegisteredClient;
-import java.util.Collection;
-
-/**
- * @author jricher
- */
-public interface SavedRegisteredClientService {
-
-	/**
-	 * Get a list of all the registered clients that we know about.
-	 *
-	 * @return
-	 */
-	Collection<SavedRegisteredClient> getAll();
-
-	/**
-	 * @param issuer
-	 * @param client
-	 */
-	void save(String issuer, RegisteredClient client);
-
-
-}
diff --git a/perun-oidc-server/src/main/java/cz/muni/ics/uma/service/UmaTokenService.java b/perun-oidc-server/src/main/java/cz/muni/ics/uma/service/UmaTokenService.java
deleted file mode 100644
index 1113899b3..000000000
--- a/perun-oidc-server/src/main/java/cz/muni/ics/uma/service/UmaTokenService.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright 2018 The MIT Internet Trust Consortium
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *******************************************************************************/
-
-package cz.muni.ics.uma.service;
-
-import cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity;
-import cz.muni.ics.uma.model.PermissionTicket;
-import cz.muni.ics.uma.model.Policy;
-import org.springframework.security.oauth2.provider.OAuth2Authentication;
-
-/**
- * Service to create special tokens for UMA.
- *
- * @author jricher
- *
- */
-public interface UmaTokenService {
-
-	/**
-	 * Create the RPT from the given authentication and ticket.
-	 */
-	OAuth2AccessTokenEntity createRequestingPartyToken(OAuth2Authentication o2auth, PermissionTicket ticket, Policy policy);
-
-}
diff --git a/perun-oidc-server/src/test/java/cz/muni/ics/oauth2/service/impl/TestDefaultIntrospectionResultAssembler.java b/perun-oidc-server/src/test/java/cz/muni/ics/oauth2/service/impl/TestDefaultIntrospectionResultAssembler.java
index 8607baa00..1b7d9210f 100644
--- a/perun-oidc-server/src/test/java/cz/muni/ics/oauth2/service/impl/TestDefaultIntrospectionResultAssembler.java
+++ b/perun-oidc-server/src/test/java/cz/muni/ics/oauth2/service/impl/TestDefaultIntrospectionResultAssembler.java
@@ -29,7 +29,6 @@ import cz.muni.ics.oauth2.model.OAuth2AccessTokenEntity;
 import cz.muni.ics.oauth2.model.OAuth2RefreshTokenEntity;
 import cz.muni.ics.oauth2.service.IntrospectionResultAssembler;
 import cz.muni.ics.openid.connect.model.UserInfo;
-import cz.muni.ics.uma.model.Permission;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -52,7 +51,7 @@ public class TestDefaultIntrospectionResultAssembler {
 	public void shouldAssembleExpectedResultForAccessToken() throws ParseException {
 
 		// given
-		OAuth2AccessTokenEntity accessToken = accessToken(new Date(123 * 1000L), scopes("foo", "bar"), null, "Bearer",
+		OAuth2AccessTokenEntity accessToken = accessToken(new Date(123 * 1000L), scopes("foo", "bar"), "Bearer",
 				oauth2AuthenticationWithUser(oauth2Request("clientId"), "name"));
 
 		UserInfo userInfo = userInfo("sub");
@@ -77,50 +76,11 @@ public class TestDefaultIntrospectionResultAssembler {
 		assertThat(result, is(equalTo(expected)));
 	}
 
-	@Test
-	public void shouldAssembleExpectedResultForAccessToken_withPermissions() throws ParseException {
-
-		// given
-		OAuth2AccessTokenEntity accessToken = accessToken(new Date(123 * 1000L), scopes("foo", "bar"),
-				permissions(permission(1L, "foo", "bar")),
-				"Bearer", oauth2AuthenticationWithUser(oauth2Request("clientId"), "name"));
-
-		UserInfo userInfo = userInfo("sub");
-
-		Set<String> authScopes = scopes("foo", "bar", "baz");
-
-		// when
-		Map<String, Object> result = assembler.assembleFrom(accessToken, userInfo, authScopes);
-
-
-		// then
-		Map<String, Object> expected = new ImmutableMap.Builder<String, Object>()
-				.put("sub", "sub")
-				.put("exp", 123L)
-				.put("expires_at", dateFormat.valueToString(new Date(123 * 1000L)))
-				.put("permissions", new ImmutableSet.Builder<>()
-						.add(new ImmutableMap.Builder<String, Object>()
-								.put("resource_set_id", "1") // note that the resource ID comes out as a string
-								.put("scopes", new ImmutableSet.Builder<>()
-										.add("bar")
-										.add("foo")
-										.build())
-								.build())
-						.build())
-				// note that scopes are not included if permissions are included
-				.put("active", Boolean.TRUE)
-				.put("user_id", "name")
-				.put("client_id", "clientId")
-				.put("token_type", "Bearer")
-				.build();
-		assertThat(result, is(equalTo(expected)));
-	}
-
 	@Test
 	public void shouldAssembleExpectedResultForAccessTokenWithoutUserInfo() throws ParseException {
 
 		// given
-		OAuth2AccessTokenEntity accessToken = accessToken(new Date(123 * 1000L), scopes("foo", "bar"), null, "Bearer",
+		OAuth2AccessTokenEntity accessToken = accessToken(new Date(123 * 1000L), scopes("foo", "bar"), "Bearer",
 				oauth2AuthenticationWithUser(oauth2Request("clientId"), "name"));
 
 		Set<String> authScopes = scopes("foo", "bar", "baz");
@@ -147,7 +107,7 @@ public class TestDefaultIntrospectionResultAssembler {
 	public void shouldAssembleExpectedResultForAccessTokenWithoutExpiry() {
 
 		// given
-		OAuth2AccessTokenEntity accessToken = accessToken(null, scopes("foo", "bar"), null, "Bearer",
+		OAuth2AccessTokenEntity accessToken = accessToken(null, scopes("foo", "bar"), "Bearer",
 				oauth2AuthenticationWithUser(oauth2Request("clientId"), "name"));
 
 		UserInfo userInfo = userInfo("sub");
@@ -173,7 +133,7 @@ public class TestDefaultIntrospectionResultAssembler {
 	@Test
 	public void shouldAssembleExpectedResultForAccessTokenWithoutUserAuthentication() throws ParseException {
 		// given
-		OAuth2AccessTokenEntity accessToken = accessToken(new Date(123 * 1000L), scopes("foo", "bar"), null, "Bearer",
+		OAuth2AccessTokenEntity accessToken = accessToken(new Date(123 * 1000L), scopes("foo", "bar"), "Bearer",
 				oauth2Authentication(oauth2Request("clientId"), null));
 
 		Set<String> authScopes = scopes("foo", "bar", "baz");
@@ -305,11 +265,10 @@ public class TestDefaultIntrospectionResultAssembler {
 		return userInfo;
 	}
 
-	private OAuth2AccessTokenEntity accessToken(Date exp, Set<String> scopes, Set<Permission> permissions, String tokenType, OAuth2Authentication authentication) {
+	private OAuth2AccessTokenEntity accessToken(Date exp, Set<String> scopes, String tokenType, OAuth2Authentication authentication) {
 		OAuth2AccessTokenEntity accessToken = mock(OAuth2AccessTokenEntity.class, RETURNS_DEEP_STUBS);
 		given(accessToken.getExpiration()).willReturn(exp);
 		given(accessToken.getScope()).willReturn(scopes);
-		given(accessToken.getPermissions()).willReturn(permissions);
 		given(accessToken.getTokenType()).willReturn(tokenType);
 		given(accessToken.getAuthenticationHolder().getAuthentication()).willReturn(authentication);
 		return accessToken;
@@ -342,15 +301,4 @@ public class TestDefaultIntrospectionResultAssembler {
 	private Set<String> scopes(String... scopes) {
 		return newHashSet(scopes);
 	}
-
-	private Set<Permission> permissions(Permission... permissions) {
-		return newHashSet(permissions);
-	}
-
-	private Permission permission(Long resourceSetId, String... scopes) {
-		Permission permission = mock(Permission.class, RETURNS_DEEP_STUBS);
-		given(permission.getResourceSet().getId()).willReturn(resourceSetId);
-		given(permission.getScopes()).willReturn(scopes(scopes));
-		return permission;
-	}
 }
diff --git a/perun-oidc-server/src/test/java/cz/muni/ics/oauth2/service/impl/TestDefaultOAuth2ClientDetailsEntityService.java b/perun-oidc-server/src/test/java/cz/muni/ics/oauth2/service/impl/TestDefaultOAuth2ClientDetailsEntityService.java
index 655992121..8acdd4f2b 100644
--- a/perun-oidc-server/src/test/java/cz/muni/ics/oauth2/service/impl/TestDefaultOAuth2ClientDetailsEntityService.java
+++ b/perun-oidc-server/src/test/java/cz/muni/ics/oauth2/service/impl/TestDefaultOAuth2ClientDetailsEntityService.java
@@ -36,8 +36,6 @@ import cz.muni.ics.openid.connect.model.WhitelistedSite;
 import cz.muni.ics.openid.connect.service.ApprovedSiteService;
 import cz.muni.ics.openid.connect.service.BlacklistedSiteService;
 import cz.muni.ics.openid.connect.service.WhitelistedSiteService;
-import cz.muni.ics.uma.model.ResourceSet;
-import cz.muni.ics.uma.service.ResourceSetService;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.Set;
@@ -79,9 +77,6 @@ public class TestDefaultOAuth2ClientDetailsEntityService {
 	@Mock
 	private SystemScopeService scopeService;
 
-	@Mock
-	private ResourceSetService resourceSetService;
-
 	@Mock
 	private ConfigurationPropertiesBean config;
 
@@ -267,8 +262,6 @@ public class TestDefaultOAuth2ClientDetailsEntityService {
 		WhitelistedSite site = Mockito.mock(WhitelistedSite.class);
 		Mockito.when(whitelistedSiteService.getByClientId(clientId)).thenReturn(site);
 
-		Mockito.when(resourceSetService.getAllForClient(client)).thenReturn(new HashSet<ResourceSet>());
-
 		service.deleteClient(client);
 
 		Mockito.verify(tokenRepository).clearTokensForClient(client);