StaticInstanceGets the singleton instance of the factory
Clears all registered providers (useful for testing)
Gets all providers matching an issuer URL. Unlike getByIssuer() which returns only the first match, this returns all providers for a given issuer. This is needed when multiple apps (e.g. MJExplorer + MJCentral) share the same Auth0 domain but have different audiences (client IDs).
Gets all registered providers
The Global Object Store is a place to store global objects that need to be shared across the application. Depending on the execution environment, this could be the window object in a browser, or the global object in a node environment, or something else in other contexts. The key here is that in some cases static variables are not truly shared because it is possible that a given class might have copies of its code in multiple paths in a deployed application. This approach ensures that no matter how many code copies might exist, there is only one instance of the object in question by using the Global Object Store.
Checks if any providers are registered
StaticcreateCreates an authentication provider instance based on configuration Uses MJGlobal ClassFactory to instantiate the correct provider class
StaticDiscoverCollects provider configurations from environment variables by asking every registered provider class to configure itself.
This replaces the hard-coded env block that used to live in MJServer's config and
enumerated Entra / Auth0 / Cognito inline. Discovery is now driven by the same
@RegisterClass registry that resolves drivers, so a third-party provider gets the
env-var experience without a core edit — see IEnvironmentConfigurableProvider.
A provider whose variables are absent returns null and is skipped. A provider whose mapping throws is skipped with an error rather than taking down startup, because one malformed mapping must not cost a deployment its other providers.
Environment to read from; defaults to process.env.
One config per provider that found its variables, deduplicated by name.
Protected StaticgetReturns the singleton instance of the class. If the instance does not exist, it is created and stored in the Global Object Store. If className is provided it will be used as part of the key in the Global Object Store, otherwise the actual class name will be used. NOTE: the class name used by default is the lowest level of the object hierarchy, so if you have a class that extends another class, the lowest level class name will be used.
OptionalclassName: stringStaticgetGets all registered provider types from the ClassFactory
StaticisChecks if a provider type is registered
Factory and registry for managing authentication providers Combines provider creation and lifecycle management in a single class