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