0

我正在使用通过 get 请求进行身份验证的 Web 应用程序(我没有其他选择),该方法已经有效,但密码包含特殊字符的用户除外,例如密码为:*cHara*。如果用户和密码组合正确,则响应是一个带有一些信息的 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()));

我应该如何编码通行证?

4

1 回答 1

0

在 URLEncoding 之前 LDAP 转义您的输入。星号在 LDAP 中具有特殊含义(匹配任意),并且远程身份验证服务可能没有进行正确的转义。

更多信息可以在这里找到:http ://blog.dzhuvinov.com/?p=585

于 2013-05-17T10:43:03.537 回答