Package railo.runtime.tag

Source Code of railo.runtime.tag.Loginuser

package railo.runtime.tag;

import javax.servlet.jsp.tagext.Tag;

import railo.commons.io.res.Resource;
import railo.runtime.exp.PageException;
import railo.runtime.ext.tag.TagImpl;
import railo.runtime.listener.ApplicationContext;
import railo.runtime.security.CredentialImpl;
import railo.runtime.type.KeyImpl;
import railo.runtime.type.scope.Scope;

/**
*
*/
public final class Loginuser extends TagImpl {
    private String name;
    private String password;
    private String[] roles;

  @Override
  public void release()  {
    super.release();
    name=null;
    password=null;
    roles=null;
  }

    /**
     * @param name The name to set.
     */
    public void setName(String name) {
        this.name = name;
    }
    /**
     * @param password The password to set.
     */
    public void setPassword(String password) {
        this.password = password;
    }
    /**
     * @param oRoles The roles to set.
     * @throws PageException
     */
    public void setRoles(Object oRoles) throws PageException {
        roles=CredentialImpl.toRole(oRoles);
    }
   
  @Override
  public int doStartTag() throws PageException  {
    Resource rolesDir = pageContext.getConfig().getConfigDir().getRealResource("roles");
      CredentialImpl login = new CredentialImpl(name,password,roles,rolesDir);
      pageContext.setRemoteUser(login);
     
      Tag parent=getParent();
    while(parent!=null && !(parent instanceof Login)) {
      parent=parent.getParent();
    }
    ApplicationContext appContext = pageContext.getApplicationContext();
    if(parent!=null) {
        int loginStorage = appContext.getLoginStorage();
        String name=Login.getApplicationName(appContext);
       
        if(loginStorage==Scope.SCOPE_SESSION && pageContext.getApplicationContext().isSetSessionManagement())
            pageContext.sessionScope().set(KeyImpl.init(name),login.encode());
        else  {//if(loginStorage==Scope.SCOPE_COOKIE)
            pageContext.cookieScope().setCookie(KeyImpl.init(name),login.encode(),
                -1,false,"/",Login.getCookieDomain(appContext));
        }
    }
   
     
    return SKIP_BODY;
  }

  @Override
  public int doEndTag()  {
    return EVAL_PAGE;
  }
}
TOP

Related Classes of railo.runtime.tag.Loginuser

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.