|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.endeca.portal.data.security.DefaultMDEXSecurityManager
public class DefaultMDEXSecurityManager
This is a simple implementation of MDEXSecurityManager, providing role-based security filters via data source configuration. For a given data source, the following properties can be configured:
applySecurity(PortletRequest, MDEXState, Query) method.
| Field Summary | |
|---|---|
static java.lang.String |
CONFIG_PROPERTY_ROLE_PERMISSIONS
JSON key for defining available security roles for filters |
static java.lang.String |
CONFIG_PROPERTY_ROLE_PERMISSIONS_MULTI_OR
JSON key for specifying multiple filters from multiple roles should be logically OR-ed, default false=multi-roles ANDed |
static java.lang.String |
CONFIG_PROPERTY_SECURITY_ENABLED
JSON key for toggling security on/off |
static java.lang.String |
CONFIG_PROPERTY_SECURITY_FILTERS
JSON key for security filters |
protected boolean |
dirty
|
protected java.util.Map<java.lang.String,java.util.Map<java.lang.String,DataSourceFilter>> |
mdexSecurityFilterMap
|
protected java.util.Set<com.liferay.portal.model.Role> |
userRoles
|
| Constructor Summary | |
|---|---|
DefaultMDEXSecurityManager()
Default constructor |
|
| Method Summary | |
|---|---|
protected void |
addFiltersFromRoles(java.lang.String mdexStateId,
org.json.JSONObject securityFilters,
org.json.JSONObject rolePermissions,
java.util.Map<java.lang.String,DataSourceFilter> mdexQueryFilterMap,
boolean logicallyOrMultipleRoles,
MDEXState mdexState,
javax.portlet.PortletRequest request)
Calculates security filters for the user's Roles, and adds them to the Set of current filters. |
void |
applySecurity(javax.portlet.PortletRequest request,
MDEXState mdexState,
Query query)
See MDEXSecurityManager.applySecurity(PortletRequest, MDEXState, Query) |
protected java.util.Set<QueryFunction> |
createFilterSetFromJSON(org.json.JSONArray filterRefArray,
org.json.JSONObject securityFilters,
MDEXState mdexState,
javax.portlet.PortletRequest request)
Searches a set of JSON object representations of filters identified by name in the provided JSONArray. |
protected java.util.Set<com.liferay.portal.model.Role> |
getRolesForUser(java.lang.String remoteUser,
long companyId,
long currentGroupId)
Determines the set of roles and Liferay user groups to which the current user belongs. |
protected void |
init(javax.portlet.PortletRequest request)
Initializes an internal map of security filters associated with the user making the request, under any of the following conditions: This is the first time a request is made for the session. |
protected void |
initMDEXPermissions(MDEXState mdexState,
UserSession userSession,
javax.portlet.PortletRequest request)
Initializes a set of security filters for the provided MDEXState, which is then stored in this security manager's internal map of data source-to-filter mappings for the user. |
protected void |
initRoleBasedSecurityFilters(MDEXState mdexState,
UserSession userSession,
javax.portlet.PortletRequest request)
Gets a list of role-based security filters for a specified MDEXState. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected transient boolean dirty
public static final java.lang.String CONFIG_PROPERTY_SECURITY_ENABLED
public static final java.lang.String CONFIG_PROPERTY_ROLE_PERMISSIONS
public static final java.lang.String CONFIG_PROPERTY_ROLE_PERMISSIONS_MULTI_OR
public static final java.lang.String CONFIG_PROPERTY_SECURITY_FILTERS
protected java.util.Map<java.lang.String,java.util.Map<java.lang.String,DataSourceFilter>> mdexSecurityFilterMap
protected transient java.util.Set<com.liferay.portal.model.Role> userRoles
| Constructor Detail |
|---|
public DefaultMDEXSecurityManager()
| Method Detail |
|---|
public void applySecurity(javax.portlet.PortletRequest request,
MDEXState mdexState,
Query query)
throws MDEXSecurityException
MDEXSecurityManager.applySecurity(PortletRequest, MDEXState, Query)
applySecurity in interface MDEXSecurityManagerrequest - the PortletRequestmdexState - the MDEXState object representing the target
MDEX and its current statequery - the Query to which security filters should be applied
MDEXSecurityException - on error parsing, processing, or applying securityQuery
protected void init(javax.portlet.PortletRequest request)
throws MDEXSecurityException
#initMDEXPermissions(MDEXState, UserSession) method is called.
request - the PortletRequest
MDEXSecurityException
protected java.util.Set<com.liferay.portal.model.Role> getRolesForUser(java.lang.String remoteUser,
long companyId,
long currentGroupId)
throws java.lang.NumberFormatException,
com.liferay.portal.PortalException,
com.liferay.portal.SystemException
remoteUser - String representing the id of the current user, or null if the user is unauthenticated.
This param should be generated by PortletRequest.getRemoteUser().companyId - the Liferay company id for the current request
java.lang.NumberFormatException
com.liferay.portal.PortalException
com.liferay.portal.SystemException
protected void initMDEXPermissions(MDEXState mdexState,
UserSession userSession,
javax.portlet.PortletRequest request)
throws MDEXSecurityException
mdexState - the MDEXStateuserSession - the UserSession instance for this session
MDEXSecurityException
protected void initRoleBasedSecurityFilters(MDEXState mdexState,
UserSession userSession,
javax.portlet.PortletRequest request)
throws MDEXSecurityException
mdexState - the MDEXStateuserSession - the UserSession instance for this session
MDEXSecurityException
protected void addFiltersFromRoles(java.lang.String mdexStateId,
org.json.JSONObject securityFilters,
org.json.JSONObject rolePermissions,
java.util.Map<java.lang.String,DataSourceFilter> mdexQueryFilterMap,
boolean logicallyOrMultipleRoles,
MDEXState mdexState,
javax.portlet.PortletRequest request)
throws MDEXSecurityException
Set of current filters.
By default, the following logic applies in the case of multiple security filters:
mdexStateId - securityFilters - rolePermissions - mdexQueryFilterMap - logicallyOrMultipleRoles -
MDEXSecurityException
protected java.util.Set<QueryFunction> createFilterSetFromJSON(org.json.JSONArray filterRefArray,
org.json.JSONObject securityFilters,
MDEXState mdexState,
javax.portlet.PortletRequest request)
throws org.json.JSONException,
MDEXSecurityException
JSONArray of names:
["filter1","filter2"]
List of security filters:
{
"filter1": {
"class":"com.endeca.portal.data.functions.DataSourceFilter",
"filterString":"Region='Bordeaux' or Region='Burgundy'"
},
"filter2": {
"class":"com.endeca.portal.data.functions.DataSourceFilter",
"filterString":"Region='Sonoma'"
}
}
filterRefArray - a JSON Array of filter names to look forsecurityFilters - a JSON Object storing a list of filters
org.json.JSONException
MDEXSecurityException
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||