Skip to content

Support Standard IdentityStore deferring authentication to the Application Server #346

@cptaps

Description

@cptaps

While upgrading some old J2EE applications I have needed to continue supporting an existing EIS based authentication mechanism that some clients preferred to use, but for other clients the options available out-of-the-box with various Application Server providers are sufficient. Regardless of the actual credential validation however, retrieval of the credentials was a custom mechanism and best implemented using the HttpAuthenticationMechanism that the Security specification provides. Unfortunately, for Wildfly at least, this appears to just indicate that the application will handle all authentication itself, and the only IdentityStore options available out-of-the-box are those in the specification thus precluding the use of many options that would otherwise be available.

Could we please come up with a standardized IdentityStore for deferring the credential validation to the Application Server itself? This would surely reduce the number of such IdentityStore mechanisms that need to be added to/removed from the specification over the years and provide incentives for Application Server providers to differentiate their products further. It would also make it much easier for developers to offer a custom authentication mechanism while retaining the option to use out-of-the-box credential validation.

Surely a mechanism such as the ConfigProperty mechanism under the Jakarta Connectors specification could be used to support any custom configuration requirements the Application Server might require for their various options. Payara may already have something like this (, I believe it takes a 'Realm'?) Wildfly could make the 'SecurityDomain' a ConfigProperty as required. If the Application Server provides no built in authentication support, then they wouldn't be required to support this IdentityStore option.

Does this sound reasonable?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions