com.raritantechnologies.searchApp
Class PropertiesSecurityManager

java.lang.Object
  extended bycom.raritantechnologies.searchApp.SecurityManager
      extended bycom.raritantechnologies.searchApp.PropertiesSecurityManager
All Implemented Interfaces:
ISecurityManager
Direct Known Subclasses:
DBSecurityManager, DocumentumSecurityManager, ERoomSecurityManager, JCIFSSecurityManager, LoggingSecurityManager, SearchSourceSecurityManager, StaticSecurityManager, VeritySecurityManager

public class PropertiesSecurityManager
extends SecurityManager
implements ISecurityManager

Simple implementation of ISecurityManager uses LoginInfo.properties to look up user name and searchSource.

Requires an instance of LoginInfo.properties to be found in the classpath.

XML Configuration Template:
   <SecurityManager class="com.raritantechnologies.searchApp.PropertiesSecurityManager"
                       secureAccessField="[ result field that contains access control data ]" >

     <!-- Optional comparator to determine if the value of an IResult secureAccessField enables public (world-read) access      -->
     <!-- Defaults to com.raritantechnologies.utils.comparator.NothingComparator meaning that if no access control information  -->
     <!-- is present, then the record is assumed to be public. This default logic can be altered by supplying a Comparator here -->
     <PublicAccessComparator class="[ class of com.raritantechnologies.utils.comparators.IComparator ]" >

     </PublicAccessComparator>

   </SecurityManager>
 

Developed by Raritan Technologies .

Author:
Ted Sullivan

Field Summary
protected  java.lang.String alternateLoginName
           
protected  IComparator publicAccessComparator
           
protected  java.lang.String secureAccessField
           
 
Fields inherited from class com.raritantechnologies.searchApp.SecurityManager
defaultIsPublic
 
Constructor Summary
PropertiesSecurityManager()
           
PropertiesSecurityManager(java.lang.String propBundle)
           
 
Method Summary
 SourceLoginInfo[] getAvailableSources(ILoginInfo userInfo)
          Returns a list of available search sources for the user.
protected  java.lang.String getPassword(ILoginInfo userInfo, SecurityModel secModel)
           
 SourceLoginInfo getSourceLogin(ILoginInfo userInfo, java.lang.String sourceName, SecurityModel secModel)
          Returns source login info for a given user / source.
 ILoginInfo getSourceLoginInfo(ILoginInfo userInfo, java.lang.String sourceName, SecurityModel secModel)
          returns valid source LoginInfo for the User or null if fails.
 ILoginInfo getUser(java.lang.String sessionID)
           
protected  java.lang.String getUserName(ILoginInfo userInfo, SecurityModel secModel)
           
 void initialize(org.w3c.dom.Element elem)
           
 void initialize(java.util.Map params)
           
 boolean isPublic(IResult result)
          Subclasses should override this to determine if a result is public (world-read) or not public (has an ACL for example).
 void registerUser(java.lang.String sessionID, ILoginInfo loginInfo)
           
 void removeUser(java.lang.String sessionID)
           
static void setStreamFactory(IStreamFactory factory)
           
 boolean validate(ILoginInfo loginInfo)
          Validates the loginInfo - may add group information etc to the loginInfo object.
 
Methods inherited from class com.raritantechnologies.searchApp.SecurityManager
canAccess, filterResult, getCipherInputStream, getCipherOutputStream, getFullTextIndexKey, getStoredCertificate, getStoredKey, setFullTextIndexKey
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.raritantechnologies.searchApp.ISecurityManager
canAccess, filterResult, getCipherInputStream, getCipherOutputStream, getStoredCertificate, getStoredKey
 

Field Detail

alternateLoginName

protected java.lang.String alternateLoginName

secureAccessField

protected java.lang.String secureAccessField

publicAccessComparator

protected IComparator publicAccessComparator
Constructor Detail

PropertiesSecurityManager

public PropertiesSecurityManager()

PropertiesSecurityManager

public PropertiesSecurityManager(java.lang.String propBundle)
Method Detail

initialize

public void initialize(java.util.Map params)
Specified by:
initialize in interface ISecurityManager
Overrides:
initialize in class SecurityManager

initialize

public void initialize(org.w3c.dom.Element elem)
Specified by:
initialize in interface ISecurityManager
Overrides:
initialize in class SecurityManager

isPublic

public boolean isPublic(IResult result)
Description copied from class: SecurityManager
Subclasses should override this to determine if a result is public (world-read) or not public (has an ACL for example).

Specified by:
isPublic in interface ISecurityManager
Overrides:
isPublic in class SecurityManager

validate

public boolean validate(ILoginInfo loginInfo)
Validates the loginInfo - may add group information etc to the loginInfo object. KG - now validate login via {AppID}.UserName.{userid}

Specified by:
validate in interface ISecurityManager

getAvailableSources

public SourceLoginInfo[] getAvailableSources(ILoginInfo userInfo)
Returns a list of available search sources for the user. The returned objects contain security information needed to validate the user against each source.

Specified by:
getAvailableSources in interface ISecurityManager

getSourceLogin

public SourceLoginInfo getSourceLogin(ILoginInfo userInfo,
                                      java.lang.String sourceName,
                                      SecurityModel secModel)
Returns source login info for a given user / source. SecurityModel - used to get strong security tokens - Not implemented yet.

Specified by:
getSourceLogin in interface ISecurityManager

getSourceLoginInfo

public ILoginInfo getSourceLoginInfo(ILoginInfo userInfo,
                                     java.lang.String sourceName,
                                     SecurityModel secModel)
returns valid source LoginInfo for the User or null if fails. SecurityModel - used to get strong security tokens - Not implemented yet.

Specified by:
getSourceLoginInfo in interface ISecurityManager

registerUser

public void registerUser(java.lang.String sessionID,
                         ILoginInfo loginInfo)
Specified by:
registerUser in interface ISecurityManager

getUser

public ILoginInfo getUser(java.lang.String sessionID)
Specified by:
getUser in interface ISecurityManager

removeUser

public void removeUser(java.lang.String sessionID)
Specified by:
removeUser in interface ISecurityManager

setStreamFactory

public static void setStreamFactory(IStreamFactory factory)

getUserName

protected java.lang.String getUserName(ILoginInfo userInfo,
                                       SecurityModel secModel)

getPassword

protected java.lang.String getPassword(ILoginInfo userInfo,
                                       SecurityModel secModel)