0

質問があります。Javaストラットでログインするために複数のユーザーをフィルタリングする方法は?

ここに私のコードがあります

LoginFilter.java

public class LoginFilter implements Filter {

    private FilterConfig config = null;

    public void destroy() {
        // TODO Auto-generated method stub
        config = null;
    }

    public void doFilter(ServletRequest request, ServletResponse response,
        FilterChain chain) throws IOException, ServletException {
        // TODO Auto-generated method stub
        HttpServletRequest req = (HttpServletRequest)request;
        HttpSession session = req.getSession(true);

        String cek;
        if(session.getAttribute("idNasabah") != null){
            cek = session.getAttribute("idNasabah").toString();
        }else if(session.getAttribute("idStaff")!= null){
            cek = session.getAttribute("idStaff").toString();
        }else{
            cek = null;
        }

        if(cek== null){
            req.getRequestDispatcher("login.do").forward(request, response);
        }else{
            chain.doFilter(request, response);
        }
    }

    public void init(FilterConfig config) throws ServletException {
        // TODO Auto-generated method stub
        this.config = config;
    }

}

ここにweb.xmlがあります

<filter>
    <filter-name>LoginFilter</filter-name>
    <filter-class>filter.LoginFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>LoginFilter</filter-name>
    <servlet-name>action</servlet-name>
</filter-mapping>
<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
        <param-name>debug</param-name>
        <param-value>2</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>

役割 (管理者とユーザー) を区別する方法。管理者とユーザーがアクセスできるページを区別します。私のコードでは、ログインしていない場合にのみフィルタリングでき、管理者ユーザーに直接アクセスできるためです。たとえば、管理者にログインした後もアクセスできます

/InternetBanking/pembayaranKartuKredit.do?task=クレジットカード

誰でも助けることができますか?ありがとう:)

4

0 に答える 0