有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何从HTTP基本身份验证获取密码

我在Java中使用HTTP基本身份验证

我的Servlet发送一条JMS消息,但我需要提供用户和密码,以便在创建连接时对自己进行身份验证:

javax.jms.ConnectionFactory.createConnection(String username, String password)

我可以从HttpServletRequest中检索用户名。getUserPrincipal()。但似乎没有办法检索密码。我该如何解决这个问题


共 (2) 个答案

  1. # 1 楼答案

    那些正在寻找答案的人,即使这个问题很久以前就被问到了,这里是我的解决方案

     private void authenticate(HttpServletRequest request){
        String upd=request.getHeader("authorization");
        String pair=new String(Base64.decodeBase64(upd.substring(6)));
        String userName=pair.split(":")[0];
        String password=pair.split(":")[1];    
    }
    

    Base64是从-org导入的。阿帕奇。平民编解码器。二进制的Base64

  2. # 2 楼答案

    用户名和密码最初是在HTTP Authorization头(base64编码)中发送的,因此您可以使用它;但是,如果用户使用cookie维护会话,他们不一定每次都发送该头