Class QuarkusSecurityContextHandler

java.lang.Object
com.vaadin.browserless.quarkus.QuarkusSecurityContextHandler
All Implemented Interfaces:
SecurityContextHandler<io.quarkus.security.identity.SecurityIdentity>

public class QuarkusSecurityContextHandler extends Object implements SecurityContextHandler<io.quarkus.security.identity.SecurityIdentity>
Quarkus Security implementation of SecurityContextHandler.

Manages the SecurityIdentity via CurrentIdentityAssociation for multi-user test isolation.

The setupAuthentication(SecurityIdentity) method expects a SecurityIdentity instance as the credentials parameter.

See Also:
  • Constructor Details

    • QuarkusSecurityContextHandler

      public QuarkusSecurityContextHandler()
  • Method Details

    • setupAuthentication

      public void setupAuthentication(io.quarkus.security.identity.SecurityIdentity credentials)
      Description copied from interface: SecurityContextHandler
      Sets up authentication for a new user from the given credentials.

      The type parameter C is determined by the framework implementation. For example, Spring uses org.springframework.security.core.Authentication and Quarkus uses io.quarkus.security.identity.SecurityIdentity.

      Implementations must accept null credentials and produce an anonymous-equivalent state — e.g. Spring sets an AnonymousAuthenticationToken, mirroring @WithAnonymousUser. SecurityContextHandler.clearContext() is invoked immediately before this method so that earlier state cannot leak through.

      Specified by:
      setupAuthentication in interface SecurityContextHandler<io.quarkus.security.identity.SecurityIdentity>
      Parameters:
      credentials - framework-specific credentials object, or null for an anonymous user
    • saveContext

      public io.quarkus.security.identity.SecurityIdentity saveContext()
      Description copied from interface: SecurityContextHandler
      Captures the current thread's security context as an opaque snapshot.

      Called automatically when switching away from a user context to preserve its security state.

      Specified by:
      saveContext in interface SecurityContextHandler<io.quarkus.security.identity.SecurityIdentity>
      Returns:
      an opaque snapshot of the current security context, or null if no security context is active
    • restoreContext

      public void restoreContext(Object snapshot)
      Description copied from interface: SecurityContextHandler
      Restores a previously saved security context snapshot onto the current thread.
      Specified by:
      restoreContext in interface SecurityContextHandler<io.quarkus.security.identity.SecurityIdentity>
      Parameters:
      snapshot - a snapshot previously returned by SecurityContextHandler.saveContext(), or null to clear the context
    • clearContext

      public void clearContext()
      Description copied from interface: SecurityContextHandler
      Clears the security context from the current thread.
      Specified by:
      clearContext in interface SecurityContextHandler<io.quarkus.security.identity.SecurityIdentity>
    • createCredentials

      public io.quarkus.security.identity.SecurityIdentity createCredentials(String username, String... roles)
      Builds a non-anonymous SecurityIdentity for the given username and roles.
      Specified by:
      createCredentials in interface SecurityContextHandler<io.quarkus.security.identity.SecurityIdentity>
      Parameters:
      username - the username
      roles - the roles for the user; never null, may be empty
      Returns:
      the credentials, never null