В своем классе 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