public abstract class NamingResolverDecorator extends Object implements NamingResolver
NamingResolver.
| Constructor and Description |
|---|
NamingResolverDecorator(NamingResolver resolver) |
| Modifier and Type | Method and Description |
|---|---|
void |
flushCache()
flush cache if caching resolver
|
NamingResolver |
getDecoratedResolver() |
GrouperSession |
getGrouperSession()
get a reference to the session
|
Set<NamingPrivilege> |
getPrivileges(Stem stem,
Subject subject)
Get all privileges subject has on group.
|
Set<Stem> |
getStemsWhereSubjectDoesHavePrivilege(String stemId,
Stem.Scope scope,
Subject subject,
Privilege privilege,
boolean considerAllSubject,
String sqlLikeString)
find the stems which do have a certain privilege
|
Set<Stem> |
getStemsWhereSubjectDoesntHavePrivilege(String stemId,
Stem.Scope scope,
Subject subject,
Privilege privilege,
boolean considerAllSubject,
String sqlLikeString)
find the stems which do not have a certain privilege
|
Set<Stem> |
getStemsWhereSubjectHasPrivilege(Subject subject,
Privilege privilege)
Get all groups where subject has privilege.
|
Set<Subject> |
getSubjectsWithPrivilege(Stem stem,
Privilege privilege)
Get all subjects with privilege on group.
|
void |
grantPrivilege(Stem stem,
Subject subject,
Privilege privilege,
String uuid)
Grant privilege to subject on group.
|
boolean |
hasPrivilege(Stem stem,
Subject subject,
Privilege privilege)
Check whether subject has privilege on group.
|
boolean |
hqlFilterStemsNotWithPrivWhereClause(Subject subject,
HqlQuery hqlQuery,
StringBuilder hql,
String stemColumn,
Privilege privilege,
boolean considerAllSubject)
for a stem query, check to make sure the subject doesnt have privs
|
boolean |
hqlFilterStemsWhereClause(Subject subject,
HqlQuery hqlQuery,
StringBuilder hql,
String stemColumn,
Set<Privilege> privInSet)
for a stem query, check to make sure the subject can see the records (if filtering HQL, you can do
the postHqlFilterGroups instead if you like).
|
boolean |
hqlFilterStemsWithPrivWhereClause(Subject subject,
HqlQuery hqlQuery,
StringBuilder hql,
String stemColumn,
Privilege privilege,
boolean considerAllSubject)
for a stem query, check to make sure the subject has privs
|
Set<Stem> |
postHqlFilterStems(Set<Stem> stems,
Subject subject,
Set<Privilege> privInSet)
after HQL is run, filter stems.
|
void |
privilegeCopy(Stem stem1,
Stem stem2,
Privilege priv)
Copies privileges for subjects that have the specified privilege on stem1 to stem2.
|
void |
privilegeCopy(Subject subj1,
Subject subj2,
Privilege priv)
Copies privileges of type priv on any subject for the given Subject subj1 to the given Subject subj2.
|
void |
revokeAllPrivilegesForSubject(Subject subject)
Revoke all naming privileges that this subject has.
|
void |
revokePrivilege(Stem stem,
Privilege privilege)
Revoke privilege from all subjects on group.
|
void |
revokePrivilege(Stem stem,
Subject subject,
Privilege privilege)
Revoke privilege from subject on group.
|
void |
stop()
clean up resources, session is stopped
|
public NamingResolverDecorator(NamingResolver resolver) throws IllegalArgumentException
resolver - NamingResolver to decorate.IllegalArgumentException - if resolver is null.public void flushCache()
NamingResolverflushCache in interface NamingResolverNamingResolver.flushCache()public NamingResolver getDecoratedResolver() throws IllegalStateException
IllegalStateException - if no decorated NamingResolver.public GrouperSession getGrouperSession()
NamingResolvergetGrouperSession in interface NamingResolverNamingResolver.getGrouperSession()public Set<NamingPrivilege> getPrivileges(Stem stem, Subject subject) throws IllegalArgumentException
NamingResolvergetPrivileges in interface NamingResolverIllegalArgumentException - if any parameter is null.NamingResolver.getPrivileges(edu.internet2.middleware.grouper.Stem, edu.internet2.middleware.subject.Subject)public Set<Stem> getStemsWhereSubjectHasPrivilege(Subject subject, Privilege privilege) throws IllegalArgumentException
NamingResolvergetStemsWhereSubjectHasPrivilege in interface NamingResolverIllegalArgumentException - if any parameter is null.NamingResolver.getStemsWhereSubjectHasPrivilege(edu.internet2.middleware.subject.Subject, edu.internet2.middleware.grouper.privs.Privilege)public Set<Subject> getSubjectsWithPrivilege(Stem stem, Privilege privilege) throws IllegalArgumentException
NamingResolvergetSubjectsWithPrivilege in interface NamingResolverIllegalArgumentException - if any parameter is null.NamingResolver.getSubjectsWithPrivilege(edu.internet2.middleware.grouper.Stem, edu.internet2.middleware.grouper.privs.Privilege)public void grantPrivilege(Stem stem, Subject subject, Privilege privilege, String uuid) throws IllegalArgumentException, UnableToPerformException
NamingResolvergrantPrivilege in interface NamingResolveruuid - if known or nullIllegalArgumentException - if any parameter is null.UnableToPerformException - if the privilege could not be granted.NamingResolver.grantPrivilege(edu.internet2.middleware.grouper.Stem, edu.internet2.middleware.subject.Subject, edu.internet2.middleware.grouper.privs.Privilege, String)public boolean hasPrivilege(Stem stem, Subject subject, Privilege privilege) throws IllegalArgumentException
NamingResolverhasPrivilege in interface NamingResolverIllegalArgumentException - if any parameter is null.NamingResolver.hasPrivilege(edu.internet2.middleware.grouper.Stem, edu.internet2.middleware.subject.Subject, edu.internet2.middleware.grouper.privs.Privilege)public boolean hqlFilterStemsWhereClause(Subject subject, HqlQuery hqlQuery, StringBuilder hql, String stemColumn, Set<Privilege> privInSet)
NamingResolverhqlFilterStemsWhereClause in interface NamingResolversubject - which needs view access to the groupshql - is the select and part part (hql prefix)stemColumn - is the name of the stem column to join toprivInSet - find a privilege which is in this set
(e.g. for view, send all access privs). There are pre-canned sets in AccessAdapterNamingResolver.hqlFilterStemsWhereClause(edu.internet2.middleware.subject.Subject, edu.internet2.middleware.grouper.hibernate.HqlQuery, java.lang.StringBuilder, java.lang.String, java.util.Set)public Set<Stem> postHqlFilterStems(Set<Stem> stems, Subject subject, Set<Privilege> privInSet)
NamingResolverpostHqlFilterStems in interface NamingResolversubject - which needs view access to the groupsprivInSet - find a privilege which is in this set
(e.g. for view, send all access privs). There are pre-canned sets in NamingPrivilegeNamingResolver.postHqlFilterStems(java.util.Set, edu.internet2.middleware.subject.Subject, java.util.Set)public void privilegeCopy(Stem stem1, Stem stem2, Privilege priv) throws IllegalArgumentException, UnableToPerformException
NamingResolverpublic void privilegeCopy(Subject subj1, Subject subj2, Privilege priv) throws IllegalArgumentException, UnableToPerformException
NamingResolverpublic void revokeAllPrivilegesForSubject(Subject subject)
NamingResolverrevokeAllPrivilegesForSubject in interface NamingResolverNamingResolver.revokeAllPrivilegesForSubject(edu.internet2.middleware.subject.Subject)public void revokePrivilege(Stem stem, Privilege privilege) throws IllegalArgumentException, UnableToPerformException
NamingResolverrevokePrivilege in interface NamingResolverIllegalArgumentException - if any parameter is null.UnableToPerformException - if the privilege could not be revoked.NamingResolver.revokePrivilege(edu.internet2.middleware.grouper.Stem, edu.internet2.middleware.grouper.privs.Privilege)public void revokePrivilege(Stem stem, Subject subject, Privilege privilege) throws IllegalArgumentException, UnableToPerformException
NamingResolverrevokePrivilege in interface NamingResolverIllegalArgumentException - if any parameter is null.UnableToPerformException - if the privilege could not be revoked.NamingResolver.revokePrivilege(edu.internet2.middleware.grouper.Stem, edu.internet2.middleware.subject.Subject, edu.internet2.middleware.grouper.privs.Privilege)public void stop()
NamingResolverstop in interface NamingResolverNamingResolver.stop()public Set<Stem> getStemsWhereSubjectDoesntHavePrivilege(String stemId, Stem.Scope scope, Subject subject, Privilege privilege, boolean considerAllSubject, String sqlLikeString)
NamingResolvergetStemsWhereSubjectDoesntHavePrivilege in interface NamingResolverNamingResolver#getStemsWhereSubjectDoesntHavePrivilege(String, Scope, Subject, Privilege, boolean, String)public boolean hqlFilterStemsNotWithPrivWhereClause(Subject subject, HqlQuery hqlQuery, StringBuilder hql, String stemColumn, Privilege privilege, boolean considerAllSubject)
NamingResolverhqlFilterStemsNotWithPrivWhereClause in interface NamingResolversubject - which needs view access to the groupshql - the select and current from partstemColumn - is the name of the group column to join toprivilege - find a privilege which is in this set (e.g. stem or create)considerAllSubject - if true, then consider GrouperAll when seeign if subject has priv, else do notedu.internet2.middleware.grouper.privs.NamingResolver#hqlFilterStemsWhereClause(edu.internet2.middleware.subject.Subject, edu.internet2.middleware.grouper.hibernate.HqlQuery, java.lang.StringBuilder, java.lang.String, Privilege)public Set<Stem> getStemsWhereSubjectDoesHavePrivilege(String stemId, Stem.Scope scope, Subject subject, Privilege privilege, boolean considerAllSubject, String sqlLikeString)
NamingResolvergetStemsWhereSubjectDoesHavePrivilege in interface NamingResolverNamingResolver#getStemsWhereSubjectDoesHavePrivilege(String, Scope, Subject, Privilege, boolean, String)public boolean hqlFilterStemsWithPrivWhereClause(Subject subject, HqlQuery hqlQuery, StringBuilder hql, String stemColumn, Privilege privilege, boolean considerAllSubject)
NamingResolverhqlFilterStemsWithPrivWhereClause in interface NamingResolversubject - which needs view access to the groupshql - the select and current from partstemColumn - is the name of the group column to join toprivilege - find a privilege which is in this set (e.g. stem or create)considerAllSubject - if true, then consider GrouperAll when seeign if subject has priv, else do notNamingResolver.hqlFilterStemsWithPrivWhereClause(Subject, HqlQuery, StringBuilder, String, Privilege, boolean)Copyright © 2016 Internet2. All rights reserved.