Obter senha através do NTLM

Gostaria de saber como faço para obter a senha do usuário logado, hoje eu uso ntlm para isto, mas estou pegando apenas o nome de usuário, domínio…

[code]<%@ page language=“java” %>
<!DOCTYPE HTML PUBLIC “-//w3c//dtd html 4.0 transitional//en”>
<html>
<head>
<title></title>
</head>
<body bgcolor="#FFFFFF">

<%
String auth = request.getHeader(“Authorization”);
if (auth == null)
{
response.setStatus(response.SC_UNAUTHORIZED);
response.setHeader(“WWW-Authenticate”, “NTLM”);
response.flushBuffer();
return;
}
if (auth.startsWith("NTLM "))
{
byte[] msg = new sun.misc.BASE64Decoder().decodeBuffer(auth.substring(5));
int off = 0, length, offset;
if (msg[8] == 1)
{
byte z = 0;
byte[] msg1 = {(byte)‘N’, (byte)‘T’, (byte)‘L’, (byte)‘M’, (byte)‘S’, (byte)‘S’, (byte)‘P’,
z,(byte)2, z, z, z, z, z, z, z,(byte)40, z, z, z,
(byte)1, (byte)130, z, z,z, (byte)2, (byte)2,
(byte)2, z, z, z, z, z, z, z, z, z, z, z, z};
response.setHeader(“WWW-Authenticate”, "NTLM " +
new sun.misc.BASE64Encoder().encodeBuffer(msg1));
response.sendError(response.SC_UNAUTHORIZED);
return;
}
else if (msg[8] == 3)
{
off = 30;

length = msg[off+17]*256 + msg[off+16];
offset = msg[off+19]*256 + msg[off+18];
String remoteHost = new String(msg, offset, length);

length = msg[off+1]*256 + msg[off];
offset = msg[off+3]*256 + msg[off+2];
String domain = new String(msg, offset, length);

length = msg[off+9]*256 + msg[off+8];
offset = msg[off+11]*256 + msg[off+10];
String username = new String(msg, offset, length);

out.println("Username:"  +username+"&lt;BR&gt;");
out.println("RemoteHost:"+remoteHost+"&lt;BR&gt;");
out.println("Domain:"    +domain+"&lt;BR&gt;");

}
}
%>

</body>
</html>[/code]

alguém pode dar uma mãozinha?

:idea:

Por que você quer a senha?
Se você estudou a definição do protocolo NTLM, não há como obter a senha.

http://curl.haxx.se/rfc/ntlm.html

NTLM employs a challenge-response mechanism for authentication, in which clients are able to prove their identities without sending a password to the server.

Preciso da senha para fazer a autenticação do usuário no AD. Porque seu eu não tiver a senha, usuários tem a chance de usar a senha de outra pessoa…

Se você estivesse usando o IIS seria relativamente transparente.
Mas como você está fazendo isso em Java já não sei exatamente qual é o método para se autenticar no AD a partir de uma aplicação Web - não sei se é possível transportar essa autenticação NTLM para o AD. Questão de perguntar no fórum de segurança do http://forum.java.sun.com.

http://forum.java.sun.com/forum.jspa?forumID=60

Mas não se esqueça: você não vai conseguir a senha de jeito nenhum, pela própria definição do protocolo NTLM. Existe alguma maneira, mas não com senha.