자료구조

AuthProvider VS Provider 이란?

Z00_HWAN_99 2024. 6. 19. 21:56
728x90
반응형

Map에 관련하여 https://docs.oracle.com/en/java/javase/17/docs/api/에서 공부를 하던 와중에 아래 구현 클래스들에 대해 궁금증이 생겨 이렇게 글을 작성해보았습니다. 저 같은 경우에 한번도 보지 못했던 것들이라 더욱 궁금증이 생겼습니다. 그러면 아래 글에서 자세한 내용 살펴보겠습니다.

 

AuthProvider이란?

AuthProvider는 Java의 javax.security.auth.spi 패키지에 포함된 추상 클래스입니다. 이 클래스는 인증 서비스 제공자의 기본 클래스 역할을 합니다.

  • 목적 : AuthProvider는 특정 인증 메커니즘을 구현하기 위해 사용됨. 예를 들어, 사용자 이름과 비밀번호 기반의 인증, 인증 토큰 기반의 인증 등을 구현할 수 있음.
  • 메서드 :
    • login(Subject subject, CallbackHandler handler): 주어진 주체(Subject)와 콜백 핸들러(CallbackHandler)를 사용하여 인증을 수행.
    • logout(): 현재 인증된 주체의 인증을 해제.
    • setCallbackHandler(CallbackHandler handler): 이 인증 제공자에 대한 콜백 핸들러를 설정.

Provider이란?

Provider는 Java의 java.security 패키지에 포함된 클래스입니다. 이 클래스는 보안 서비스(예: 암호화 알고리즘, 키 생성, 서명 등)를 구현하는 서비스 제공자를 나타냅니다.

  • 목적 : Provider는 암호화와 같은 보안 서비스의 구현을 제공. 여러 서비스 제공자(예: Sun, BouncyCastle 등)가 특정 암호화 알고리즘이나 프로토콜을 제공하기 위해 Provider 클래스를 확장.
  • 메서드 :
    • getName(): 이 제공자의 이름을 반환.
    • getVersion(): 이 제공자의 버전을 반환.
    • getInfo(): 이 제공자에 대한 설명 정보를 반환.
    • putService(Provider.Service s): 이 제공자가 제공하는 서비스를 추가.

공통점

  • 보안과 관련된 기능 제공: 두 클래스 모두 Java 보안 프레임워크의 일부로, 보안과 관련된 기능을 제공.
  • 서비스 제공자 역할: 둘 다 특정한 보안 서비스를 제공하는 역할.
  • 확장 가능: 두 클래스 모두 기본 클래스로 사용되며, 특정 보안 기능을 구현하기 위해 확장.

차이점

  • 역할:
    • AuthProvider: 주로 인증 메커니즘을 구현하는 데 사용됨. 사용자가 시스템에 접근할 수 있도록 인증하는 역할.
    • Provider: 암호화 알고리즘, 키 관리, 디지털 서명 등 다양한 보안 서비스를 제공하는 역할.
  • 위치:
    • AuthProvider: javax.security.auth.spi 패키지에 포함.
    • Provider: java.security 패키지에 포함.
  • 구현 내용:
    • AuthProvider: 인증과 관련된 구체적인 메서드(예: login, logout)를 제공.
    • Provider: 다양한 보안 서비스(예: 암호화 알고리즘, 키 생성기, 서명 등)를 정의하고 제공하는 메서드를 제공.
  • 사용 예:
    • AuthProvider: 특정 인증 시스템을 구현하는 데 사용됨
      ▶ (간단한 사용자 이름과 비밀번호 기반 인증을 구현 - 기본적인 AuthProvider 서브클래스를 만들고, 로그인 및 로그아웃 기능을 구현)
    • Provider: 암호화 라이브러리(예: BouncyCastle)를 Java 환경에 추가하여 다양한 암호화 알고리즘을 사용할 수 있게 함
      ▶ (Java Security에 새로운 암호화 알고리즘을 추가 - 새로운 Provider 클래스를 생성하고, 이를 Java Security에 등록)

요약

  • AuthProvider는 인증 메커니즘을 구현하는 데 사용되는 클래스.
  • Provider는 암호화 알고리즘과 같은 다양한 보안 서비스를 제공하는 클래스.
  • 두 클래스는 모두 보안과 관련된 기능을 제공하지만, 그 역할과 사용 목적이 다름.

AuthProvider와 Provider는 위에서 알아본대로 Java의 보안 프레임워크에서 사용되는 중요한 클래스들입니다. 이들은 모두 Java의 보안 아키텍처와 관련된 기능을 제공하지만, 서로 다른 역할을 수행합니다.

 

https://github.com/bottomsUp-99

 

bottomsUp-99 - Overview

Backend Developer. bottomsUp-99 has 10 repositories available. Follow their code on GitHub.

github.com

 

728x90
반응형

'자료구조' 카테고리의 다른 글

Comparable VS Comparator 의 이해  (0) 2024.06.30
ConcurrentHashMap VS ConcurrentSkipListMap 이란?  (0) 2024.06.19
Map이란?  (0) 2024.06.19
HashSet이란?  (0) 2024.06.17
HashMap이란?  (0) 2024.06.17