Использование некоторых bean-компонентов в классе bean-компонента Filter?

В своем классе bean-компонентов фильтра я добавил некоторую зависимость bean-компонентов (с аннотацией @Autowired ). Но в методе doFilter () все мои bean-компоненты зависимостей имеют значение null ...

public class FacebookOAuth implements Filter
{
@Autowired
private BusinessLogger logger;

@Autowired
private IUserSessionInfo userSessionInfo;

@Autowired
private FacebookOAuthHelper oAuthHelper;

public void init(FilterConfig fc) throws ServletException
{
    // Nothing to do
}

public void doFilter(ServletRequest sr, ServletResponse sr1, FilterChain fc) throws   IOException, ServletException
{
    // HttpServletRequest req = (HttpServletRequest)sr;
    HttpServletResponse res = (HttpServletResponse) sr1;

    String code = sr.getParameter("code");

    if (StringUtil.isNotBlankStr(code))
    {
        String authURL = this.oAuthHelper.getAuthURL(code);

this.oAuthHelper равно нулю (и другим bean-компонентам зависимости) ...

Could Вы мне помогаете?


На самом деле я не использую понятие MVC на стороне сервера (Spring). Для моего стороннего клиента я использую технологию Flex, а сервлет BlazeDS связывается с моим сервером.

Поэтому я использую понятие bean-компонента Filter.

Итак, как я могу обработать свое понятие сессионного компонента в моем компоненте Filter?


Скаффман,

Я реализовал вашу идею, поэтому я обновляю свой application.xml:



    
    
       FacebookOAuthHandler         
    
   

и мой FacebookOAuthHandler class:

public class FacebookOAuthHandler extends AbstractController
{
@Autowired
private BusinessLogger logger;

@Autowired
private IUserSessionInfo userSessionInfo;

@Autowired
private FacebookOAuthHelper oAuthHelper;

@Override
protected ModelAndView handleRequestInternal(HttpServletRequest request,
        HttpServletResponse response) throws Exception {

    // TODO

    return null;
}

Но этот метод handleRequestInternal никогда не вызывается, когда мой URL: http: //xx.xx.xx.xx/MyApp/fbauth

18
задан ROMANIA_engineer 11 August 2016 в 14:10
поделиться