## gate.security
Class AccessControllerImpl

    java.lang.Object
      |
      +--gate.security.AccessControllerImpl

All Implemented Interfaces:
  AccessController, EventListener, GateListener, ObjectModificationListener

public class AccessControllerImpl
extends Object
implements AccessController, ObjectModificationListener

Field Summary
`static int` `DEFAULT_SESSION_TIMEOUT_MIN`
`private HashMap` `groupsByID`
`private HashMap` `groupsByName`
`private boolean` `isPooled`
`private Connection` `jdbcConn`
`private String` `jdbcURL`
`static int` `LOGIN_FAILED`
`static int` `LOGIN_OK`
`private static long` `MY_VERY_SECRET_CONSTANT`
`private Vector` `omCreationListeners` ---
`private Vector` `omDeletionListeners` ---
`private Vector` `omModificationListeners` ---
`private static Random` `r`
`private static int` `RANDOM_MAX`
`private int` `refCnt`
`private HashMap` `sessionLastUsed`
`private HashMap` `sessions`
`private HashMap` `sessionTimeouts`
`private HashMap` `usersByID`
`private HashMap` `usersByName`

Constructor Summary
`AccessControllerImpl(String jdbcURL)` ---

Method Summary
`(package private) static void` `<clinit>()`
`private boolean` `canDeleteGroup(Group grp)`
`private boolean` `canDeleteUser(User usr)`
`void` `close()` ---
`Group` `createGroup(String name, Session s)` ---
`private Long` `createSessionID()`
`User` `createUser(String name, String passwd, Session s)` ---
`void` `deleteGroup(Group grp, Session s)` ---
`void` `deleteGroup(Long id, Session s)` ---
`void` `deleteUser(Long id, Session s)` ---
`void` `deleteUser(User usr, Session s)` ---
`void` `finalize()`
`Group` `findGroup(Long id)` ---
`Group` `findGroup(String name)` ---
`Session` `findSession(Long id)` ---
`User` `findUser(Long id)` ---
`User` `findUser(String name)` ---
`private void` `fireObjectCreatedEvent(ObjectModificationEvent e)`
`private void` `fireObjectDeletedEvent(ObjectModificationEvent e)`
`private void` `fireObjectModifiedEvent(ObjectModificationEvent e)`
`private void` `init()`
`boolean` `isValidSecurityInfo(SecurityInfo si)` --
`boolean` `isValidSession(Session s)` ---
`List` `listGroups()` --
`List` `listUsers()` --
`Session` `login(String usr_name, String passwd, Long prefGroupID)` ---
`void` `logout(Session s)` ---
`void` `objectCreated(ObjectModificationEvent e)`
`void` `objectDeleted(ObjectModificationEvent e)`
`void` `objectModified(ObjectModificationEvent e)`
`void` `open()` ---
`void` `processGateEvent(GateEvent e)` Called when a Gate event has occured
`void` `registerObjectModificationListener(ObjectModificationListener l, int eventType)`
`void` `setSessionTimeout(Session s, int timeoutMins)` ---
`private void` `touchSession(Session s)`
`void` `unregisterObjectModificationListener(ObjectModificationListener l, int eventType)`

Methods inherited from class java.lang.Object
`clone, equals, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait`

Field Detail

### DEFAULT_SESSION_TIMEOUT_MIN

    public static final int DEFAULT_SESSION_TIMEOUT_MIN

### LOGIN_OK

    public static final int LOGIN_OK

### LOGIN_FAILED

    public static final int LOGIN_FAILED

### MY_VERY_SECRET_CONSTANT

    private static long MY_VERY_SECRET_CONSTANT

### RANDOM_MAX

    private static final int RANDOM_MAX

### sessions

    private HashMap sessions

### sessionLastUsed

    private HashMap sessionLastUsed

### sessionTimeouts

    private HashMap sessionTimeouts

### jdbcConn

    private Connection jdbcConn

### jdbcURL

    private String jdbcURL

### usersByID

    private HashMap usersByID

### usersByName

    private HashMap usersByName

### groupsByID

    private HashMap groupsByID

### groupsByName

    private HashMap groupsByName

### r

    private static Random r

### isPooled

    private boolean isPooled

### refCnt

    private int refCnt

### omModificationListeners

    private Vector omModificationListeners

  ---

### omCreationListeners

    private Vector omCreationListeners

  ---

### omDeletionListeners

    private Vector omDeletionListeners

  ---

Constructor Detail

### AccessControllerImpl

    public AccessControllerImpl(String jdbcURL)

  ---

Method Detail

### <clinit>

    static void <clinit>()

### open

    public void open()
              throws PersistenceException

  ---
  Specified by:
    `open` in interface `AccessController`

### close

    public void close()
               throws PersistenceException

  ---
  Specified by:
    `close` in interface `AccessController`

### findGroup

    public Group findGroup(String name)
                    throws PersistenceException,
                           SecurityException

  ---
  Specified by:
    `findGroup` in interface `AccessController`

### findGroup

    public Group findGroup(Long id)
                    throws PersistenceException,
                           SecurityException

  ---
  Specified by:
    `findGroup` in interface `AccessController`

### findUser

    public User findUser(String name)
                  throws PersistenceException,
                         SecurityException

  ---
  Specified by:
    `findUser` in interface `AccessController`

### findUser

    public User findUser(Long id)
                  throws PersistenceException,
                         SecurityException

  ---
  Specified by:
    `findUser` in interface `AccessController`

### findSession

    public Session findSession(Long id)
                        throws SecurityException

  ---
  Specified by:
    `findSession` in interface `AccessController`

### createGroup

    public Group createGroup(String name,
                             Session s)
                      throws PersistenceException,
                             SecurityException

  ---
  Specified by:
    `createGroup` in interface `AccessController`

### deleteGroup

    public void deleteGroup(Long id,
                            Session s)
                     throws PersistenceException,
                            SecurityException

  ---
  Specified by:
    `deleteGroup` in interface `AccessController`

### deleteGroup

    public void deleteGroup(Group grp,
                            Session s)
                     throws PersistenceException,
                            SecurityException

  ---
  Specified by:
    `deleteGroup` in interface `AccessController`

### createUser

    public User createUser(String name,
                           String passwd,
                           Session s)
                    throws PersistenceException,
                           SecurityException

  ---
  Specified by:
    `createUser` in interface `AccessController`

### deleteUser

    public void deleteUser(User usr,
                           Session s)
                    throws PersistenceException,
                           SecurityException

  ---
  Specified by:
    `deleteUser` in interface `AccessController`

### deleteUser

    public void deleteUser(Long id,
                           Session s)
                    throws PersistenceException,
                           SecurityException

  ---
  Specified by:
    `deleteUser` in interface `AccessController`

### login

    public Session login(String usr_name,
                         String passwd,
                         Long prefGroupID)
                  throws PersistenceException,
                         SecurityException

  ---
  Specified by:
    `login` in interface `AccessController`

### logout

    public void logout(Session s)
                throws SecurityException

  ---
  Specified by:
    `logout` in interface `AccessController`

### setSessionTimeout

    public void setSessionTimeout(Session s,
                                  int timeoutMins)
                           throws SecurityException

  ---
  Specified by:
    `setSessionTimeout` in interface `AccessController`

### isValidSession

    public boolean isValidSession(Session s)

  ---
  Specified by:
    `isValidSession` in interface `AccessController`

### listGroups

    public List listGroups()
                    throws PersistenceException

  --
  Specified by:
    `listGroups` in interface `AccessController`

### listUsers

    public List listUsers()
                   throws PersistenceException

  --
  Specified by:
    `listUsers` in interface `AccessController`

### touchSession

    private void touchSession(Session s)

### createSessionID

    private Long createSessionID()

### canDeleteGroup

    private boolean canDeleteGroup(Group grp)
                            throws PersistenceException,
                                   SecurityException

### canDeleteUser

    private boolean canDeleteUser(User usr)
                           throws PersistenceException,
                                  SecurityException

### init

    private void init()
               throws PersistenceException

### fireObjectCreatedEvent

    private void fireObjectCreatedEvent(ObjectModificationEvent e)

### fireObjectDeletedEvent

    private void fireObjectDeletedEvent(ObjectModificationEvent e)

### fireObjectModifiedEvent

    private void fireObjectModifiedEvent(ObjectModificationEvent e)

### registerObjectModificationListener

    public void registerObjectModificationListener(ObjectModificationListener l,
                                                   int eventType)

### unregisterObjectModificationListener

    public void unregisterObjectModificationListener(ObjectModificationListener l,
                                                     int eventType)

### objectCreated

    public void objectCreated(ObjectModificationEvent e)

  Specified by:
    `objectCreated` in interface `ObjectModificationListener`

### objectModified

    public void objectModified(ObjectModificationEvent e)

  Specified by:
    `objectModified` in interface `ObjectModificationListener`

### objectDeleted

    public void objectDeleted(ObjectModificationEvent e)

  Specified by:
    `objectDeleted` in interface `ObjectModificationListener`

### processGateEvent

    public void processGateEvent(GateEvent e)

  Description copied from interface: `GateListener`
  Called when a Gate event has occured
  Specified by:
    `processGateEvent` in interface `GateListener`

### isValidSecurityInfo

    public boolean isValidSecurityInfo(SecurityInfo si)

  --
  Specified by:
    `isValidSecurityInfo` in interface `AccessController`

### finalize

    public void finalize()

  Overrides:
    `finalize` in class `Object`