com.raritantechnologies.security
Class FlatFileSecurityManager

java.lang.Object
  extended bycom.raritantechnologies.searchApp.SecurityManager
      extended bycom.raritantechnologies.security.FlatFileSecurityManager
All Implemented Interfaces:
ISecurityManager

public class FlatFileSecurityManager
extends SecurityManager
implements ISecurityManager

Simple SecurityManager that uses a Flat File for security data. The data columns of the flat file can be defined as one of USERNAME or PASSWORD or ACCESS_LIST. If a flat file column is of type 'ACCESS_LIST' it is assumed that the values are URIs (or keys) that the user can access.

XML Configuration Template:
  <SecurityManager class="com.raritantechnologies.security.FlatFileSecurityManager" 
                      dataColumns="[ comma separated list of data columns in flat file: USERNAME|PASSWORD|ACCESS_LIST ]" 
                      fileName="[ flat file name ]"
                      caseSensitive="true(default)|false"
                      columnDelimiter="[ delimiter for flat file columns default='|' ]"
                      dataDelimiter="[ delimiter for ACCESS_LIST columns default=',' ]" />
 


Field Summary
 
Fields inherited from class com.raritantechnologies.searchApp.SecurityManager
defaultIsPublic
 
Constructor Summary
FlatFileSecurityManager()
           
 
Method Summary
 boolean canAccess(ILoginInfo userInfo, java.lang.String uri, boolean useDefault)
          Can a user access a particular URI?
 SourceLoginInfo[] getAvailableSources(ILoginInfo userInfo)
          Returns a list of available search sources for the user.
 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)
           
 void init(java.lang.String[] userData, java.lang.String[] dataColumns)
           
 void initialize(org.w3c.dom.Element elem)
           
 void registerUser(java.lang.String sessionID, ILoginInfo loginInfo)
           
 void removeUser(java.lang.String sessionID)
           
 void setColumnDelimiter(java.lang.String columnDelimiter)
           
 void setColumns(java.lang.String[] columns)
           
 void setDataDelimiter(java.lang.String dataDelimiter)
           
 void setDataFile(java.lang.String dataFile)
           
 boolean validate(ILoginInfo userInfo)
          Validates the loginInfo - may add group information etc to the loginInfo object.
 
Methods inherited from class com.raritantechnologies.searchApp.SecurityManager
filterResult, getCipherInputStream, getCipherOutputStream, getFullTextIndexKey, getStoredCertificate, getStoredKey, initialize, isPublic, 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
filterResult, getCipherInputStream, getCipherOutputStream, getStoredCertificate, getStoredKey, initialize, isPublic
 

Constructor Detail

FlatFileSecurityManager

public FlatFileSecurityManager()
Method Detail

validate

public boolean validate(ILoginInfo userInfo)
Description copied from interface: ISecurityManager
Validates the loginInfo - may add group information etc to the loginInfo object.

Specified by:
validate in interface ISecurityManager

canAccess

public boolean canAccess(ILoginInfo userInfo,
                         java.lang.String uri,
                         boolean useDefault)
Description copied from interface: ISecurityManager
Can a user access a particular URI?

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

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

init

public void init(java.lang.String[] userData,
                 java.lang.String[] dataColumns)

getAvailableSources

public SourceLoginInfo[] getAvailableSources(ILoginInfo userInfo)
Description copied from interface: ISecurityManager
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)
Description copied from interface: ISecurityManager
Returns source login info for a given user / source

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.

Specified by:
getSourceLoginInfo in interface ISecurityManager

initialize

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

setDataFile

public void setDataFile(java.lang.String dataFile)

setColumns

public void setColumns(java.lang.String[] columns)

setColumnDelimiter

public void setColumnDelimiter(java.lang.String columnDelimiter)

setDataDelimiter

public void setDataDelimiter(java.lang.String dataDelimiter)