2017-10-09 4 views
-1

LDAP을 사용하여 사용자를 인증하는 모듈 'Module1'이 있습니다. 이 모듈에는 동일한 로그인 LDAP 자격 증명을 사용하여 다른 원격 서비스에 대한 HTTP 요청을해야하는 클래스가 있습니다.HTTP 헤더의 로그인 자격 증명을 보안 서버에 전송

원격 서비스에서 인증을 구현하는 LDAP 클래스가 있습니다.

Module1의 로그인 자격 증명을 http 헤더의 원격 서비스로 보내는 방법을 모르겠습니다. Module1의 Ldap 로그인에 사용 된 자격 증명을 프로그래밍 방식으로 액세스하려면 어떻게합니까? 귀하의 답변은 매우 만족 스러울 것입니다.

답변

1

사용자 자격 증명이 인코딩되고 헤더를 통해 전송되는 기본 인증으로 이동할 수 있습니다. Module1에서 원격 서비스로 전화를 걸려면 기본적으로 Module1에서 Remote Service 로의 호출이 HTTPS를 통해 발생합니다.

0

LDAP를 사용하는 경우 Basic과 같이 인증이 전달 될 수 있습니다. 사용자 이름과 암호를 알고있는 경우, 헤더 "Authorization"에 "Basic base64_token"값을 추가하십시오.

base64 토큰은 사용자 이름과 암호를 username : password 형식으로 base64로 인코딩 한 문자열입니다. 이상적으로는 이것이 효과적 일 것입니다. 작동하지 않는지 알려주세요. 이 경우 SPNEGO를 사용하여 옵션을 탐색 할 수 있습니다. JAVA에서 LDAP에 대한

코드 :

public class Main 
{ 
    public static void main(String[] args) 
    { 
    //Replace username and password with your username and password 
    token = Base64.getEncoder().encodeToString((username + ":" + password).getBytes()) 
    conn = (HttpURLConnection) endpoint.openConnection(); 

    // Set the necessary header fields, which in this case is Basic 
    conn.addRequestProperty("Authorization", "Basic " + token); 

    //Continue to do what you want to do after this. This should authenticate 
    // you to the server 
    } 
}