6.2. 사용 가능한 공급자 사용
공급자 구현에서는 Red Hat Single Sign-On에서 사용할 수 있는 다른 공급자를 사용할 수 있습니다. 기존 공급자는 일반적으로 SPI 섹션에 설명된 대로 공급자에서 사용할 수 있는 KeycloakSession
을 사용하여 검색할 수 있습니다.
Red Hat Single Sign-On에는 다음 두 가지 공급자 유형이 있습니다.
단일 구현 공급자 유형 - Red Hat Single Sign-On 런타임에 특정 공급자 유형에는 하나의 활성 구현만 있을 수 있습니다.
예를 들어
HostnameProvider
는 Red Hat Single Sign-On에서 사용할 호스트 이름을 지정하고 전체 Red Hat Single Sign-On 서버에 공유하도록 지정합니다. 따라서 이 공급자는 Red Hat Single Sign-On 서버에 대해 활성화된 단일 구현만 있을 수 있습니다. 서버 런타임에 사용할 수 있는 공급자 구현이 여러 개 있는 경우 해당 구현 중 하나를 기본 설정으로 지정해야 합니다.
예를 들면 다음과 같습니다.
<spi name="hostname"> <default-provider>default</default-provider> ... </spi>
값으로 사용되는 기본값은 특정 공급자 팩토리 구현의 default
-providerProviderFactory.getId()
에서 반환된 ID와 일치해야 합니다. 코드에서 keycloakSession.getProvider(HostnameProvider.class)
와 같은 공급자를 가져올 수 있습니다.
다중 구현 공급자 유형 - 사용 가능한 여러 구현을 허용하고 Red Hat Single Sign-On 런타임에서 함께 작업할 수 있는 공급자 유형입니다.
예를 들어
EventListener
공급자를 사용하면 여러 구현을 사용할 수 있고 등록할 수 있습니다. 즉, 특정 이벤트를 모든 리스너(jboss-logging, sysout 등)로 보낼 수 있습니다. 코드에서는session.getProvider(EventListener.class, "jboss-logging")
와 같이 공급자의 지정된 인스턴스를 가져올 수 있습니다. 위에서 설명한 대로 이 공급자 유형의 여러 인스턴스가 있을 수 있으므로 공급자의provider_id
를 두 번째 인수로 지정해야 합니다.공급자 ID는 특정 공급자 팩토리 구현의
ProviderFactory.getId()
에서 반환된 ID와 일치해야 합니다. 일부 공급자 유형은 두 번째 인수로ComponentModel
을 사용하여 검색할 수 있으며 일부(예:Authenticator
)KeycloakSessionFactory
를 사용하여 검색할 수도 있습니다. 향후 더 이상 사용되지 않을 수 있으므로 자체 공급자를 이러한 방식으로 구현하는 것은 권장되지 않습니다.