私はJAASRealm認証(tomcat 7で)を使ってWebをやっています。これは、サーブレットフィルタからWebクライアントをリダイレクトする(AJAX経由のクライアント/サーバ接続)
private String loginPage = "welcome.jsp";
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException {
if ((request instanceof HttpServletRequest) && (response instanceof HttpServletResponse)) {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
HttpServletResponse httpServletResponse = (HttpServletResponse) response;
if (httpServletRequest.getUserPrincipal() == null) {
// User is not logged in, redirect to login page.
httpServletRequest.setAttribute("from", httpServletRequest.getRequestURI());
httpServletResponse.sendRedirect(loginPage);
}
else {
filterChain.doFilter(request, response);
}
}
}
そして私は、web.xmlにそれを宣言している私が認証されていないよとき
<filter>
<filter-name>login-filter</filter-name>
<filter-class>LoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>login-filter</filter-name>
<url-pattern>/sampleServlet</url-pattern>
</filter-mapping>
私の問題があると私はAJAXを経由してサーブレットを呼び出す: これはサーブレットのフィルタであり、フィルタの行が機能しない
httpServletResponse.sendRedirect(loginPage);
したがって、データは受信されず、ログ記録ページにリダイレクトされません。この場合、私は何ができますか?ここで
あなたは私たちあなたのAJAXリクエスト示しすることはできますか?私はあなたの問題が何であるかを知っていると思うが、そのコードが見えるまではわからない。私はそれがリクエストのコンテンツタイプと関係していると思います。 – oberger