cocoon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From stef...@locus.apache.org
Subject cvs commit: xml-cocoon/src/org/apache/cocoon/processor/ldap LdapQueryCreator.java
Date Fri, 18 Aug 2000 22:46:13 GMT
stefano     00/08/18 15:46:12

  Modified:    src/org/apache/cocoon/processor/ldap LdapQueryCreator.java
  Log:
  added new parameter controls
  
  Revision  Changes    Path
  1.3       +58 -21    xml-cocoon/src/org/apache/cocoon/processor/ldap/LdapQueryCreator.java
  
  Index: LdapQueryCreator.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon/src/org/apache/cocoon/processor/ldap/LdapQueryCreator.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- LdapQueryCreator.java	2000/02/13 18:29:31	1.2
  +++ LdapQueryCreator.java	2000/08/18 22:46:11	1.3
  @@ -1,4 +1,4 @@
  -/*-- $Id: LdapQueryCreator.java,v 1.2 2000/02/13 18:29:31 stefano Exp $ -- 
  +/*-- $Id: LdapQueryCreator.java,v 1.3 2000/08/18 22:46:11 stefano Exp $ -- 
   
    ============================================================================
                      The Apache Software License, Version 1.1
  @@ -69,25 +69,62 @@
   
   public class LdapQueryCreator {
   
  -		public static String getQuery(String query, Properties query_props, Dictionary parameters)
throws Exception {
  -			HttpServletRequest req = (HttpServletRequest)parameters.get("request");
  -			String ldelim = query_props.getProperty("variable-left-delimiter");
  -			int llength = ldelim.length();
  -			String rdelim = query_props.getProperty("variable-right-delimiter");
  -			int rlength = rdelim.length();
  -			int offset = 0;
  -			while (true) {
  -				int lindex = query.indexOf(ldelim,offset);
  -				if (lindex < 0) break;
  -				int rindex = query.indexOf(rdelim,offset+llength);
  -				if (rindex < 0 || rindex < lindex) break;
  -				String name = query.substring(lindex+llength,rindex);
  -				String value = req.getParameter(name);
  -				if (value == null) break;
  -				query = query.substring(0,lindex)+value+query.substring(rindex+rlength);
  -				offset = lindex+value.length();
  -			}
  -			return query.trim();
  +	public static String getQuery(String query, Properties query_props, Dictionary parameters)
throws Exception {
  +		HttpServletRequest req = (HttpServletRequest)parameters.get("request");
  +		String ldelim = query_props.getProperty("variable-left-delimiter");
  +		int llength = ldelim.length();
  +		String rdelim = query_props.getProperty("variable-right-delimiter");
  +		int rlength = rdelim.length();
  +		int offset = 0;
  +		while (true) {
  +			int lindex = query.indexOf(ldelim,offset);
  +			if (lindex < 0) break;
  +			int rindex = query.indexOf(rdelim,offset+llength);
  +			if (rindex < 0 || rindex < lindex) break;
  +			String name = query.substring(lindex+llength,rindex);
  +            String value = null;
  +            // attempt to identify if the is a "named" variable request
  +            if (name.indexOf(":") > 0) {
  +                // Yes, it is. split the varaible name from the request space it's 
  +                // supposed to be in
  +                String getValueFrom = name.substring(0,name.indexOf(":"));
  +                name = name.substring(name.indexOf(":") + 1,name.length());
  +                // sanity check for debugging
  +                // System.err.println("LDAP DEBUG -- name is '"+name+"' and from is '"+getValueFrom+"'");
  +                if (getValueFrom.equalsIgnoreCase("header")) {
  +                    // This is a value in the Request header. 
  +                    // The servlet 2.0 API doesn't always allow direct acces to all variables
  +                    // we'll hard-code in some special cases. 
  +                    // The first of these is the REMOTE_USER
  +                    if (name.equalsIgnoreCase("remote_user")) {
  +                        value = req.getRemoteUser();
  +                    } else if (name.equalsIgnoreCase("auth_type")) {
  +                        value = req.getAuthType();
  +                    } else if (name.equalsIgnoreCase("method")) {
  +                        value = req.getMethod();
  +                    } else {
  +                        // no special handler for the requested information
  +                        // so we'll just ask for it here.
  +                        value = req.getHeader(name);
  +                    }
  +                } else if (getValueFrom.equalsIgnoreCase("parameter")) {
  +                  // OK, it's not a header, so we chack to see if it's a parameter request.
  +                    value = req.getParameter(name);
  +                } else {
  +                 // the failsafe is to assume it's a parameter request if not explicitly

  +                 // specified as such.
  +                    value = req.getParameter(name);  
  +                }
  +            } else {
  +               // No specific request area to review, therefor it must be a parameter 
  +               // request.
  +               value = req.getParameter(name);
  +            }
  +			
  +			if (value == null) break;
  +			query = query.substring(0,lindex)+value+query.substring(rindex+rlength);
  +			offset = lindex+value.length();
   		}
  -
  +		return query.trim();
  +	}
   }
  
  
  

Mime
View raw message