Я пытаюсь аутентифицировать свое приложение Vaadin с помощью OpenID, и у меня возникают трудности с обработкой перенаправлений в приложении.
При загрузке приложения пользователям предоставляется OpenIDУтилита входа в систему, которая представляет собой простое окно Vaadin с некоторыми кнопками, которые запускают перенаправления на отдельный сервлет аутентификации (LoginServlet)
Затем LoginServlet обрабатывает перенаправление поставщику OpenID и последующее перенаправление обратно всервлет, который обрабатывает ответ аутентификации.Здесь обновляется статус безопасности (с использованием Apache Shiro), который можно проверить приложением Vaadin позже.
Затем LoginServlet перенаправляет в приложение, однако в этом и заключается проблема - как обработать это перенаправление?Окно Vaadin, по-видимому, не имеет метода обработки перенаправлений.
В настоящее время кажется, что единственным вариантом является использование UriFragmentUtility.FragmentChangedListener и обеспечение уникальности перенаправления из LoginServlet с помощью UUID, обеспечивающего изменение фрагментапроисходит событие, позволяющее проверить статус аутентификации пользователя и разрешить доступ к приложению.Это, однако, является чем-то вроде взлома и приводит к грязному URIF-фрагменту.
Если у кого-то есть какие-либо лучшие идеи по интеграции OpenID и Vaadin или просто по обработке перенаправлений в Vaadin, я был бы очень признателен.