gpt4 book ai didi

java - 身份验证过滤器未加载 3 个网页的 css

转载 作者:行者123 更新时间:2023-11-29 04:45:10 24 4
gpt4 key购买 nike

我的网络应用程序有一个身份验证过滤器,它在登录后成功地为所有网页加载了 css,除了主页(索引)、关于我们页面(关于)和注册页面这三个页面(登记)。出于某种原因,我无法弄清楚为什么我的过滤器没有决定为这三个页面加载 css,但对于它的其他页面,我已经检查了所有页面的 jsp 文件,但无法发现问题所在。

我被告知我必须使用 excludeURLs 修复我的 doFilter 方法中的某些内容,但我仍然感到困惑。

这是我的doFilter:

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpReq = (HttpServletRequest) request;
HttpSession session = httpReq.getSession(false); // if the fail login it doesnt create a session

if (session != null && session.getAttribute("user") == null && !excludeURLs.contains(httpReq.getServletPath()) ){
RequestDispatcher rd = httpReq.getRequestDispatcher("login.jsp");
rd.forward(request, response);
return;
}

chain.doFilter(request, response);
}

下面是我排除特定 URL 的 init 方法:

public void init(FilterConfig fConfig) throws ServletException {
System.out.println("AuthenticationFilter Initiated...");

//Pages/Servlet
excludeURLs.add("/login");
excludeURLs.add("/login.jsp");
excludeURLs.add("/index");
excludeURLs.add("/index.jsp");
excludeURLs.add("/about");
excludeURLs.add("/about.jsp");
excludeURLs.add("/register");
excludeURLs.add("/signup.jsp");

//Images
excludeURLs.add("/Images");
excludeURLs.add("/css");
excludeURLs.add("/js");
}

最佳答案

假设:

  1. 您的 css 文件的扩展名为“.css”,
  2. 未经授权访问 css 文件对您/您的组织来说不是问题,快速解决方法是:

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    HttpServletRequest httpReq = (HttpServletRequest) request;
    HttpSession session = httpReq.getSession(false); // if the fail login it doesnt create a session
    String path= httpReq.getRequestURI();
    if(path.endsWith(".css")){
    chain.doFilter(request,response);
    return;
    }


    if (session != null && session.getAttribute("user") == null && !excludeURLs.contains(httpReq.getServletPath()) ){
    RequestDispatcher rd = httpReq.getRequestDispatcher("login.jsp");
    rd.forward(request, response);
    return;
    }

    chain.doFilter(request, response);
    }

关于java - 身份验证过滤器未加载 3 个网页的 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37489007/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com