我正在通过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()));
我应该如何编码传递?
答案 0 :(得分:0)
在URLEncoding之前对输入进行LDAP转义。星号在LDAP(match-any)中具有特殊含义,并且远程身份验证服务可能没有正确转义。
可在此处找到更多信息:http://blog.dzhuvinov.com/?p=585