2

spring mvc アプリケーション構成を xml からコードに変更しました。変更以来、インターセプターに挿入されたすべてのプロパティは null (authenticationService) です。

コードは次のようになります。

public class WebAuthenticationInterceptor extends HandlerInterceptorAdapter {


    @Resource(type=WebAuthenticationService.class)
    private IAuthenticationService authenticationService;

    @Override
    public boolean preHandle(HttpServletRequest request,
            HttpServletResponse response, Object handler) throws Exception {


        if(authenticationService.authenticate(request).authenticated == false)
        {
            if(isAjax(request))
                response.sendError(HttpServletResponse.SC_UNAUTHORIZED);
            else
                response.sendRedirect(String.format("%s/#/account/logout", request.getContextPath()));

            return false;
        }
        return true;

    }

    public static boolean isAjax(HttpServletRequest request) {
        return "XMLHttpRequest".equals(request.getHeader("X-Requested-With"));
    }
}

およびインターセプター構成:

@Override
    public void addInterceptors(InterceptorRegistry registry) {

        registry.addInterceptor(new WebAuthenticationInterceptor()).addPathPatterns("/home/**");
        registry.addInterceptor(new MobileAuthenticationInterceptor()).addPathPatterns("/api/**");
    }

私が間違っていることを教えてください。

ありがとうございました

4

2 に答える 2

3

newキーワードを使用してオブジェクトを作成しています。代わりに、Spring 構成のようにand をWebAuthenticationInterceptor定義してみてくださいMobileAuthenticationInterceptor@Bean

于 2013-06-20T20:15:04.313 に答える
1

インジェクションはSpringアノテーションで行い、3.x版からはJavaアノテーション(@Inject)でも動作します。

使用する

@Autowired
private IAuthenticationService authenticationService;
于 2013-06-20T16:08:04.630 に答える