您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

通过过滤器在Servlet中设置身份验证标头

通过过滤器在Servlet中设置身份验证标头

我要添加一个新答案,因为它是完全不同的。

我在系统上进行了测试。我复制了代码,转储了cookie测试,并编写了一个简单的Servlet为我转储。

而且效果很好,除了一个警告。

我不知道您的应用程序如何使用它。但是您的ServletRequestWrapper工具实现了getHeaderNamesgetHeader但是,它并没有实现getHeaders。我曾经getHeaders尝试转储请求时遇到了这个问题,当然,缺少授权。

因此,您可能需要仔细查看代码,看看是否确实没有使用getHeaders。如果是这样,它将“正常工作”,但完全跳过您已完成的工作,从而错过您的Authorization标头。

这是我的实现,对我有用。

    @Override
    public Enumeration getHeaders(String name) {
        Enumeration e = super.getHeaders(name);
        if (e != null && e.hasMoreElements()) {
            return e;
        } else {
            List l = new ArrayList();
            if (headerMap.get(name) != null) {
                l.add(headerMap.get(name));
            }
            return Collections.enumeration(l);
        }
    }
Jave 2022/1/1 18:28:17 有297人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶