Class NavigationAccessControlConfigurer

java.lang.Object
com.vaadin.flow.spring.security.NavigationAccessControlConfigurer

public final class NavigationAccessControlConfigurer extends Object
Allows to configure the NavigationAccessControl.

To configure Flow navigation access control, a Spring bean on type NavigationAccessControlConfigurer should be defined.

In Spring Boot applications, a default NavigationAccessControlConfigurer bean is provided. It activates AnnotatedViewAccessChecker, but it disables the NavigationAccessControl, for backward compatibility.

However, if Spring Security is configured extending VaadinWebSecurity, the NavigationAccessControl is enabled automatically.

Default settings can be overridden by defining a custom NavigationAccessControlConfigurer bean.
 @Bean
 NavigationAccessControlConfigurer navigationAccessControlConfigurer() {
     return new NavigationAccessControlConfigurer()
             .withRoutePathAccessChecker().withLoginView(LoginView.class);
 }
 
 

NOTE: if the bean in exposed in a configuration class that extends VaadinWebSecurity, the method must be defined static to prevent cyclic dependencies errors.
 @Bean
 class SecurityConfig extends VaadinWebSecurity {
     static NavigationAccessControlConfigurer navigationAccessControlConfigurer() {
         return new NavigationAccessControlConfigurer()
                 .withRoutePathAccessChecker().withLoginView(LoginView.class);
     }
 }
 
 

NavigationAccessControl bean can be configured by:
  • activating out-of-the-box navigation access checkers
  • providing custom navigation access checkers implementations
  • set the login view class or path
  • completely disable access control

The NavigationAccessControl will automatically be disabled if no navigation access checkers are provided.
See Also: