базовый аутентификатор в SEAM - PullRequest
2 голосов
/ 05 октября 2009

Я хочу сделать базовый обработчик аутентификатора в SEAM. Я положил это в components.xml:

    <web:authentication-filter url-pattern="/test/resource/rest/*" auth-type="basic"/>

Я также вставил web.xml фильтр:

<servlet>
    <servlet-name>Rest Servlet</servlet-name>
    <servlet-class>test.BasicAuthenticationServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>Rest Servlet</servlet-name>
    <url-pattern>/test/resource/rest/*</url-pattern>
</servlet-mapping>

Я создал класс BasicAuthenticationServlet, например:

public class BasicAuthenticationServlet extends AuthenticationFilter {

public void doFilter(final HttpServletRequest request,
            final HttpServletResponse response, FilterChain chain){
//some code here
}

chain.doFilter(request, response){
//some code here
}

}

поэтому я переопределил метод doFilter.

Теперь я не понимаю, почему он не работает? Я не нашел ни одного примера кода для базовой аутентификации. в SEAM по всему Интернету (я имею в виду код, включающий фильтр и класс; так что, вероятно, я что-то упускаю в своем коде?)

Ответы [ 2 ]

3 голосов
/ 13 октября 2009

Я реализовал это с помощью

<web:authentication-filter url-pattern="*.seam" auth-type="basic"/>
<security:identity authenticate-method="#{authenticator.authenticate}"/>

а не сервлеты.

А в методе authenticate возьмите пользователя и передайте так:

final String username = identity.getCredentials().getUsername();
  final String password = identity.getCredentials().getPassword();
0 голосов
/ 06 октября 2009

Почему вы не хотите реализовать это Шовным способом ?

...