有一个模块'Module1'使用LDAP对用户进行身份验证。该模块有一个类,必须使用相同的登录ldap凭据向另一个远程服务发出http请求。
我有一个在远程服务中实现身份验证的LDAP类。
我不知道如何将模块1中的登录凭据发送到http标头中的远程服务。如何以编程方式从Module1访问用于Ldap登录的凭据?你的回答会非常复杂。
答案 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
}
}