Я создал LoggingFilter для Джерси и настроил его правильно в web.xml. Все работает нормально. Когда я делаю «GET», я получаю userPrincipal (request.getUserPrincipal()), но для POST он возвращает null. Я написал несколько служб REST в java 1.4 на Websphere и всегда мог получить доступ к userPrincipal, но на Tomcat/1.6 я получил выше. Я использую Basic Auth. Это Джерси делает это? Или Томкат?Jersey Logging filter ест UserPrincipal для POST
<security-constraint>
<web-resource-collection>
<web-resource-name>Lookup Resources</web-resource-name>
<description>A set of secured resources.</description>
<url-pattern>/rest/lookup/*</url-pattern>
<http-method>GET</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>DataServ_Lookup</role-name>
<role-name>DataServ_Admin</role-name>
</auth-constraint>
<!-- Comment this out for Dev. It is a MUST for Prod...
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>-->
</security-constraint>
'UserPrincipal' установлен веб-контейнером (не Джерси). Можете ли вы поделиться своим «web.xml» (раздел, относящийся к аутентификации) и «context.xml» (относящийся к клапанам)? Также вы можете анализировать заголовки, отправленные на веб-сервер, используя Firebug, например: если браузер не отправляет информацию аутентификации, 'UserPrincipal' не будет присутствовать. –
Я предполагаю, что, поскольку аутентификация выполняется, что учетные данные были переданы. Или это слишком большое предположение? – markthegrea