blob: fcf764c235dd25de9a775c12f5a244bd08e9645d [file] [log] [blame]
/*
* Copyright (c) 2009-2013, JoshuaTree. All Rights Reserved.
*/
package us.jts.fortress;
import us.jts.fortress.rbac.Session;
/**
* Interface allows outside clients to manage security and multi-tenant concerns within the Fortress runtime.
* The {@link #setAdmin(us.jts.fortress.rbac.Session)} method allows A/RBAC sessions to be loaded and allows authorization
* to be performed on behalf of the user who is contained within the Session object itself.
* The ARBAC permissions will be checked each time outside client makes calls into Fortress API.
* This interface also allows Fortress clients to operate in a multi-tenant fashion using {@link #setContextId(String)}.
* <p/>
*
* @author Shawn McKinney
*/
public interface Manageable
{
/**
* Use this method to load an administrative user's ARBAC Session object into Manager object which will enable authorization to
* be performed on behalf of admin user.
* Setting Session into this object will enforce ARBAC controls and render this class' implementer thread unsafe.
*
* @param session contains a valid Fortress ARBAC Session object.
*/
public void setAdmin(Session session);
/**
* Use this method to set the tenant id onto function call into Fortress which allows segregation of data by customer.
* The contextId is used for multi-tenancy to isolate data sets within a particular sub-tree within DIT.
* Setting contextId into this object will render this class' implementer thread unsafe.
*
* @param contextId maps to sub-tree in DIT, for example ou=contextId, dc=jts, dc = com.
*/
public void setContextId(String contextId);
}