Spring Security Filter и отправленные данные - PullRequest
0 голосов
/ 27 марта 2011

Я написал собственный фильтр Spring Security, который должен использовать данные XML, которые были на нем размещены. Как фильтр получит опубликованные данные?

Ответы [ 2 ]

1 голос
/ 27 марта 2011

Это не совсем проблема, относящаяся к Spring Security, поскольку вы, скорее всего, просто реализуете интерфейс javax.servlet.Filter. В этом случае вы реализуете метод:

public void doFilter ( ServletRequest request, ServletResponse response, 
   FilterChain chain ) throws IOException, ServletException;

Затем вы можете привести ServletRequest к HttpServletRequest, если вам нужны специфичные для HTTP данные (что обычно требуется):

import javax.servlet.http.HttpServletRequest;
// ...
HttpServletRequest httpRequest = (HttpServletRequest) request;
String xml = httpRequest.getParameter("xml");

Если вы расширяете один из стандартных фильтров Spring Security, обязательно посмотрите на источник для расширяемого фильтра! Многие из них уже переопределяют doFilter и ожидают, что вы переопределите другой метод для улучшения их поведения.

0 голосов
/ 27 марта 2011

Прочитайте документацию для AbstractAuthenticationProcessingFilter (основываясь на вашем предыдущем вопросе, я полагаю, что это класс, который расширяет ваш пользовательский фильтр), абстрактный метод для реализации - tryAuthentication , который получает HttpServletRequest и HttpServletResponse в качестве параметров:

Parameters:
    request - from which to extract parameters and perform the authentication
    response - the response, which may be needed if the implementation has to do a redirect as part of a multi-stage authentication process (such as OpenID). 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...