@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || !(o instanceof Policy)) return false; PermissionTicket that = (PermissionTicket) o; return that.getId().equals(getId()); }
public static PermissionTicketEntity toEntity(EntityManager em, PermissionTicket permission) { if (permission instanceof PermissionTicketAdapter) { return ((PermissionTicketAdapter)permission).getEntity(); } else { return em.getReference(PermissionTicketEntity.class, permission.getId()); } }
@Override public String getId() { if (isUpdated()) return updated.getId(); return cached.getId(); }
@Override public List<PermissionTicket> findGranted(String userId, String resourceServerId) { String cacheKey = getPermissionTicketByGranted(userId, resourceServerId); return cacheQuery(cacheKey, PermissionTicketListQuery.class, () -> getPermissionTicketStoreDelegate().findGranted(userId, resourceServerId), (revision, permissions) -> new PermissionTicketListQuery(revision, cacheKey, permissions.stream().map(permission -> permission.getId()).collect(Collectors.toSet()), resourceServerId), resourceServerId); }
@Override public List<PermissionTicket> findByResource(String resourceId, String resourceServerId) { String cacheKey = getPermissionTicketByResource(resourceId, resourceServerId); return cacheQuery(cacheKey, PermissionTicketResourceListQuery.class, () -> getPermissionTicketStoreDelegate().findByResource(resourceId, resourceServerId), (revision, permissions) -> new PermissionTicketResourceListQuery(revision, cacheKey, resourceId, permissions.stream().map(permission -> permission.getId()).collect(Collectors.toSet()), resourceServerId), resourceServerId); }
@Override public List<PermissionTicket> findByScope(String scopeId, String resourceServerId) { String cacheKey = getPermissionTicketByScope(scopeId, resourceServerId); return cacheQuery(cacheKey, PermissionTicketScopeListQuery.class, () -> getPermissionTicketStoreDelegate().findByScope(scopeId, resourceServerId), (revision, permissions) -> new PermissionTicketScopeListQuery(revision, cacheKey, scopeId, permissions.stream().map(permission -> permission.getId()).collect(Collectors.toSet()), resourceServerId), resourceServerId); }
@Override public List<PermissionTicket> findByOwner(String owner, String resourceServerId) { String cacheKey = getPermissionTicketByOwner(owner, resourceServerId); return cacheQuery(cacheKey, PermissionTicketListQuery.class, () -> getPermissionTicketStoreDelegate().findByOwner(owner, resourceServerId), (revision, permissions) -> new PermissionTicketListQuery(revision, cacheKey, permissions.stream().map(permission -> permission.getId()).collect(Collectors.toSet()), resourceServerId), resourceServerId); }
@Override public void updateScopes(Set<Scope> scopes) { Resource updated = getDelegateForUpdate(); for (Scope scope : updated.getScopes()) { if (!scopes.contains(scope)) { PermissionTicketStore permissionStore = cacheSession.getPermissionTicketStore(); List<PermissionTicket> permissions = permissionStore.findByScope(scope.getId(), getResourceServer().getId()); for (PermissionTicket permission : permissions) { permissionStore.delete(permission.getId()); } } } PolicyStore policyStore = cacheSession.getPolicyStore(); for (Scope scope : updated.getScopes()) { if (!scopes.contains(scope)) { policyStore.findByResource(getId(), getResourceServer().getId(), policy -> policy.removeScope(scope)); } } cacheSession.registerResourceInvalidation(cached.getId(), cached.getName(), cached.getType(), cached.getUris(modelSupplier), scopes.stream().map(scope1 -> scope1.getId()).collect(Collectors.toSet()), cached.getResourceServerId(), cached.getOwner()); updated.updateScopes(scopes); }
@Override public PermissionTicket create(String resourceId, String scopeId, String requester, ResourceServer resourceServer) { PermissionTicket created = getPermissionTicketStoreDelegate().create(resourceId, scopeId, requester, resourceServer); registerPermissionTicketInvalidation(created.getId(), created.getOwner(), created.getRequester(), created.getResource().getId(), scopeId, created.getResourceServer().getId()); return created; }
public CachedPermissionTicket(Long revision, PermissionTicket permissionTicket) { super(revision, permissionTicket.getId()); this.owner = permissionTicket.getOwner(); requester = permissionTicket.getRequester(); this.resourceServerId = permissionTicket.getResourceServer().getId(); this.resourceId = permissionTicket.getResource().getId(); if (permissionTicket.getScope() != null) { this.scopeId = permissionTicket.getScope().getId(); } this.granted = permissionTicket.isGranted(); createdTimestamp = permissionTicket.getCreatedTimestamp(); grantedTimestamp = permissionTicket.getGrantedTimestamp(); Policy policy = permissionTicket.getPolicy(); if (policy != null) { this.policy = policy.getId(); } }