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: 특정 인증 시스템을 구현하는 데 사용됨
요약
- 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 |