Dan*_*lan 4 servlets basic-authentication servlet-filters
我创建了一个BasicAuthFilter,它有这个签名:
@Override
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain) throws IOException, ServletException
Run Code Online (Sandbox Code Playgroud)
如果有人使用正确设置的授权标头调用过滤器,则此方法有效。但是,如果有人在 chrome 或 firefox 上访问如下网址:
http://username:password@localhost:8888
Run Code Online (Sandbox Code Playgroud)
浏览器没有使用该信息填充授权标头(这让我感到惊讶)。我查看了 chrome 发送的信息,用户名和密码位于请求 URL 中,但其他地方都没有。
我不知道如何从 URL 中提取该信息。我在 上尝试了很多吸气剂HttpServletRequest,但没有找到任何可以给我用户名和密码的东西。
注意:是的,我知道这是不安全的,但当您尝试测试系统时使用起来确实很方便。
URL url = new URL(custom_url);
String userInfo = url.getUserInfo();
String[] userInfoArray = userInfo.split(":");
System.out.println("username"+userInfoArray[0]);
System.out.println("password"+userInfoArray[1]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5923 次 |
| 最近记录: |