0

ユーザーがそのページへのアクセスを許可されているかどうかを確認するために、アプリケーションのすべてのページ (すべてのページ) に対して呼び出される次のように、JSF のこの基本セキュリティの質問を使用して承認フィルターを実装しました。フィルターの Grunt コードは次のとおりです。

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

  HttpServletRequest httpRequest = (HttpServletRequest)request;
  HttpServletResponse httpResponse = (HttpServletResponse)response;
  HttpSession session = httpRequest.getSession();

  String requestPath = httpRequest.getPathInfo();
  String sevPath = httpRequest.getServletPath();



    if (sevPath.equals("/pages/login.jsf"))
    chain.doFilter(request, response);




     if (!sevPath.equals("/pages/login.jsf"))
     {
 if (((HttpServletRequest) request).getSession().getAttribute(
        AuthenticationBean.AUTH_USER) == null) 
  {
    ((HttpServletResponse) response).sendRedirect("/pages/login.jsf");
}
    else
{
    //..........................get user
        AuthenticationBean user = null;
        try
         {

        error: user = (AuthenticationBean) FacesContext.getCurrentInstance().
            getExternalContext().getSessionMap().get("authenticationBean");
         }
         catch (Exception ex)
         {
          ex.printStackTrace();
         }
         finally
         {

         }
    //...................................
        if (!user.getCurrentUser().getUserRole().equals("ADMIN"))
    {
        httpResponse.sendError(HttpServletResponse.SC_NOT_FOUND,"Restricted Access");
    }
        else
        {
            chain.doFilter(request, response);
        }

}
}


}

上記のコードの error: という接頭辞が付いた行で NullPointerException が発生します。フィルターで直接参照できませんか? または、他に何がこのエラーの原因である可能性があります。前もって感謝します。

4

0 に答える 0