Class DefaultGlobalContext
- All Implemented Interfaces:
GlobalContext
This class implements the GlobalContext
interface and is already deployed at the Permissioning Auth Module.
The methods of this class allow the Permissioning Auth Module to add data to the GlobalContext
and to remove data from the GlobalContext
. A custom
SubjectMapper
can also call one of the get()
methods of this class to retrieve data from the GlobalContext
.
You can also write a custom class that extends DefaultGlobalContext
to provide additional methods that a custom SubjectMapper
can call. If you write
a custom GlobalContext
, the class must be available on the classpath of the Permissioning Auth Module. It does not need to be deployed on the classpath of the
PermissioningDataSource
, as the PermissioningDataSource
never loads the GlobalContext
.
The document Caplin Xaqua: How To Create A Permissioning DataSource describes how to write, deploy, and configure a custom GlobalContext
, and is included in the
Permissioning DataSource kit.
The Global Context and Multiple Permissioning DataSources
Note that there is only one GlobalContext
at the Permissioning Auth Module, either the DefaultGlobalContext
or a custom GlobalContext
, and it
is shared by every PermissioningDataSource
. Therefore if you have more than one PermissioningDataSource
, make sure they do not overwrite each other's data.
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionReturns theMap
of key-value pairs that are saved for the passed inidentifier
.Returns the value that is saved for the passed inidentifier
andkey
.void
Removes from theGlobalContext
, the passed inidentifier
and theMap
of key-value pairs for thatidentifier
.void
Saves the passed inidentifier
anddata
, and makes the data available to theget()
methods of this interface.
-
Field Details
-
data
-
-
Constructor Details
-
DefaultGlobalContext
public DefaultGlobalContext()Creates a new emptyDefaultGlobalContext
.
-
-
Method Details
-
update
Saves the passed in
identifier
anddata
, and makes the data available to theget()
methods of this interface.If data has already been saved for this
identifier
, the method adds the key-value pairs indata
to the saved data. If a key indata
has already been saved for thisidentifier
, the new value for the key replaces the old value.The method is called by the Permissioning Auth Module when data for the
GlobalContext
is received from aPermissioningDataSource
. APermissioningDataSource
sends theidentifier
anddata
to the Permissioning Auth Module when it callsupdateGlobalContext()
as part of a transaction.- Specified by:
update
in interfaceGlobalContext
- Parameters:
identifier
- AString
that identifies the passed indata
.data
- AMap
of key-value pairs for the passed inidentifier
.
-
get
Returns the
Map
of key-value pairs that are saved for the passed inidentifier
. This method is typically called by themapSubject()
method of a customSubjectMapper
.- Specified by:
get
in interfaceGlobalContext
- Parameters:
identifier
- AString
that identifies theMap
to be returned.- Returns:
- the
Map
of key-value pairs for the passed inidentifier
, ornull
if noMap
has been saved for thisidentifier
.
-
get
Returns the value that is saved for the passed in
identifier
andkey
. This method is typically called by themapSubject()
method of a customSubjectMapper
.A call to this method is equivalent to calling
get(identifier)
, and then callingget(key)
on the returnedMap
of key-value pairs.- Specified by:
get
in interfaceGlobalContext
- Parameters:
identifier
- AString
that identifies theMap
of key-value pairs.key
- A key that identifies the value to be returned.- Returns:
- the value that is saved for the passed in
identifier
andkey
, ornull
if no value has been saved for thisidentifier
andkey
.
-
remove
Removes from the
GlobalContext
, the passed inidentifier
and theMap
of key-value pairs for thatidentifier
. This method is called by the Permissioning Auth Module when aPermissioningDataSource
callsremoveGlobalContextData()
as part of a transaction.The method does not remove any data from the GlobalContext if there is no Map for this identifier.
- Specified by:
remove
in interfaceGlobalContext
- Parameters:
identifier
- AString
that identifies theMap
to be removed
-