2013-05-16 1 views
0

get 요청을 통해 인증하는 웹 응용 프로그램 (다른 옵션은 없음)에서 작업 중이며 암호가 특수 문자를 포함하는 사용자를 제외하고는 이미 작동합니다 (예 : * cHara). *. 여기 코드 :암호 필드에 대한 GET 요청에서 특수 문자를 어떻게 처리합니까?

 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())); 

내가 통과 어떻게 인코딩해야합니다 : 사용자 및 암호 조합이 다른 응답은 몇 가지 정보와 JSON입니다 정확하면 나는 {0 유효}와 JSON을 얻을?

+1

URLEncode. –

+0

원격쪽에 무엇이 있습니까? URLDecode가 가져온 내용을 알고 있어야합니까? –

+0

원격 측에서 제어 할 권한이 없습니다. 실제로 나는 암호가 더 깊다는 것을 알고 있습니다. LDAP 인증을 사용하는 다른 페이지에서 직접 암호를 사용할 수 있습니다. 그러나 저와 제 응용 프로그램 권한은 제한되어 있으며이 URL을 통해서만 LDAP에 직접 액세스 할 수 있습니다. – jaundavid

답변

0

URL 인코딩 전에 입력을 LDAP 이스케이프 처리하십시오. 별표는 LDAP (match-any)에서 특별한 의미를 가지며 원격 인증 서비스가 적절한 이스케이프 처리를 수행하지 않을 수 있습니다.

자세한 내용은 여기를 참조하십시오. http://blog.dzhuvinov.com/?p=585

관련 문제