NtlmSsppublic class NtlmSsp extends Object implements jcifs.ntlmssp.NtlmFlags
Methods Summary |
---|
public static jcifs.smb.NtlmPasswordAuthentication | authenticate(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, byte[] challenge)Performs NTLM authentication for the servlet request.
String msg = req.getHeader("Authorization");
if (msg != null && msg.startsWith("NTLM ")) {
byte[] src = Base64.decode(msg.substring(5));
if (src[8] == 1) {
Type1Message type1 = new Type1Message(src);
Type2Message type2 = new Type2Message(type1, challenge, null);
msg = Base64.encode(type2.toByteArray());
resp.setHeader( "WWW-Authenticate", "NTLM " + msg );
} else if (src[8] == 3) {
Type3Message type3 = new Type3Message(src);
byte[] lmResponse = type3.getLMResponse();
if (lmResponse == null) lmResponse = new byte[0];
byte[] ntResponse = type3.getNTResponse();
if (ntResponse == null) ntResponse = new byte[0];
return new NtlmPasswordAuthentication(type3.getDomain(),
type3.getUser(), challenge, lmResponse, ntResponse);
}
} else {
resp.setHeader("WWW-Authenticate", "NTLM");
}
resp.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
resp.setContentLength(0);
resp.flushBuffer();
return null;
| public jcifs.smb.NtlmPasswordAuthentication | doAuthentication(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp, byte[] challenge)Calls the static {@link #authenticate(HttpServletRequest,
HttpServletResponse, byte[])} method to perform NTLM authentication
for the specified servlet request.
return authenticate(req, resp, challenge);
|
|