Package railo.runtime.util

Source Code of railo.runtime.util.PageContextUtil

package railo.runtime.util;

import railo.commons.lang.StringUtil;
import railo.runtime.MappingImpl;
import railo.runtime.PageContext;
import railo.runtime.PageSource;
import railo.runtime.listener.ApplicationListener;
import railo.runtime.op.Caster;
import railo.runtime.type.util.KeyConstants;
import railo.runtime.type.util.ListUtil;

public class PageContextUtil {

  public static ApplicationListener getApplicationListener(PageContext pc) {
    PageSource ps = pc.getBasePageSource();
    if(ps!=null) {
      MappingImpl mapp=(MappingImpl) ps.getMapping();
      if(mapp!=null) return mapp.getApplicationListener();
    }
    return pc.getConfig().getApplicationListener();
  }


  public static String getCookieDomain(PageContext pc) {
    if(!pc.getApplicationContext().isSetDomainCookies()) return null;

    String result = Caster.toString(pc.cgiScope().get(KeyConstants._server_name, null),null);

    if(!StringUtil.isEmpty(result)) {

      String listLast = ListUtil.last(result, '.');
      if ( !railo.runtime.op.Decision.isNumeric(listLast) ) {    // if it's numeric then must be IP address
        int numparts = 2;
        int listLen = ListUtil.len( result, '.', true );

        if ( listLen > 2 ) {
          if ( listLast.length() == 2 || !StringUtil.isAscii(listLast) ) {      // country TLD

            int tldMinus1 = ListUtil.getAt( result, '.', listLen - 1, true, "" ).length();

            if ( tldMinus1 == 2 || tldMinus1 == 3 )                             // domain is in country like, example.co.uk or example.org.il
              numparts++;
          }
        }

        if ( listLen > numparts )
          result = result.substring( result.indexOf( '.' ) );
        else if ( listLen == numparts )
          result = "." + result;
      }
    }

    return result;
  }
}
TOP

Related Classes of railo.runtime.util.PageContextUtil

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.