我创建了一个BasicAuthFilter
,它有这个签名:
@Override
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException, ServletException
如果有人以正确的方式调用带有 Authorization 标头的过滤器,这将起作用。但是,如果有人使用 chrome 或 firefox 访问这样的 url:
http://username:password@localhost:8888
浏览器没有使用该信息填充 Authorization 标头(这让我感到惊讶)。我查看了 chrome 发送的信息,用户名和密码在请求 URL 中,但没有其他地方。
我不知道如何从 URL 中提取该信息。我在 上尝试了很多 getter HttpServletRequest
,但没有找到任何给我用户名和密码的东西。
注意:是的,我知道这是不安全的,当您尝试测试系统时使用它真的很方便。