code: private void enforce(FacesContext context, UIViewRoot viewRoot, List<? extends Annotation> annotations) {
          if (annotations == null || annotations.isEmpty()) {
              log.debug("Annotations is null/empty");
              return;
          }
          AuthorizationCheckEvent event = new AuthorizationCheckEvent(annotations);
          authorizationCheckEvent.fire(event);
          if (!event.isPassed()) {
              if (!identity.isLoggedIn()) {
                  log.debug("Access denied - not logged in");
                  redirectToLoginPage(context, viewRoot);
                  return;
              } else {
                  log.debug("Access denied - not authorized");
                  notAuthorizedEventEvent.fire(new NotAuthorizedEvent());
                  redirectToAccessDeniedView(context, viewRoot);
                  return;
              }
          } else {
              log.debug("Access granted");
          }
      }
docs: Enforce the list of applicable annotations, by firing an AuthorizationCheckEvent.  The event is then inspected to
  determine if access is allowed.  Faces navigation is then re-routed to the @LoginView if the user is not logged in,
  otherwise to the @AccessDenied view.
  
  @param context
  @param viewRoot
  @param annotations