2015-02-19 4 views
1

Я разоблачил некоторый REST API с помощью Jersey 2 (сервера Tomcat) и успешно реализованы Basic authentication (нужно только вещей аутентификации не авторизации) с помощью ContainerRequestFilter фильтра, как показано нижеРеализация базовой аутентификации для апи отдыха с помощью Jersey 2

public class AuthFilter implements ContainerRequestFilter{ 

    @Context 
    HttpServletRequest request; 

    @Override 
    public void filter(ContainerRequestContext context) { 
    ............................ 
    //getting username/password authorization header and validating 

Когда я сказал то же самое моему ведущему, он сказал, что не используйте фильтры, так как каждый раз, когда ваш априот отдыха попадает, этот фильтр будет вызван. Поэтому выполните базовую проверку подлинности на уровне контейнера. Я использую сервер Tomcat. В web.xml, это определяется

<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class> 

СОБРАННОЙ он имеет в виду? Может ли кто-нибудь посоветовать мне, как реализовать то, как говорит мое руководство?

+0

Возможно [это поможет] (http://stackoverflow.com/a/28472044/2587435) –

ответ

2

documentation gives you examples о том, как настроить это через web.xml. Вам нужно будет сконфигурировать это, используя login-config, принадлежащий царству. Затем веб-контейнер заботится о защите ресурсов на основе шаблонов URL.

  • Обратите внимание, что данные передаются в виде простого текста (в зашифрованном виде) с помощью заголовка HTTP, так что вам нужно подумать о том, чтобы гарантировать, что не на слежения за ними (например, HTTPS).
  • Проверяете ли вы этот заголовок на фильтре или на контейнере, вы не освобождаете вас от накладных расходов, необходимых для выполнения проверки (что, вероятно, незначительно, но я никогда не профилировал эту область кода для котировки чисел).
+0

Что такое царство здесь? Кроме того, чтобы уточнить, мне нужно сделать только часть авторизации, а не авторизацию. – Anand

+0

Область может быть хранилищем аутентификации на основе файлов или баз данных. 'tomcat-users.xml' является областью файлов на основе XML. –

+0

Как использовать проверку подлинности на базе базы данных? В conf/server.xml мне нужно создать область? Кроме того, какое имя домена следует указывать в web.xml? – Anand

Смежные вопросы