system scope ordering consistency
parent
173281f039
commit
c2b9fd4db1
|
@ -20,7 +20,7 @@ import javax.persistence.Table;
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "system_scope")
|
@Table(name = "system_scope")
|
||||||
@NamedQueries({
|
@NamedQueries({
|
||||||
@NamedQuery(name = "SystemScope.findAll", query = "select s from SystemScope s"),
|
@NamedQuery(name = "SystemScope.findAll", query = "select s from SystemScope s ORDER BY s.id"),
|
||||||
@NamedQuery(name = "SystemScope.getByValue", query = "select s from SystemScope s WHERE s.value = :value")
|
@NamedQuery(name = "SystemScope.getByValue", query = "select s from SystemScope s WHERE s.value = :value")
|
||||||
})
|
})
|
||||||
public class SystemScope {
|
public class SystemScope {
|
||||||
|
@ -29,9 +29,15 @@ public class SystemScope {
|
||||||
private String value; // scope value
|
private String value; // scope value
|
||||||
private String description; // human-readable description
|
private String description; // human-readable description
|
||||||
private String icon; // class of the icon to display on the auth page
|
private String icon; // class of the icon to display on the auth page
|
||||||
private boolean allowDynReg; // can a dynamically registered client ask for this scope?
|
private boolean allowDynReg = false; // can a dynamically registered client ask for this scope?
|
||||||
private boolean defaultScope; // is this a default scope for newly-registered clients?
|
private boolean defaultScope = false; // is this a default scope for newly-registered clients?
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param input
|
||||||
|
*/
|
||||||
|
public SystemScope(String value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* @return the id
|
* @return the id
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -15,8 +15,16 @@ public interface SystemScopeService {
|
||||||
|
|
||||||
public Set<SystemScope> getAll();
|
public Set<SystemScope> getAll();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all scopes that are defaulted to new clients on this system
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public Set<SystemScope> getDefaults();
|
public Set<SystemScope> getDefaults();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all scopes that are allowed for dynamic registration on this system
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public Set<SystemScope> getDynReg();
|
public Set<SystemScope> getDynReg();
|
||||||
|
|
||||||
public SystemScope getById(Long id);
|
public SystemScope getById(Long id);
|
||||||
|
@ -27,8 +35,18 @@ public interface SystemScopeService {
|
||||||
|
|
||||||
public SystemScope save(SystemScope scope);
|
public SystemScope save(SystemScope scope);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Translate the set of scope strings into a set of SystemScope objects.
|
||||||
|
* @param scope
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public Set<SystemScope> fromStrings(Set<String> scope);
|
public Set<SystemScope> fromStrings(Set<String> scope);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pluck the scope values from the set of SystemScope objects and return a list of strings
|
||||||
|
* @param scope
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
public Set<String> toStrings(Set<SystemScope> scope);
|
public Set<String> toStrings(Set<SystemScope> scope);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,12 +3,11 @@
|
||||||
*/
|
*/
|
||||||
package org.mitre.oauth2.repository.impl;
|
package org.mitre.oauth2.repository.impl;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
import javax.persistence.PersistenceContext;
|
import javax.persistence.PersistenceContext;
|
||||||
import javax.persistence.PersistenceUnit;
|
|
||||||
import javax.persistence.TypedQuery;
|
import javax.persistence.TypedQuery;
|
||||||
|
|
||||||
import org.mitre.oauth2.model.SystemScope;
|
import org.mitre.oauth2.model.SystemScope;
|
||||||
|
@ -37,7 +36,7 @@ public class JpaSystemScopeRepository implements SystemScopeRepository {
|
||||||
public Set<SystemScope> getAll() {
|
public Set<SystemScope> getAll() {
|
||||||
TypedQuery<SystemScope> query = em.createNamedQuery("SystemScope.findAll", SystemScope.class);
|
TypedQuery<SystemScope> query = em.createNamedQuery("SystemScope.findAll", SystemScope.class);
|
||||||
|
|
||||||
return new HashSet<SystemScope>(query.getResultList());
|
return new LinkedHashSet<SystemScope>(query.getResultList());
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
*/
|
*/
|
||||||
package org.mitre.oauth2.service.impl;
|
package org.mitre.oauth2.service.impl;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
@ -31,7 +31,6 @@ public class DefaultSystemScopeService implements SystemScopeService {
|
||||||
private SystemScopeRepository repository;
|
private SystemScopeRepository repository;
|
||||||
|
|
||||||
private Predicate<SystemScope> isDefault = new Predicate<SystemScope>() {
|
private Predicate<SystemScope> isDefault = new Predicate<SystemScope>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(@Nullable SystemScope input) {
|
public boolean apply(@Nullable SystemScope input) {
|
||||||
return (input != null && input.isDefaultScope());
|
return (input != null && input.isDefaultScope());
|
||||||
|
@ -40,7 +39,6 @@ public class DefaultSystemScopeService implements SystemScopeService {
|
||||||
|
|
||||||
|
|
||||||
private Predicate<SystemScope> isDynReg = new Predicate<SystemScope>() {
|
private Predicate<SystemScope> isDynReg = new Predicate<SystemScope>() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(@Nullable SystemScope input) {
|
public boolean apply(@Nullable SystemScope input) {
|
||||||
return (input != null && input.isAllowDynReg());
|
return (input != null && input.isAllowDynReg());
|
||||||
|
@ -50,7 +48,18 @@ public class DefaultSystemScopeService implements SystemScopeService {
|
||||||
private Function<String, SystemScope> stringToSystemScope = new Function<String, SystemScope>() {
|
private Function<String, SystemScope> stringToSystemScope = new Function<String, SystemScope>() {
|
||||||
@Override
|
@Override
|
||||||
public SystemScope apply(@Nullable String input) {
|
public SystemScope apply(@Nullable String input) {
|
||||||
return getByValue(input);
|
if (input == null) {
|
||||||
|
return null;
|
||||||
|
} else {
|
||||||
|
SystemScope s = getByValue(input);
|
||||||
|
if (s != null) {
|
||||||
|
// get the real scope if it's available
|
||||||
|
return s;
|
||||||
|
} else {
|
||||||
|
// make a fake one otherwise
|
||||||
|
return new SystemScope(input);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -130,7 +139,7 @@ public class DefaultSystemScopeService implements SystemScopeService {
|
||||||
if (scope == null) {
|
if (scope == null) {
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
return new HashSet<SystemScope>(Collections2.filter(Collections2.transform(scope, stringToSystemScope), Predicates.notNull()));
|
return new LinkedHashSet<SystemScope>(Collections2.filter(Collections2.transform(scope, stringToSystemScope), Predicates.notNull()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,7 +151,7 @@ public class DefaultSystemScopeService implements SystemScopeService {
|
||||||
if (scope == null) {
|
if (scope == null) {
|
||||||
return null;
|
return null;
|
||||||
} else {
|
} else {
|
||||||
return new HashSet<String>(Collections2.filter(Collections2.transform(scope, systemScopeToString), Predicates.notNull()));
|
return new LinkedHashSet<String>(Collections2.filter(Collections2.transform(scope, systemScopeToString), Predicates.notNull()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue