如何处理GET请求密码字段中的特殊字符?

时间:2013-05-16 13:31:37

标签: java get character encode

我正在通过get请求进行身份验证的Web应用程序(我没有其他选项),该方法已经有效,但密码包含特殊字符的用户除外,例如密码为:*恰拉*。如果用户和密码组合正确,则响应是带有一些信息的json,否则我得到一个带有{valid:0}的json,这里是代码:

        url = new URL("http://www.secret.url.com.co");
        String RESOURCE = "/authLdap/";
        String pass = URLEncoder.encode(password,"UTF-8");
        tUrl = new URL(url + RESOURCE + "?usuario=" + usuario + "&clave=" + pass);
        HttpURLConnection req;
        req = (HttpURLConnection) tUrl.openConnection();
        req.setDoOutput(true);
        req.setRequestMethod("GET");
        req.setRequestProperty("Content-Type", "application/json");
        BufferedReader in;
        in = new BufferedReader(new InputStreamReader(req.getInputStream()));

我应该如何编码传递?

1 个答案:

答案 0 :(得分:0)

在URLEncoding之前对输入进行LDAP转义。星号在LDAP(match-any)中具有特殊含义,并且远程身份验证服务可能没有正确转义。

可在此处找到更多信息:http://blog.dzhuvinov.com/?p=585

相关问题