У меня есть веб-приложение, которое защищено с помощью HTTP-Basic auth. Я также реализовал фильтр, используя интерфейс ServletRequestListener
. Теперь, когда фильтр вызывает метод requestInitialized
, getUserPrincipal-Method запроса возвращает null. Но когда я проверяю заголовки запросов, заголовок авторизации устанавливается с зашифрованным значением. Вот код:ServletRequestListener - получение userprincipal возвращает null
@Override
public void requestInitialized(ServletRequestEvent e) {
HttpServletRequest request = (HttpServletRequest) e.getServletRequest();
//p is null
Principal p = request.getUserPrincipal();
Enumeration<String> enH = request.getHeaders("Authorization");
while (enH.hasMoreElements()) {
String s = enH.nextElement();
System.out.println(s);
//prints.
//Basic c3RhY2tvdmVyZmxvdzpteXBhc3N3b3Jk
}
}
Почему пользовательский интерфейс не инициализирован?
Некоторые подробности о том, как вы настроите ваш встроенный мола бы быть полезным. Знайте, что вам, скорее всего, потребуется настроить функцию LoginService + Constraint + ConstraintMapping + Roles + ConstraintSecurityHandler ... [пример] (http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree /examples/embedded/src/main/java/org/eclipse/jetty/embedded/SecuredHelloHandler.java) –