4.6.1. Базовая функциональность

Рассмотрим основные компоненты, предоставляемые платформой для построения портала.

  • PortalAppContextLoader - загрузчик AppContext , должен быть зарегистрирован в элементе listener файла web.xml.

  • PortalDispatcherServlet - центральный сервлет, распределяющий запросы по контроллерам Spring MVC, как для веб-интерфейса, так и для REST API. Набор файлов конфигурации контекста Spring определяется свойством приложения cuba.dispatcherSpringContextConfig . Данный сервлет должен быть зарегистрирован в web.xml и отображен на корневой URL веб-приложения.

  • App - объект, содержащий информацию о текущем HTTP запросе и ссылку на объект Connection. Экземпляр App может быть получен в прикладном коде вызовом статического метода App.getInstance().

  • Connection - позволяет выполнять логин и логаут пользователя на Middleware.

  • PortalSession - специфичесий для портала объект пользовательской сессии. Возвращается интерфейсом инфраструктуры UserSessionSource , а также статическим методом PortalSessionProvider.getUserSession().

    Имеет дополнительный метод isAuthenticated(), возвращающий true, если данная сессия принадлежит неанонимному, т.е. явно зарегистрировавшемуся с логином и паролем, пользователю.

    При первом обращении некоторого пользователя к порталу SecurityContextHandlerInterceptor создает для него (или привязывает уже имеющуюся) анонимную сессию, регистрируясь на Middleware с именем пользователя, указанным в свойстве приложения cuba.portal.anonymousUserLogin . Регистрация производится методом loginTrusted() , поэтому в блоке портала необходимо установить также свойство cuba.trustedClientPassword . Таким образом, любой анонимный пользователь портала может работать с сервисами Middleware с правами пользователя cuba.portal.anonymousUserLogin.

    Если портал содержит страницу регистрации пользователя с именем и паролем, то после выполнения Connection.login() при обработке запросов SecurityContextHandlerInterceptor устанавливает в потоке выполнения пользовательскую сессию явно зарегистрированного пользователя, и работа с Middleware происходит от его имени.

  • PortalLogoutHandler - обрабатывает навигацию на страницу логаута. Должен быть зарегистрирован в файле portal-security-spring.xml проекта.

Пример портала, содержащего страницу регистрации пользователей, включен в шаблон проекта, рассмотренный в ???