将HTTP标头中的登录凭据发送到安全服务器

时间:2017-10-09 23:54:20

标签: java security authentication ldap jetty

有一个模块'Module1'使用LDAP对用户进行身份验证。该模块有一个类,必须使用相同的登录ldap凭据向另一个远程服务发出http请求。

我有一个在远程服务中实现身份验证的LDAP类。

我不知道如何将模块1中的登录凭据发送到http标头中的远程服务。如何以编程方式从Module1访问用于Ldap登录的凭据?你的回答会非常复杂。

2 个答案:

答案 0 :(得分:1)

您可以进行基本身份验证,其中将对用户凭据进行编码并通过标头发送。确保从Module1到远程服务的呼叫安全,因此从Module1到Remote Service的呼叫基本上将通过HTTPS进行

答案 1 :(得分:0)

如果您正在使用LDAP,则可以像Basic一样传递身份验证。如果您知道用户名和密码,请附加标题"授权"值"基本base64_token"。

base64标记是一个字符串,使用您的用户名和密码进行base64编码,格式为username:password。理想情况下,这应该工作。如果它不起作用,请告诉我。在这种情况下,我们可以使用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
  }
}