Class ProviderRegistry

java.lang.Object
cloud.opencode.base.oauth2.provider.ProviderRegistry

public class ProviderRegistry extends Object
OAuth2 Provider Registry OAuth2 Provider 注册表

Registry for managing OAuth2 providers.

用于管理 OAuth2 提供者的注册表。

Features | 主要功能:

  • Provider registration - Provider 注册
  • Provider lookup - Provider 查找
  • Built-in providers - 内置 Provider
  • Custom provider support - 自定义 Provider 支持

Usage Examples | 使用示例:

// Get the global registry
ProviderRegistry registry = ProviderRegistry.global();

// Register a custom provider
registry.register(new CustomProvider.Builder()
    .name("MyProvider")
    .authorizationEndpoint("https://auth.example.com/authorize")
    .tokenEndpoint("https://auth.example.com/token")
    .build());

// Get a provider
OAuth2Provider provider = registry.get("Google");

// List all providers
Set<String> names = registry.names();

Thread Safety | 线程安全:

This class is thread-safe.

此类是线程安全的。

Since:
JDK 25, opencode-base-oauth2 V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Constructor Details

    • ProviderRegistry

      public ProviderRegistry()
      Create a new empty registry 创建新的空注册表
  • Method Details

    • global

      public static ProviderRegistry global()
      Get the global registry with built-in providers 获取带有内置提供者的全局注册表
      Returns:
      the global registry | 全局注册表
    • withBuiltins

      public static ProviderRegistry withBuiltins()
      Create a new registry with built-in providers 创建带有内置提供者的新注册表
      Returns:
      the new registry | 新注册表
    • register

      public ProviderRegistry register(OAuth2Provider provider)
      Register a provider 注册 Provider
      Parameters:
      provider - the provider to register | 要注册的 Provider
      Returns:
      this registry | 此注册表
    • register

      public ProviderRegistry register(String name, OAuth2Provider provider)
      Register a provider with a custom name 使用自定义名称注册 Provider
      Parameters:
      name - the name to register under | 注册的名称
      provider - the provider to register | 要注册的 Provider
      Returns:
      this registry | 此注册表
    • get

      public OAuth2Provider get(String name)
      Get a provider by name 按名称获取 Provider
      Parameters:
      name - the provider name (case-insensitive) | Provider 名称(不区分大小写)
      Returns:
      the provider | Provider
      Throws:
      OAuth2Exception - if provider not found | 如果 Provider 未找到
    • find

      public Optional<OAuth2Provider> find(String name)
      Find a provider by name 按名称查找 Provider
      Parameters:
      name - the provider name (case-insensitive) | Provider 名称(不区分大小写)
      Returns:
      the provider if found | 找到的 Provider
    • contains

      public boolean contains(String name)
      Check if a provider is registered 检查 Provider 是否已注册
      Parameters:
      name - the provider name | Provider 名称
      Returns:
      true if registered | 如果已注册返回 true
    • remove

      public Optional<OAuth2Provider> remove(String name)
      Remove a provider 移除 Provider
      Parameters:
      name - the provider name | Provider 名称
      Returns:
      the removed provider if found | 移除的 Provider
    • names

      public Set<String> names()
      Get all registered provider names 获取所有已注册的 Provider 名称
      Returns:
      the provider names | Provider 名称
    • all

      public Collection<OAuth2Provider> all()
      Get all registered providers 获取所有已注册的 Provider
      Returns:
      the providers | Provider 列表
    • size

      public int size()
      Get the number of registered providers 获取已注册的 Provider 数量
      Returns:
      the count | 数量
    • isEmpty

      public boolean isEmpty()
      Check if the registry is empty 检查注册表是否为空
      Returns:
      true if empty | 如果为空返回 true
    • clear

      public void clear()
      Clear all providers 清除所有 Provider