package edu.harvard.i2b2.pm.util;
import java.net.UnknownHostException;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import edu.harvard.i2b2.pm.ejb.DBInfoType;
import edu.harvard.i2b2.pm.services.HiveParamData;
import jcifs.UniAddress;
import jcifs.smb.NtlmPasswordAuthentication;
import jcifs.smb.SmbAuthException;
import jcifs.smb.SmbException;
import jcifs.smb.SmbSession;
public class SecurityAuthenticationNTLM implements SecurityAuthentication {
@Override
public boolean validateUser(String username, String password,
Hashtable params) throws Exception {
String domainController= "", domain= "";
UniAddress mydomaincontroller = UniAddress.getByName( (String) params.get("domain_controller") );
NtlmPasswordAuthentication mycreds = new NtlmPasswordAuthentication( (String) params.get("domain"), username, password );
try {
SmbSession.logon( mydomaincontroller, mycreds );
// SUCCESS
return true;
} catch( SmbAuthException sae ) {
// AUTHENTICATION FAILURE
throw new Exception (sae.getMessage());
} catch( SmbException se ) {
// NETWORK PROBLEMS?
throw new Exception (se.getMessage());
}
}
}