> Markdown version of [View Access Control](https://vaadin.com/docs/next/flow/security/access-control). Section index: [llms.txt](https://vaadin.com/docs/next/flow/llms.txt)

# View Access Control

View access control decides whether the current user may navigate to a view. It works the same way in Spring applications and in plain servlet applications, and is the foundation that the setup pages of both build on.

Vaadin provides the following tools for it:

- [Navigation access control](https://vaadin.com/docs/next/flow/security/access-control/navigation-access-control.md) checks every navigation against a set of rules, and redirects users who aren’t logged in to the log-in view.

- [Access annotations](https://vaadin.com/docs/next/flow/security/access-control/annotations.md) on view classes, such as `@RolesAllowed`, are the most common way to define the rules.

- Custom access checkers define rules of your own, for example based on the data that a view shows. See [Custom Navigation Access Checker](https://vaadin.com/docs/next/flow/security/access-control/navigation-access-control.md#custom-navigation-access-checker).

- [Error views](https://vaadin.com/docs/next/flow/security/access-control/error-views.md) define what users see when navigation is denied.

## <a id="topics"></a>Topics

- [Navigation Access Control](https://vaadin.com/docs/next/flow/security/access-control/navigation-access-control.md): Explains navigation access control and how it can be customized.
- [Annotation-Based Access Control](https://vaadin.com/docs/next/flow/security/access-control/annotations.md): Controlling which users can navigate to which views with access annotations.
- [Access-Denied & Not-Found Views](https://vaadin.com/docs/next/flow/security/access-control/error-views.md): Customizing the views shown when navigation to a view is denied or the view doesn't exist.
