action=in&id=1&pw=123请问要如何利用Servlet过滤器对这种行为进行过滤呢

现在用JAVAEE制作了一个登录系统
一般而言需要手动登录才能进入系统
使用Servlet过滤器进行初步加权限(限制未登录直接访问)后发现用户在网址窗口明文输入用户名和密码也能直接登录系统
例如:
oa?action=in&id=1&pw=123
请问要如何利用Servlet过滤器对这种行为进行过滤呢?

参考GPT和自己的思路:

若想通过Servlet过滤器来过滤输入的用户名和密码,需要进行以下步骤:

  1. 在过滤器中获取请求的参数,即用户名和密码;
  2. 进行校验,如判定用户名和密码是否为空,是否符合规范等;
  3. 如果校验通过,将请求传递给下一个过滤器或Servlet进行后续处理;否则,返回错误信息或者跳转到错误页面。

具体实现方式可以参考以下代码:

public class LoginFilter implements Filter {
 
    public void init(FilterConfig filterConfig) throws ServletException {
    }
 
    public void destroy() {
    }
 
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
 
        HttpServletRequest req = (HttpServletRequest) request;
        HttpServletResponse res = (HttpServletResponse) response;
 
        String id = req.getParameter("id");
        String pw = req.getParameter("pw");
 
        if (id == null || pw == null || id.trim().isEmpty() || pw.trim().isEmpty()) {
            res.sendRedirect("error.html"); // 校验失败,跳转到错误页面
        } else {
            chain.doFilter(request, response); // 校验成功,将请求传递给下一个过滤器或Servlet进行后续处理
        }
    }
}

参照上述代码实现过滤器,并在web.xml文件中配置过滤器即可达到对输入的用户名和密码进行过滤的目的。

这个明显是你的系统的问题,要看你权限那块代码是怎么写的

参考:https://blog.csdn.net/mylovepan/article/details/105991099