Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## tle.framework.component.impl.aamanager
Class DefaultAAManager

    java.lang.Object
      tle.framework.component.impl.ComponentBase
          tle.framework.component.impl.aamanager.DefaultAAManager

All Implemented Interfaces:
  Component, ComponentMBean, DefaultAAManagerMBean, AAManager

    public class DefaultAAManager

extends ComponentBase
implements AAManager, DefaultAAManagerMBean

AAManager의 기본 구현체 클래스로서, RoleManager, ServiceManager, SessionManager, UserManager, Authenticator를 사용하여 기능을 구현다.

각 인터페이스의 구현 클래스 다음의 컴포넌트 초기화 파라미터를 통해서 명시한다.

- RoleManager - RoleManager의 구현체 클래스의 완전한 이름
- ServiceManager - ServiceManager의 구현체 클래스의 완전한 이름
- SessionManager - SessionManager의 구현체 클래스의 완전한 이름
- UserManager - UserManager의 구현체 클래스의 완전한 이름
- Authenticator - Authenticator의 구현체 클래스의 완전한 이름

DefaultAAManager를 사용할 경우 위의 5가지 인터페이스를 구현한 클래스가 필요하며 기타 Role, Service, User의 구현 클래스도 필요하다. DefaultAAManager는 AAManager의 구현을 좀더 쉽게 할 수 있도록 하기 위해서 위의 5가지 인터페이스 중 다음의 3가지를 기본적으로 제공해주고 있다.

- tle.framework.component.impl.aamanager.role.RoleManagerImpl
- tle.framework.component.impl.aamanager.service.ServiceManagerImpl
- tle.framework.component.impl.aamanager.session.SessionManagerImpl

RoleManagerImpl과 ServiceManagerImpl은 Role과 Service의 구현체를 제공하고 있기 때문에, 위의 3가지 기본 구현체를 사용할 경우 DefaultAAManager의 사용자는 UserManager와 Authenticator의 구현체만 제공해주면 된다.

Since:
  2.0
Author:
  최범균
See Also:
  `RoleManager`, `ServiceManager`, `SessionManager`, `UserManager`, `Authenticator`

Field Summary

Fields inherited from class tle.framework.component.impl.ComponentBase
`componentState, config`

Constructor Summary
`DefaultAAManager()`

Method Summary
`User` | `authenticate(UserAuthenticationInfo authInfo)` Authenticator.authenticate() 메소드를 호출하여 인증여부를 처리한다.
`boolean` | `checkAuthorization(User user, Service service)` ServiceManager.hasGrant() 메소드를 사용하여 권한을 가졌는지의 여부를 판단한다.
`void` | `closeSession(HttpServletRequest request, HttpServletResponse response)` SessionManager.closeSession() 메소드를 사용하여 세션을 종료한다.
`AAManagerProxy` | `getAAManagerProxy()` 이 AAManager 객체를 연결한 AAManagerProxy를 리턴한다.
`java.lang.String` | `getAuthenticatorClassName()` Authenticator 구현체 클래스의 이름을 구한다.
`Role` | `getRole(java.lang.String roleID)` RoleManager.getRole() 메소드를 사용하여 Role을 구한다.
`java.lang.String` | `getRoleManagerClassName()` RoleManager 구현체 클래스의 이름을 구한다.
`Service` | `getService(RequestInfo requestInfo)` ServiceManager.getService() 메소드를 사용하여 Service를 구한다.
`java.lang.String` | `getServiceManagerClassName()` ServiceManager 구현체 클래스의 이름을 구한다.
`java.lang.String` | `getSessionManagerClassName()` SessionManager 구현체 클래스의 이름을 구한다.
`User` | `getSessionUser(HttpServletRequest request)` SessionManager.getSessionUser() 메소드를 사용하여 세션 사용자를 구한다.
`java.lang.String` | `getUserManagerClassName()` UserManager 구현체 클래스의 이름을 구한다.
`protected void` | `initing(ComponentConfig config)` RoleManage, ServiceManager, SessionManager, UserManager, Authenticator의 인스턴스를 생성한다.
`void` | `openSession(User user, HttpServletRequest request, HttpServletResponse response)` SessionManager.openSession() 메소드를 사용하여 세션을 시작한다.
`void` | `reloadServiceConfiguration()` ServiceManager와 관련된 설정 정보를 리로딩한다.

Methods inherited from class tle.framework.component.impl.ComponentBase
`close, closing, getDescription, getID, getState, init, isClosed, isClosing, isCreated, isErrorOccured, isInited, isIniting, isResuming, isRunning, isStarting, isStopped, isStopping, isSuspended, isSuspending, resume, resuming, start, starting, stop, stopping, suspend, suspending`

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

Methods inherited from interface tle.framework.component.Component
`close, getID, init, isClosed, isClosing, isCreated, isErrorOccured, isInited, isIniting, isResuming, isRunning, isStarting, isStopped, isStopping, isSuspended, isSuspending, resume, start, stop, suspend`

Methods inherited from interface tle.framework.component.ComponentMBean
`getDescription, getID, getState`

Constructor Detail

### DefaultAAManager

    public DefaultAAManager()

Method Detail

### initing

    protected void initing(ComponentConfig config)
                    throws ComponentException

  RoleManage, ServiceManager, SessionManager, UserManager, Authenticator의 인스턴스를 생성한다.

  Overrides:
    `initing` in class `ComponentBase`
  Parameters:
    `config` - 컴포넌트 초기화 설정 정보를 담고 있는 객체
  Throws:
    `ComponentException`
  See Also:
    `ComponentBase.initing(tle.framework.component.ComponentConfig)`

### authenticate

    public User authenticate(UserAuthenticationInfo authInfo)
                      throws AAManagerException

  Authenticator.authenticate() 메소드를 호출하여 인증여부를 처리한다. 인증된 경우 userManager.getUser() 메소드를 사용하여 인증된 사용자 정보를 리턴한다.

  Specified by:
    `authenticate` in interface `AAManager`
  Parameters:
    `authInfo` - 사용자 인증 정보
  Returns:
    인증에 성공한 경우 관련 User를 리턴
  Throws:
    `AuthenticationException` - 아이디나 암호 등이 잘못되어 인증에 실패한 경우 발생한다.
    `AAManagerException`
  See Also:
    `AAManager.authenticate(tle.framework.component.spi.aamanager.UserAuthenticationInfo)`

### openSession

    public void openSession(User user,
                            HttpServletRequest request,
                            HttpServletResponse response)
                     throws AAManagerException

  SessionManager.openSession() 메소드를 사용하여 세션을 시작한다.

  Specified by:
    `openSession` in interface `AAManager`
  Parameters:
    `user` - 세션에 저장될 사용자
    `request` - HTTP 요청
    `response` - HTTP 응답
  Throws:
    `AAManagerException`
  See Also:
    `tle.framework.component.spi.aamanager.AAManager#openSession(tle.framework.component.spi.aamanager.User, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)`

### closeSession

    public void closeSession(HttpServletRequest request,
                             HttpServletResponse response)
                      throws AAManagerException

  SessionManager.closeSession() 메소드를 사용하여 세션을 종료한다.

  Specified by:
    `closeSession` in interface `AAManager`
  Throws:
    `AAManagerException`
  See Also:
    `tle.framework.component.spi.aamanager.AAManager#closeSession(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)`

### getSessionUser

    public User getSessionUser(HttpServletRequest request)
                        throws AAManagerException

  SessionManager.getSessionUser() 메소드를 사용하여 세션 사용자를 구한다. 존재하지 않을 경우 NullUser.instance를 리턴한다.

  Specified by:
    `getSessionUser` in interface `AAManager`
  Returns:
    세션에 저장된 User. 세션이 시작되지 않았다면 NullUser를 리턴.
  Throws:
    `AAManagerException`
  See Also:
    `tle.framework.component.spi.aamanager.AAManager#getSessionUser(javax.servlet.http.HttpServletRequest)`

### checkAuthorization

    public boolean checkAuthorization(User user,
                                      Service service)
                               throws AAManagerException

  ServiceManager.hasGrant() 메소드를 사용하여 권한을 가졌는지의 여부를 판단한다.

  Specified by:
    `checkAuthorization` in interface `AAManager`
  Parameters:
    `user` - 사용자
    `service` - 서비스
  Returns:
  Throws:
    `AAManagerException`
  See Also:
    `AAManager.checkAuthorization(tle.framework.component.spi.aamanager.User, tle.framework.component.spi.aamanager.Service)`

### getService

    public Service getService(RequestInfo requestInfo)
                       throws AAManagerException

  ServiceManager.getService() 메소드를 사용하여 Service를 구한다. ServiceManager.getService() 메소드가 null을 리턴하면 NullService를 리턴한다.

  Specified by:
    `getService` in interface `AAManager`
  Parameters:
    `requestInfo` - 요청 정보
  Returns:
    Service
  Throws:
    `AAManagerException`
  See Also:
    `AAManager.getService(tle.framework.component.spi.ra.RequestInfo)`

### getRole

    public Role getRole(java.lang.String roleID)
                 throws AAManagerException

  RoleManager.getRole() 메소드를 사용하여 Role을 구한다.

  Specified by:
    `getRole` in interface `AAManager`
  Parameters:
    `roleID` - 역할 ID
  Returns:
    Role
  Throws:
    `AAManagerException`
  See Also:
    `AAManager.getRole(java.lang.String)`

### getAAManagerProxy

    public AAManagerProxy getAAManagerProxy()

  Description copied from interface: `AAManager`
  이 AAManager 객체를 연결한 AAManagerProxy를 리턴한다. 틀 프레임워크를 사용하는 시스템에서 AAManager가 제공하는 기능들을 사용하기 위해서는 AAManagerProxy를 통해서 간접적으로 접근하게 된다.

  예를 들어, AAManager.openSession() 메소드를 사용하고 싶다면 다음과 같은 코드를 사용해야 한다.

         TLEFramework.getAAManagerProxy().openSession(user, request, response);

  Specified by:
    `getAAManagerProxy` in interface `AAManager`
  Returns:
    AAManagerProxy
  See Also:
    `AAManager.getAAManagerProxy()`

### getRoleManagerClassName

    public java.lang.String getRoleManagerClassName()

  Description copied from interface: `DefaultAAManagerMBean`
  RoleManager 구현체 클래스의 이름을 구한다.

  Specified by:
    `getRoleManagerClassName` in interface `DefaultAAManagerMBean`

### getServiceManagerClassName

    public java.lang.String getServiceManagerClassName()

  Description copied from interface: `DefaultAAManagerMBean`
  ServiceManager 구현체 클래스의 이름을 구한다.

  Specified by:
    `getServiceManagerClassName` in interface `DefaultAAManagerMBean`

### getSessionManagerClassName

    public java.lang.String getSessionManagerClassName()

  Description copied from interface: `DefaultAAManagerMBean`
  SessionManager 구현체 클래스의 이름을 구한다.

  Specified by:
    `getSessionManagerClassName` in interface `DefaultAAManagerMBean`

### getUserManagerClassName

    public java.lang.String getUserManagerClassName()

  Description copied from interface: `DefaultAAManagerMBean`
  UserManager 구현체 클래스의 이름을 구한다.

  Specified by:
    `getUserManagerClassName` in interface `DefaultAAManagerMBean`

### getAuthenticatorClassName

    public java.lang.String getAuthenticatorClassName()

  Description copied from interface: `DefaultAAManagerMBean`
  Authenticator 구현체 클래스의 이름을 구한다.

  Specified by:
    `getAuthenticatorClassName` in interface `DefaultAAManagerMBean`

### reloadServiceConfiguration

    public void reloadServiceConfiguration()
                                    throws AAManagerException

  Description copied from interface: `DefaultAAManagerMBean`
  ServiceManager와 관련된 설정 정보를 리로딩한다.

  Specified by:
    `reloadServiceConfiguration` in interface `DefaultAAManagerMBean`
  Throws:
    `AAManagerException`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD