renamed RequiredClaimSet to Policy

pull/820/merge
Justin Richer 2015-06-29 11:15:45 -04:00
parent b8a5486995
commit 2cfaa1c1d7
8 changed files with 31 additions and 29 deletions

View File

@ -42,8 +42,8 @@ import javax.persistence.Table;
* *
*/ */
@Entity @Entity
@Table(name = "required_claim_set") @Table(name = "policy")
public class RequiredClaimSet { public class Policy {
private Long id; private Long id;
private String name; private String name;
@ -88,8 +88,8 @@ public class RequiredClaimSet {
*/ */
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinTable( @JoinTable(
name = "claim_to_claim_set", name = "claim_to_policy",
joinColumns = @JoinColumn(name = "required_claim_set_id"), joinColumns = @JoinColumn(name = "policy_id"),
inverseJoinColumns = @JoinColumn(name = "claim_id") inverseJoinColumns = @JoinColumn(name = "claim_id")
) )
public Collection<Claim> getClaimsRequired() { public Collection<Claim> getClaimsRequired() {
@ -109,7 +109,7 @@ public class RequiredClaimSet {
@ElementCollection(fetch = FetchType.EAGER) @ElementCollection(fetch = FetchType.EAGER)
@Column(name = "scope") @Column(name = "scope")
@CollectionTable( @CollectionTable(
name = "resource_set_scope", name = "policy_scope",
joinColumns = @JoinColumn(name = "owner_id") joinColumns = @JoinColumn(name = "owner_id")
) )
public Set<String> getScopes() { public Set<String> getScopes() {

View File

@ -59,7 +59,7 @@ public class ResourceSet {
private String owner; // username of the person responsible for the registration (either directly or via OAuth token) 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 String clientId; // client id of the protected resource that registered this resource set via OAuth token
private Collection<RequiredClaimSet> requiredClaimSets; private Collection<Policy> policies;
/** /**
* @return the id * @return the id
@ -199,15 +199,15 @@ public class ResourceSet {
*/ */
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER) @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@JoinColumn(name = "resource_set_id") @JoinColumn(name = "resource_set_id")
public Collection<RequiredClaimSet> getRequiredClaimSets() { public Collection<Policy> getPolicies() {
return requiredClaimSets; return policies;
} }
/** /**
* @param claimsRequired the claimsRequired to set * @param policies the claimsRequired to set
*/ */
public void setRequiredClaimSets(Collection<RequiredClaimSet> claimsRequired) { public void setPolicies(Collection<Policy> policies) {
this.requiredClaimSets = claimsRequired; this.policies = policies;
} }

View File

@ -20,7 +20,7 @@ package org.mitre.uma.service;
import java.util.Collection; import java.util.Collection;
import org.mitre.uma.model.Claim; import org.mitre.uma.model.Claim;
import org.mitre.uma.model.RequiredClaimSet; import org.mitre.uma.model.Policy;
/** /**
* *
@ -41,6 +41,6 @@ public interface ClaimsProcessingService {
* @param claimsSupplied the supplied claims to test * @param claimsSupplied the supplied claims to test
* @return the unmatched claims (if any), an empty set if the claims are satisfied, never null * @return the unmatched claims (if any), an empty set if the claims are satisfied, never null
*/ */
public Collection<Claim> claimsAreSatisfied(Collection<RequiredClaimSet> claimsRequired, Collection<Claim> claimsSupplied); public Collection<Claim> claimsAreSatisfied(Collection<Policy> claimsRequired, Collection<Claim> claimsSupplied);
} }

View File

@ -315,8 +315,8 @@ CREATE TABLE IF NOT EXISTS claim (
claim_value VARCHAR(1024), claim_value VARCHAR(1024),
); );
CREATE TABLE IF NOT EXISTS claim_to_claim_set ( CREATE TABLE IF NOT EXISTS claim_to_policy (
required_claim_set_id BIGINT NOT NULL, policy_id BIGINT NOT NULL,
claim_id BIGINT NOT NULL claim_id BIGINT NOT NULL
); );
@ -325,13 +325,13 @@ CREATE TABLE IF NOT EXISTS claim_to_permission_ticket (
claim_id BIGINT NOT NULL claim_id BIGINT NOT NULL
); );
CREATE TABLE IF NOT EXISTS required_claim_set ( CREATE TABLE IF NOT EXISTS policy (
id BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) PRIMARY KEY, id BIGINT GENERATED BY DEFAULT AS IDENTITY(START WITH 1) PRIMARY KEY,
name VARCHAR(1024), name VARCHAR(1024),
resource_set_id BIGINT resource_set_id BIGINT
); );
CREATE TABLE IF NOT EXISTS required_claim_set_scope ( CREATE TABLE IF NOT EXISTS policy_scope (
owner_id BIGINT NOT NULL, owner_id BIGINT NOT NULL,
scope VARCHAR(256) NOT NULL scope VARCHAR(256) NOT NULL
); );

View File

@ -21,7 +21,7 @@ import java.util.Collection;
import java.util.HashSet; import java.util.HashSet;
import org.mitre.uma.model.Claim; import org.mitre.uma.model.Claim;
import org.mitre.uma.model.RequiredClaimSet; import org.mitre.uma.model.Policy;
import org.mitre.uma.service.ClaimsProcessingService; import org.mitre.uma.service.ClaimsProcessingService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -39,10 +39,10 @@ public class MatchAllClaimsProcessor implements ClaimsProcessingService {
* @see org.mitre.uma.service.ClaimsProcessingService#claimsAreSatisfied(java.util.Collection, java.util.Collection) * @see org.mitre.uma.service.ClaimsProcessingService#claimsAreSatisfied(java.util.Collection, java.util.Collection)
*/ */
@Override @Override
public Collection<Claim> claimsAreSatisfied(Collection<RequiredClaimSet> claimsRequired, Collection<Claim> claimsSupplied) { public Collection<Claim> claimsAreSatisfied(Collection<Policy> claimsRequired, Collection<Claim> claimsSupplied) {
Collection<Claim> allUnmatched = new HashSet<>(); Collection<Claim> allUnmatched = new HashSet<>();
for (RequiredClaimSet requiredClaimSet : claimsRequired) { for (Policy policy : claimsRequired) {
Collection<Claim> unmatched = checkIndividualClaims(requiredClaimSet.getClaimsRequired(), claimsSupplied); Collection<Claim> unmatched = checkIndividualClaims(policy.getClaimsRequired(), claimsSupplied);
if (unmatched.isEmpty()) { if (unmatched.isEmpty()) {
// we found something that's satisfied the claims, let's go with it! // we found something that's satisfied the claims, let's go with it!
return unmatched; return unmatched;

View File

@ -131,7 +131,7 @@ public class AuthorizationRequestEndpoint {
ResourceSet rs = ticket.getPermission().getResourceSet(); ResourceSet rs = ticket.getPermission().getResourceSet();
if (rs.getRequiredClaimSets() == null || rs.getRequiredClaimSets().isEmpty()) { if (rs.getPolicies() == null || rs.getPolicies().isEmpty()) {
// the required claims are empty, this resource has no way to be authorized // the required claims are empty, this resource has no way to be authorized
m.addAttribute(JsonErrorView.ERROR, "not_authorized"); m.addAttribute(JsonErrorView.ERROR, "not_authorized");
@ -141,7 +141,9 @@ public class AuthorizationRequestEndpoint {
} else { } else {
// claims weren't empty or missing, we need to check against what we have // claims weren't empty or missing, we need to check against what we have
Collection<Claim> claimsUnmatched = claimsProcessingService.claimsAreSatisfied(rs.getRequiredClaimSets(), ticket.getClaimsSupplied()); Collection<Claim> claimsUnmatched = claimsProcessingService.claimsAreSatisfied(rs.getPolicies(), ticket.getClaimsSupplied());
// we need to downscope this based on the required set that was matched if it was matched
if (claimsUnmatched.isEmpty()) { if (claimsUnmatched.isEmpty()) {
// if the unmatched claims come back empty, by function contract that means we're happy and can issue a token // if the unmatched claims come back empty, by function contract that means we're happy and can issue a token

View File

@ -26,7 +26,7 @@ import org.mitre.openid.connect.view.JsonEntityView;
import org.mitre.openid.connect.view.JsonErrorView; import org.mitre.openid.connect.view.JsonErrorView;
import org.mitre.openid.connect.web.RootController; import org.mitre.openid.connect.web.RootController;
import org.mitre.uma.model.Claim; import org.mitre.uma.model.Claim;
import org.mitre.uma.model.RequiredClaimSet; import org.mitre.uma.model.Policy;
import org.mitre.uma.model.ResourceSet; import org.mitre.uma.model.ResourceSet;
import org.mitre.uma.service.ResourceSetService; import org.mitre.uma.service.ResourceSetService;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -98,7 +98,7 @@ public class ClaimsAPI {
return HttpCodeView.VIEWNAME; return HttpCodeView.VIEWNAME;
} }
m.addAttribute(JsonEntityView.ENTITY, rs.getRequiredClaimSets()); m.addAttribute(JsonEntityView.ENTITY, rs.getPolicies());
return JsonEntityView.VIEWNAME; return JsonEntityView.VIEWNAME;
} }
@ -126,7 +126,7 @@ public class ClaimsAPI {
resourceSetService.update(rs, rs); resourceSetService.update(rs, rs);
m.addAttribute(JsonEntityView.ENTITY, rs.getRequiredClaimSets()); m.addAttribute(JsonEntityView.ENTITY, rs.getPolicies());
return JsonEntityView.VIEWNAME; return JsonEntityView.VIEWNAME;
} }

View File

@ -29,7 +29,7 @@ import org.mitre.openid.connect.view.HttpCodeView;
import org.mitre.openid.connect.view.JsonEntityView; import org.mitre.openid.connect.view.JsonEntityView;
import org.mitre.openid.connect.view.JsonErrorView; import org.mitre.openid.connect.view.JsonErrorView;
import org.mitre.uma.model.Claim; import org.mitre.uma.model.Claim;
import org.mitre.uma.model.RequiredClaimSet; import org.mitre.uma.model.Policy;
import org.mitre.uma.model.ResourceSet; import org.mitre.uma.model.ResourceSet;
import org.mitre.uma.service.ResourceSetService; import org.mitre.uma.service.ResourceSetService;
import org.mitre.uma.view.ResourceSetEntityAbbreviatedView; import org.mitre.uma.view.ResourceSetEntityAbbreviatedView;
@ -139,11 +139,11 @@ public class ResourceSetRegistrationEndpoint {
ev.setValue(true); ev.setValue(true);
claims.add(e); claims.add(e);
*/ */
RequiredClaimSet reqired = new RequiredClaimSet(); Policy reqired = new Policy();
reqired.setScopes(rs.getScopes()); reqired.setScopes(rs.getScopes());
reqired.setClaimsRequired(claims); reqired.setClaimsRequired(claims);
rs.setRequiredClaimSets(Sets.newHashSet(reqired)); rs.setPolicies(Sets.newHashSet(reqired));
//// ////
//// END TEMP //// END TEMP
//// ////