Class PhpBBOidcIntegration

java.lang.Object
com.cloudforge.core.oidc.PhpBBOidcIntegration
All Implemented Interfaces:
OidcIntegration

public class PhpBBOidcIntegration extends Object implements OidcIntegration
OIDC integration for phpBB via OAuth extension / ALB OIDC.

phpBB supports OAuth via the phpBB OAuth extension. Authentication is primarily handled at the ALB layer via Cognito. These env vars expose endpoint info for custom OAuth extension configuration.

Since:
3.2.0
  • Constructor Details

    • PhpBBOidcIntegration

      public PhpBBOidcIntegration()
  • Method Details

    • isSupported

      public boolean isSupported()
      Description copied from interface: OidcIntegration
      Returns whether this application supports OIDC integration.
      Specified by:
      isSupported in interface OidcIntegration
      Returns:
      true if application has OIDC support
    • getIntegrationMethod

      public String getIntegrationMethod()
      Description copied from interface: OidcIntegration
      Returns the OIDC integration method for this application.

      Examples:

      • jenkins: OIDC Plugin
      • gitlab: Built-in OmniAuth
      • grafana: Built-in generic_oauth
      • sonarqube: OIDC Plugin
      Specified by:
      getIntegrationMethod in interface OidcIntegration
      Returns:
      integration method description
    • getEnvironmentVariables

      public Map<String,String> getEnvironmentVariables(OidcConfiguration config)
      Description copied from interface: OidcIntegration
      Returns environment variables needed for OIDC configuration.

      These are passed to the container or EC2 userdata script.

      Example for Grafana:

      GF_AUTH_GENERIC_OAUTH_ENABLED=true
      GF_AUTH_GENERIC_OAUTH_NAME=Cognito
      GF_AUTH_GENERIC_OAUTH_CLIENT_ID=${clientId}
      GF_AUTH_GENERIC_OAUTH_AUTH_URL=${authUrl}
      
      Specified by:
      getEnvironmentVariables in interface OidcIntegration
      Parameters:
      config - OIDC configuration from provider
      Returns:
      map of environment variable name to value
    • getUserDataCommands

      public List<String> getUserDataCommands(OidcConfiguration config, Ec2Context context)
      Description copied from interface: OidcIntegration
      Returns UserData commands for setting up OIDC integration.

      These commands are added to the EC2 userdata script to configure OIDC integration during instance initialization.

      Specified by:
      getUserDataCommands in interface OidcIntegration
      Parameters:
      config - OIDC configuration from provider
      context - EC2 context with stack information
      Returns:
      list of shell commands
    • getOidcCallbackPath

      public String getOidcCallbackPath()
      Description copied from interface: OidcIntegration
      Returns the OIDC callback path for this application.

      This is the path where the OIDC provider redirects after authentication. Each application has a different callback path based on its OIDC implementation.

      Examples:

      • Jenkins: /securityRealm/finishLogin
      • Mattermost: /signup/gitlab/complete (uses GitLab OAuth provider for OIDC)
      • GitLab: /users/auth/openid_connect/callback
      • Grafana: /login/generic_oauth
      Specified by:
      getOidcCallbackPath in interface OidcIntegration
      Returns:
      callback path (e.g., "/securityRealm/finishLogin")
    • supportsAlbOidc

      public boolean supportsAlbOidc()
      Description copied from interface: OidcIntegration
      Returns whether this application supports ALB-level OIDC authentication.

      ALB-level auth means authentication is handled by the ALB before traffic reaches the application. The application sees already-authenticated users via headers (X-Amzn-Oidc-*).

      Most applications support this as it's transparent to the application.

      Specified by:
      supportsAlbOidc in interface OidcIntegration
      Returns:
      true if ALB-level OIDC is supported (default: true)
    • supportsCognito

      public boolean supportsCognito()
      Description copied from interface: OidcIntegration
      Returns whether this application supports Cognito as an identity provider.

      Cognito provides:

      • User pool with email/password authentication
      • MFA support (TOTP, SMS)
      • OAuth 2.0 / OIDC endpoints
      • Hosted UI for login
      Specified by:
      supportsCognito in interface OidcIntegration
      Returns:
      true if Cognito OIDC is supported (default: true)
    • supportsApplicationOidc

      public boolean supportsApplicationOidc()
      Description copied from interface: OidcIntegration
      Returns whether this application supports application-level OIDC.

      Application-level OIDC means the application handles authentication itself using its built-in OIDC/OAuth support. The application needs:

      • Client ID and secret
      • OIDC endpoints (issuer, auth, token, userinfo)
      • Redirect URL configuration

      Examples: Jenkins OIDC plugin, GitLab OmniAuth, Grafana generic_oauth

      Specified by:
      supportsApplicationOidc in interface OidcIntegration
      Returns:
      true if application-level OIDC is supported (default: true if integration exists)