|
Expresso 5-6 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectcom.jcorporate.expresso.core.dataobjects.BaseDataObject
com.jcorporate.expresso.core.dataobjects.jdbc.JDBCDataObject
com.jcorporate.expresso.core.dbobj.DBObject
com.jcorporate.expresso.core.dbobj.SecuredDBObject
com.jcorporate.expresso.services.dbobj.SecurityDBObject
SecurityDBObject.java this object provides a means to control the DB context via Setup values. subclasses will ignore any context except that found in Setup. You probably will never create a subclass of SecurityDBObject yourself--it is a framework tool embedded in the Expresso security system. The idea is to provide a flexible way to redirect authentication classes to another database context. For example, consider a situation where there are two Expresso applications, and you wanted the second application to rely on the first in order to authenticate users and otherwise supply user information. The following classes extend SecurityDBObject in Expresso:
SecurityDBObject provides a means to control the DB context (for some or all of the classes listed above) via Setup values. Two Setup values are important for SecurityDBObject: SecurityDB -- Database to use for User/Group Security Info SecurityDBObjs -- Database Objects that should use the 'fixed' context found in the SecurityDB parameter
If these Setup values are empty, SecurityDBObject does nothing special. However, if these 2 Setup values contain meaningful info, subclasses of SecurityDBObject may ignore any DB context supplied (e.g., they can ignore a context like 'default' that comes from the ControllerRequest). The logic is two-fold: the Setup value SecurityDB must be filled, AND the Setup value SecurityDBObjs must contain the fully-qualified class name of all objects (from the list of SecurityDBObject subclasses listed above) that will use the 'fixed' context value in Setup value SecurityDB. That's a bit tricky, so to repeat: even though all the security classes listed above are instances of SecurityDBObject, each one will use the fixed context only if that individual class is also listed in the Setup value, SecurityDBObjs. This scheme is useful in at least one case: one primary Expresso application supplying User information to a secondary Expresso application. LIMITATION: user info and group membership changed on the primary, UserInfo application will not trigger a cache cleaning on the secondary system. So when these memberships are changed, manually clean the cache on the secondary system via admin pages, or by restarting.As always, this sample may not be representative of your needs, so attempt this only with caution and a single-step debugger handy.
| Nested Class Summary |
| Nested classes inherited from class com.jcorporate.expresso.core.dbobj.DBObject |
DBObject.FieldError, DBObject.FieldUpdate |
| Field Summary | |
static String |
SECURITY_CONTEXT
|
static String |
SECURITY_OBJECTS
|
| Fields inherited from class com.jcorporate.expresso.core.dbobj.SecuredDBObject |
ADD, ALL_FUNCTIONS, CACHE_NAME, CACHE_TTY, DELETE, SEARCH, SYSTEM_ACCOUNT, SYSTEM_ACCOUNT_NAME, UPDATE |
| Fields inherited from class com.jcorporate.expresso.core.dbobj.DBObject |
ATTRIBUTE_ERROR, ATTRIBUTE_ERROR_MESSAGE, ATTRIBUTE_PAGE_LIMIT, BIG_DECIMAL_ZERO, EMAIL_MASK, EVENT_ADD, EVENT_DELETE, EVENT_UPDATE, FLOAT_MASK, INT_MASK, IS_CHECK_RELATIONAL_INTEGRITY, UPDATE_CHANGED_ONLY, WHERE_KEYWORD |
| Fields inherited from class com.jcorporate.expresso.core.dataobjects.jdbc.JDBCDataObject |
anyFieldsDistinct, anyFieldsToRetrieve, appendCustomWhere, caseSensitiveQuery, customWhereClause, dbKey, distinctFields, localConnection, LONGBINARY_READ_DEFAULT_SIZE, maxRecords, myClassName, myUpdates, offsetRecord, recordSet, retrieveFields, sMetadataMap, sortKeys |
| Fields inherited from class com.jcorporate.expresso.core.dataobjects.BaseDataObject |
currentStatus, globalMask |
| Fields inherited from interface com.jcorporate.expresso.core.dataobjects.DataObject |
STATUS_CURRENT, STATUS_DELETED, STATUS_NEW, STATUS_UPDATED |
| Constructor Summary | |
SecurityDBObject()
|
|
SecurityDBObject(int uid)
Use over (String) constructor. |
|
SecurityDBObject(RequestContext request)
For using DBObjects within Controllers. |
|
| Method Summary | |
protected void |
overrideDataContext(String newContext)
when someone tries to set a new data context, check with Setup values to see if this new context should be ignored, such as when a SecurityDBObject subclass is listed in the set of SecurityDBObjs (a list configurable as a Setup param). |
void |
setDataContext(String newContext)
Override of DBObject's setDataContext() to call setDBName |
void |
setDBName(String newContext)
Ignore the newContext parameter if Setup values indicate to do this. |
| Methods inherited from class com.jcorporate.expresso.core.dbobj.SecuredDBObject |
add, canRequesterAdd, canRequesterDelete, canRequesterRead, canRequesterUpdate, checkAllowed, copyAttributes, count, createSecurityCache, delete, deleteAll, find, getRequestingUid, getString, getString, getString, getString, getString, getString, getSystemUid, instantiate, isAllowed, retrieve, search, searchAndRetrieveList, searchAndRetrieveList, setRequestingUid, update |
| Methods inherited from class com.jcorporate.expresso.core.dataobjects.BaseDataObject |
getGlobalMask, getStatus, isGlobalMasked, setFieldsWithDefaults, setGlobalMask, setStatus |
| Methods inherited from class java.lang.Object |
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static final String SECURITY_CONTEXT
public static final String SECURITY_OBJECTS
| Constructor Detail |
public SecurityDBObject()
throws DBException
public SecurityDBObject(int uid)
throws DBException
uid - the Uid of the user context
DBException - if there's an initialization problem
public SecurityDBObject(RequestContext request)
throws DBException
request - - The controller request handed to you by the framework.
DBException - if there's an error constructing the object| Method Detail |
public void setDataContext(String newContext)
setDataContext in interface ContextNestedsetDataContext in class DBObjectnewContext - the new dataContext to use
public void setDBName(String newContext)
throws DBException
setDBName in class JDBCDataObjectnewContext - the new dataContext to use
DBException - upon construction error.protected void overrideDataContext(String newContext)
newContext - the new data context to use.
|
Expresso 5-6 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||