Class SQLPermissionStore<V extends Permission>
- java.lang.Object
-
- edu.uiuc.ncsa.security.storage.sql.SQLDatabase
-
- edu.uiuc.ncsa.security.storage.sql.SQLStore<V>
-
- org.oa4mp.server.api.admin.permissions.SQLPermissionStore<V>
-
- All Implemented Interfaces:
edu.uiuc.ncsa.security.core.Store<V>,Map<edu.uiuc.ncsa.security.core.Identifier,V>,PermissionsStore<V>
public class SQLPermissionStore<V extends Permission> extends edu.uiuc.ncsa.security.storage.sql.SQLStore<V> implements PermissionsStore<V>
Created by Jeff Gaynor
on 10/13/16 at 3:58 PM
-
-
Field Summary
Fields Modifier and Type Field Description static StringDEFAULT_TABLENAME
-
Constructor Summary
Constructors Constructor Description SQLPermissionStore()SQLPermissionStore(edu.uiuc.ncsa.security.storage.sql.ConnectionPool connectionPool, edu.uiuc.ncsa.security.storage.sql.internals.Table table, javax.inject.Provider<V> identifiableProvider, edu.uiuc.ncsa.security.storage.data.MapConverter<V> converter)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PermissionListget(edu.uiuc.ncsa.security.core.Identifier adminID, edu.uiuc.ncsa.security.core.Identifier clientID)Retrieve a permission from the admin and client identifier.List<edu.uiuc.ncsa.security.core.Identifier>getAdmins(edu.uiuc.ncsa.security.core.Identifier clientID)A list of all admin ids for a given client.List<Permission>getByAdminID(edu.uiuc.ncsa.security.core.Identifier adminID)List<Permission>getByClientID(edu.uiuc.ncsa.security.core.Identifier clientID)List<Permission>getByErsatzID(edu.uiuc.ncsa.security.core.Identifier ersatzID)Since the ersatz chains is a list of identifiers, best we can do is find whatever has the id using SQL LIKE.protected List<Permission>getByID(String colName, edu.uiuc.ncsa.security.core.Identifier adminID)intgetClientCount(edu.uiuc.ncsa.security.core.Identifier adminID)List<edu.uiuc.ncsa.security.core.Identifier>getClients(edu.uiuc.ncsa.security.core.Identifier adminID)A list of all identifiers that a given admin can manage.StringgetCreationTSField()PermissiongetErsatzChain(edu.uiuc.ncsa.security.core.Identifier adminID, edu.uiuc.ncsa.security.core.Identifier clientID, edu.uiuc.ncsa.security.core.Identifier ersatzID)Get the specific permission with the chain starting with clientID and ending with ersatzID.PermissionListgetErsatzChains(edu.uiuc.ncsa.security.core.Identifier adminID, edu.uiuc.ncsa.security.core.Identifier clientID)Returns the chain of ersatz clients for a given admin and provisioning client.PermissionListgetProvisioners(edu.uiuc.ncsa.security.core.Identifier adminID, edu.uiuc.ncsa.security.core.Identifier ersatzID)booleanhasEntry(edu.uiuc.ncsa.security.core.Identifier adminID, edu.uiuc.ncsa.security.core.Identifier clientID)Returns whether or not there is an entry for this pair of identifiers.-
Methods inherited from class edu.uiuc.ncsa.security.storage.sql.SQLStore
checkColumns, checkTable, clear, containsKey, containsValue, crappySQLParser, crappySQLParser, create, depopulate, doRegisterStatement, entrySet, get, getAll, getDerbyMostRecent, getMapConverter, getMostRecent, getMostRecentStatement, getTable, getXMLConverter, isEmpty, keySet, populate, put, putAll, register, remove, remove, removeByID, save, search, search, search, search, setUpdateValues, size, size, size, toString, update, update, update, values
-
Methods inherited from class edu.uiuc.ncsa.security.storage.sql.SQLDatabase
destroyConnection, getConnection, getConnectionPool, releaseConnection, rsToMap, setConnectionPool
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.util.Map
clear, compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, replaceAll, size, values
-
Methods inherited from interface org.oa4mp.server.api.admin.permissions.PermissionsStore
getMapConverter
-
-
-
-
Field Detail
-
DEFAULT_TABLENAME
public static String DEFAULT_TABLENAME
-
-
Method Detail
-
getCreationTSField
public String getCreationTSField()
- Specified by:
getCreationTSFieldin classedu.uiuc.ncsa.security.storage.sql.SQLStore<V extends Permission>
-
get
public PermissionList get(edu.uiuc.ncsa.security.core.Identifier adminID, edu.uiuc.ncsa.security.core.Identifier clientID)
Description copied from interface:PermissionsStoreRetrieve a permission from the admin and client identifier.- Specified by:
getin interfacePermissionsStore<V extends Permission>- Returns:
-
getProvisioners
public PermissionList getProvisioners(edu.uiuc.ncsa.security.core.Identifier adminID, edu.uiuc.ncsa.security.core.Identifier ersatzID)
- Specified by:
getProvisionersin interfacePermissionsStore<V extends Permission>
-
getErsatzChains
public PermissionList getErsatzChains(edu.uiuc.ncsa.security.core.Identifier adminID, edu.uiuc.ncsa.security.core.Identifier clientID)
Description copied from interface:PermissionsStoreReturns the chain of ersatz clients for a given admin and provisioning client. Access the list usingPermission.getErsatzChain().- Specified by:
getErsatzChainsin interfacePermissionsStore<V extends Permission>- Returns:
-
getErsatzChain
public Permission getErsatzChain(edu.uiuc.ncsa.security.core.Identifier adminID, edu.uiuc.ncsa.security.core.Identifier clientID, edu.uiuc.ncsa.security.core.Identifier ersatzID)
Description copied from interface:PermissionsStoreGet the specific permission with the chain starting with clientID and ending with ersatzID.- Specified by:
getErsatzChainin interfacePermissionsStore<V extends Permission>- Returns:
-
getClientCount
public int getClientCount(edu.uiuc.ncsa.security.core.Identifier adminID)
- Specified by:
getClientCountin interfacePermissionsStore<V extends Permission>
-
getClients
public List<edu.uiuc.ncsa.security.core.Identifier> getClients(edu.uiuc.ncsa.security.core.Identifier adminID)
Description copied from interface:PermissionsStoreA list of all identifiers that a given admin can manage.- Specified by:
getClientsin interfacePermissionsStore<V extends Permission>- Returns:
-
getAdmins
public List<edu.uiuc.ncsa.security.core.Identifier> getAdmins(edu.uiuc.ncsa.security.core.Identifier clientID)
Description copied from interface:PermissionsStoreA list of all admin ids for a given client.- Specified by:
getAdminsin interfacePermissionsStore<V extends Permission>- Returns:
-
hasEntry
public boolean hasEntry(edu.uiuc.ncsa.security.core.Identifier adminID, edu.uiuc.ncsa.security.core.Identifier clientID)Description copied from interface:PermissionsStoreReturns whether or not there is an entry for this pair of identifiers. There is at most one permission for any such pair- Specified by:
hasEntryin interfacePermissionsStore<V extends Permission>- Returns:
-
getByAdminID
public List<Permission> getByAdminID(edu.uiuc.ncsa.security.core.Identifier adminID)
- Specified by:
getByAdminIDin interfacePermissionsStore<V extends Permission>
-
getByClientID
public List<Permission> getByClientID(edu.uiuc.ncsa.security.core.Identifier clientID)
- Specified by:
getByClientIDin interfacePermissionsStore<V extends Permission>
-
getByErsatzID
public List<Permission> getByErsatzID(edu.uiuc.ncsa.security.core.Identifier ersatzID)
Since the ersatz chains is a list of identifiers, best we can do is find whatever has the id using SQL LIKE. This is not 100% accurate, so the lists have to be checked subsequently, but will certainly get everything needed.- Specified by:
getByErsatzIDin interfacePermissionsStore<V extends Permission>- Parameters:
ersatzID-- Returns:
-
getByID
protected List<Permission> getByID(String colName, edu.uiuc.ncsa.security.core.Identifier adminID)
-
-