com.vaadin.flow.spring.security.

Class AuthenticationContext

java.lang.Object
com.vaadin.flow.spring.security.AuthenticationContext
public class AuthenticationContext extends Object

The authentication context of the application.

It allows to access authenticated user information and to initiate the logout process. An instance of this class is available for injection as bean in view and layout classes. The class is not Serializable, so potential referencing fields in Vaadin views should be defined transient.

Since:

23.3

Author:

Vaadin Ltd

  • Constructor Details

    • AuthenticationContext

      public AuthenticationContext()
  • Method Details

    • getAuthenticatedUser

      public <U> Optional<U> getAuthenticatedUser(Class<U> userType)

      Gets an Optional with an instance of the current user if it has been authenticated, or empty if the user is not authenticated. Anonymous users are considered not authenticated.

      Type Parameters:

      U - the type parameter of the expected user instance

      Parameters:

      userType - the type of the expected user instance

      Returns:

      an Optional with the current authenticated user, or empty if none available

      Throws:

      ClassCastException - if the current user instance does not match the given userType.

    • getPrincipalName

      public Optional<String> getPrincipalName()

      Gets an Optional containing the authenticated principal name, or an empty optional if the user is not authenticated. The principal name usually refers to a username or an identifier that can be used to retrieve additional information for the authenticated user. Anonymous users are considered not authenticated.

      Returns:

      an Optional containing the authenticated principal name or an empty optional if not available.

    • isAuthenticated

      public boolean isAuthenticated()

      Indicates whether a user is currently authenticated. Anonymous users are considered not authenticated.

      Returns:

      true if a user is currently authenticated, otherwise false

    • logout

      public void logout()

      Initiates the logout process of the current authenticated user by invalidating the local session and then notifying LogoutHandler.

    • getGrantedAuthorities

      public Collection<? extends org.springframework.security.core.GrantedAuthority> getGrantedAuthorities()

      Gets the authorities granted to the current authenticated user.

      Returns:

      an unmodifiable collection of GrantedAuthoritys or an empty collection if there is no authenticated user.

    • getGrantedRoles

      public Collection<String> getGrantedRoles()

      Gets the roles granted to the current authenticated user.

      Returns:

      an unmodifiable collection of role names (without the role prefix) or an empty collection if there is no authenticated user.

    • hasRole

      public boolean hasRole(String role)

      Checks whether the current authenticated user has the given role.

      The role must be provided without the role prefix, for example hasRole("USER") instead of hasRole("ROLE_USER").

      Parameters:

      role - the role to check, without the role prefix.

      Returns:

      true if the user holds the given role, otherwise false.

    • hasAnyRole

      public boolean hasAnyRole(Collection<String> roles)

      Checks whether the current authenticated user has any of the given roles.

      Roles must be provided without the role prefix, for example hasAnyRole(Set.of("USER", "ADMIN")) instead of hasAnyRole(Set.of("ROLE_USER", "ROLE_ADMIN")).

      Parameters:

      roles - a collection containing at least one role, without the role prefix.

      Returns:

      true if the user holds at least one of the given roles, otherwise false.

      Throws:

      IllegalArgumentException - if the given collection is empty.

    • hasAnyRole

      public boolean hasAnyRole(String... roles)

      Checks whether the current authenticated user has any of the given roles.

      Roles must be provided without the role prefix, for example hasAnyRole("USER", "ADMIN") instead of hasAnyRole("ROLE_USER", "ROLE_ADMIN").

      Parameters:

      roles - an array containing at least one role, without the role prefix.

      Returns:

      true if the user holds at least one of the given roles, otherwise false.

      Throws:

      IllegalArgumentException - if the given array is empty.

    • hasAllRoles

      public boolean hasAllRoles(Collection<String> roles)

      Checks whether the current authenticated user has all the given roles.

      Roles must be provided without the role prefix, for example hasAllRoles(Set.of("USER", "ADMIN")) instead of hasAllRoles(Set.of("ROLE_USER", "ROLE_ADMIN")).

      Parameters:

      roles - a collection containing at least one role, without the role prefix.

      Returns:

      true if the user holds all the given roles, otherwise false.

      Throws:

      IllegalArgumentException - if the given collection is empty.

    • hasAllRoles

      public boolean hasAllRoles(String... roles)

      Checks whether the current authenticated user has all the given roles.

      Roles must be provided without the role prefix, for example hasAllRoles("USER", "ADMIN") instead of hasAllRoles("ROLE_USER", "ROLE_ADMIN").

      Parameters:

      roles - an array containing at least one role, without the role prefix.

      Returns:

      true if the user holds all the given roles, otherwise false.

      Throws:

      IllegalArgumentException - if the given array is empty.

    • hasAuthority

      public boolean hasAuthority(String authority)

      Checks whether the current authenticated user has the given authority.

      Parameters:

      authority - the authority to check.

      Returns:

      true if the user holds the given authority, otherwise false.

    • hasAnyAuthority

      public boolean hasAnyAuthority(Collection<String> authorities)

      Checks whether the current authenticated user has any of the given authorities.

      Parameters:

      authorities - a collection containing at least one authority.

      Returns:

      true if the user holds at least one of the given authorities, otherwise false.

      Throws:

      IllegalArgumentException - if the given collection is empty.

    • hasAnyAuthority

      public boolean hasAnyAuthority(String... authorities)

      Checks whether the current authenticated user has any of the given authorities.

      Parameters:

      authorities - an array containing at least one authority.

      Returns:

      true if the user holds at least one of the given authorities, otherwise false.

      Throws:

      IllegalArgumentException - if the given array is empty.

    • hasAllAuthorities

      public boolean hasAllAuthorities(Collection<String> authorities)

      Checks whether the current authenticated user has all the given authorities.

      Parameters:

      authorities - a collection containing at least one authority.

      Returns:

      true if the user holds all the given authorities, otherwise false.

      Throws:

      IllegalArgumentException - if the given collection is empty.

    • hasAllAuthorities

      public boolean hasAllAuthorities(String... authorities)

      Checks whether the current authenticated user has all the given authorities.

      Parameters:

      authorities - an array containing at least one authority.

      Returns:

      true if the user holds all the given authorities, otherwise false.

      Throws:

      IllegalArgumentException - if the given array is empty.

    • applySecurityConfiguration

      public static void applySecurityConfiguration(org.springframework.security.config.annotation.web.builders.HttpSecurity httpSecurity, AuthenticationContext authCtx)

      Augments the given AuthenticationContext with Spring Security. This method can be used to configure the AuthenticationContext when VaadinWebSecurity is not used to set up Spring Security.

      Parameters:

      httpSecurity - Spring HttpSecurity for security configuration

      authCtx - The authentication context of the application.