1

この投稿を見つけましたセッションCookieに基づいてユーザーセッションフィルターを作成する方法。

いくつかのチュートリアルに基づいて、この簡単な例を作成しました。

    <filter>
        <filter-name>SessionFilter</filter-name>
        <filter-class>com.DX_57.AC_57.SessionFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>SessionFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <error-page>
        <error-code>401</error-code>
        <location>DX-57/SR-57</location>
    </error-page>

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

// ! Don't forget configuration in web.xml
public class SessionFilter implements Filter
{

    private FilterConfig filterConfig = null;

    public SessionFilter()
    {
    }

    @Override
    public void init(FilterConfig filterConfig) throws ServletException
    {
        this.filterConfig = filterConfig;
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException
    {
        HttpServletRequest req = (HttpServletRequest) request;
        HttpServletResponse res = (HttpServletResponse) response;

        if (req.getUserPrincipal() == null)
        {
            req.getSession().setAttribute("from", req.getRequestURI());
            res.sendRedirect("DX-57/SR-57/Home.jsf");
        }
        else
        {
            chain.doFilter(request, response);
        }

    }

    @Override
    public void destroy()
    {
    }
}

私が見つけたチュートリアルでは、セッション Cookie を使用してユーザーを識別しています。しかし、たとえばブラウザ ID や、ユーザー セッションの作成と認証に一意のものを使用できますか? JSF アプリケーションを保護するためのベスト プラクティスは何ですか?

4

0 に答える 0