Рассмотрим основные компоненты, предоставляемые платформой для построения портала.
-
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
проекта.
Пример портала, содержащего страницу регистрации пользователей, включен в шаблон проекта, рассмотренный в ???