데이터베이스 인증을 위한 JAAS 사용자 정의 로그인 모듈 개발

데이터베이스에 인증하기 위해 사용자 이름 및 비밀번호를 추가하는 데 필요한 JAAS(Java™ Authentication and Authorization Service) 사용자 정의 로그인 모듈을 개발할 수 있습니다.

이 태스크 정보

인증이 필요한 데이터베이스 연결이 작성될 때 호출할 수 있는 JAAS 사용자 정의 로그인 모듈을 개발할 수 있습니다. JAAS 사용자 정의 로그인 모듈은 사용자 이름, 비밀번호 및 관리 대상 연결 팩토리가 포함된 비밀번호 신임 정보의 작성을 담당합니다. 이 로그인 모듈은 데이터베이스에 인증하기 위해 사용할 주제의 개인용 신임 정보 세트에 비밀번호 신임 정보를 추가해야 합니다.

프로시저

  1. javax.security.auth.spi.LoginModule 인터페이스를 구현하는 클래스를 작성하십시오.
  2. initialize 메소드에서 필요한 필드를 저장하십시오. 예를 들어 다음과 같습니다.
    /** {@inheritDoc} */
    @SuppressWarnings("unchecked")
    @Override
    public void initialize(Subject subject, CallbackHandler callbackHandler, Map<String, ?> sharedState, Map<String, ?> options) {
      this.callbackHandler = callbackHandler;
      this.subject = subject;
      this.sharedState = (Map<String, Object>) sharedState;
      this.options = options;
    }
  3. login 메소드에서 WSManagedConnectionFactoryCallbackWSMappingPropertiesCallback 콜백을 처리하십시오. 예를 들어 다음과 같습니다.
    /** {@inheritDoc} */
    @Override
    public boolean login() throws LoginException {
      ...
      Callback callbacks[] = new Callback[2];
      callbacks[0] = new WSManagedConnectionFactoryCallback("Target ManagedConnectionFactory: ");
      callbacks[1] = new WSMappingPropertiesCallback("Mapping Properties (HashMap): ");
      		callbackHandler.handle(callbacks);
  4. login 메소드에서 관리 대상 연결 팩토리 및 특성을 얻으십시오. 예를 들어 다음과 같습니다.
    // The method getManagedConnectionFactory must be used as shown for compatibility with WebSphere traditional
    ManagedConnectionFactory managedConnectionFactory = ((WSManagedConnectionFactoryCallback) callbacks[0]).getManagedConnectionFacotry();
    Map properties = ((WSMappingPropertiesCallback) callbacks[1]).getProperties();
  5. 인증 데이터 별명 또는 일부 기타 기준에 따라 사용자 이름 및 비밀번호를 얻으십시오. 예를 들어 다음과 같습니다.
    String alias = (String) properties.get(com.ibm.wsspi.security.auth.callback.Constants.MAPPING_ALIAS);
    String user = getUser(alias); // Implementation specific
    char[] password = getPassword(alias); // Implementation specific
  6. 해당 사용자 이름 및 비밀번호를 사용하여 javax.resources.spi.PasswordCredential 오브젝트를 작성하고 관리 대상 연결 팩토리를 설정하십시오. 예를 들어 다음과 같습니다.
    javax.resource.spi.security.PasswordCredential passwordCredential = new PasswordCredential(user, password);
    passwordCredential.setManagedConnectionFactory(managedConnectionFactory);
  7. commit 메소드에서 주제에 비밀번호 신임 정보를 추가하십시오. 예를 들어 다음과 같습니다.
    /** {@inheritDoc} */
    @Override
    public boolean commit() throws LoginException {
      // Verify that the login was successful before adding the PasswordCredential to the subject.
      subject.getPrivateCredentials().add(passwordCredential);
      return true;
    }

주제의 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: Tuesday, 6 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_dev_jaas_custom_login_module
파일 이름: twlp_dev_jaas_custom_login_module.html