package railo.runtime.tag;
import railo.commons.io.SystemUtil;
import railo.runtime.exp.PageException;
import railo.runtime.exp.TagNotSupported;
import railo.runtime.ext.tag.TagImpl;
import railo.runtime.type.Struct;
import railo.runtime.type.StructImpl;
public class NTAuthenticate extends TagImpl {
private String username;
private String password;
private String domain;
private String result="cfntauthenticate";
//private String _action="auth";
private boolean listGroups;
private boolean throwOnError;
public void release() {
super.release();
username = null;
password = null;
domain = null;
result = "cfntauthenticate";
listGroups=false;
throwOnError=false;
//_action = "auth";
}
/*public void setListGroups(boolean b)
{
if(b)
{
listGroups = true;
_action = "authAndGroups";
} else
{
listGroups = false;
_action = "auth";
}
}*/
/**
* @param username the username to set
*/
public void setUsername(String username) {
this.username = username;
}
/**
* @param password the password to set
*/
public void setPassword(String password) {
this.password = password;
}
/**
* @param domain the domain to set
*/
public void setDomain(String domain) {
this.domain = domain;
}
/**
* @param result the result to set
*/
public void setResult(String result) {
this.result = result;
}
/**
* @param listGroups the listGroups to set
*/
public void setListgroups(boolean listGroups) {
this.listGroups = listGroups;
}
/**
* @param throwOnError the throwOnError to set
*/
public void setThrowonerror(boolean throwOnError) {
this.throwOnError = throwOnError;
}
public int doStartTag() throws PageException {
if(true)throw new TagNotSupported("ntauthenticate");
String os = System.getProperty("os.name");
Struct resultSt = new StructImpl();
pageContext.setVariable(result, resultSt);
if(SystemUtil.isWindows()) {
/*
NTAuthentication ntauth = new NTAuthentication(domain);
if(username != null)
resultSt.set("username", username);
try {
boolean isAuth = false;
if(ntauth.IsUserInDirectory(username) && password != null && !StringUtil.isEmpty(domain))
isAuth = ntauth.AuthenticateUser(username, password);
resultSt.set(AUTH, Caster.toBoolean(isAuth));
resultSt.set(STATUS, isAuth?"success":"AuthenticationFailure");
if(listGroups && isAuth) {
String groups = railo.runtime.type.List.arrayToList(ntauth.GetUserGroups(username), ",");
resultSt.set(GROUPS, groups);
}
}
catch(Exception e) {
resultSt.set(AUTH, Boolean.FALSE);
if(e instanceof UserNotInDirException)
resultSt.set(STATUS, "UserNotInDirFailure");
else
if(e instanceof AuthenticationFailureException)
resultSt.set(STATUS, "AuthenticationFailure");
if(throwOnError) throw new JspException(e);
}
*/
}
return 0;
}
}