Sync
authorAndrew McNab <andrew.mcnab@manchester.ac.uk>
Fri, 9 Nov 2007 14:08:01 +0000 (14:08 +0000)
committerAndrew McNab <andrew.mcnab@manchester.ac.uk>
Fri, 9 Nov 2007 14:08:01 +0000 (14:08 +0000)
org.gridsite.core/CHANGES
org.gridsite.core/src/gaclexample.c
org.gridsite.core/src/grst_gacl.c

index bd0f444..4234759 100644 (file)
@@ -1,3 +1,8 @@
+* Fri Nov 9 2007 Andrew McNab <Andrew.McNab@man.ac.uk>
+- Many changes, including switch to AURI internal
+  format for credentials
+* Fri Nov 9 2007 Andrew McNab <Andrew.McNab@man.ac.uk>
+- ==== GridSite version 1.5.5 ====
 * Wed Jun 13 2007 Andrew McNab <Andrew.McNab@man.ac.uk>
 - Include ctx->param->flags fix in mod_gridsite for
   OpenSSL 0.9.8 from Bruno Harbulot.
index 32aaaa4..3d22c96 100644 (file)
@@ -61,7 +61,7 @@ int main()
 
   /* build up an ACL, starting with a credential */
 
-  cred = GRSTgaclCredCreate("dn:", "/O=Grid/CN=Mr Grid Person");
+  cred = GRSTgaclCredCreate("dn:", "/O=Grid/CN=Mr%20Grid%20Person");
   
   /* create an entry to put it in */ 
    
index b58ca34..f46d0c5 100644 (file)
@@ -163,7 +163,7 @@ int GRSTgaclCredAddValue(GRSTgaclCred *cred, char *name, char *rawvalue)
 */
 {
   int                i;
-  char              *value;
+  char              *value, *encoded_value;
 
   if ((cred == NULL) || (cred->auri == NULL)) return 0;
   free(cred->auri);
@@ -177,38 +177,46 @@ int GRSTgaclCredAddValue(GRSTgaclCred *cred, char *name, char *rawvalue)
   value = strdup(value);
   for (i=strlen(value) - 1; (i >= 0) && isspace(value[i]); --i) value[i]='\0';
 
+  encoded_value = GRSThttpUrlMildencode(value);
+
   if (strcmp(name, "dn") == 0)
     {
-      asprintf(&(cred->auri), "dn:%s", value);
+      asprintf(&(cred->auri), "dn:%s", encoded_value);
       free(value);
+      free(encoded_value);
       return 1;
     }
   else if (strcmp(name, "fqan") == 0)
     {
-      asprintf(&(cred->auri), "fqan:%s", value);
+      asprintf(&(cred->auri), "fqan:%s", encoded_value);
       free(value);
+      free(encoded_value);
       return 1;
     }
   else if (strcmp(name, "url") == 0)
     {
-      asprintf(&(cred->auri), "%s", value);
+      asprintf(&(cred->auri), "%s", encoded_value);
       free(value);
+      free(encoded_value);
       return 1;
     }
   else if (strcmp(name, "hostname") == 0)
     {
-      asprintf(&(cred->auri), "dns:%s", value);
+      asprintf(&(cred->auri), "dns:%s", encoded_value);
       free(value);
+      free(encoded_value);
       return 1;
     }
   else if (strcmp(name, "nist-loa") == 0)
     {
-      asprintf(&(cred->auri), "nist-loa:%s", value);
+      asprintf(&(cred->auri), "nist-loa:%s", encoded_value);
       free(value);
+      free(encoded_value);
       return 1;
     }
     
   free(value);  
+  free(encoded_value);
   return 0;
 }
 
@@ -673,7 +681,7 @@ static GRSTgaclCred *GRSTgaclCredParse(xmlNodePtr cur)
      {
        if (!xmlIsBlankNode(cur2))
         GRSTgaclCredAddValue(cred, (char *) cur2->name, 
-                             (char *) xmlNodeGetContent(cur2));     
+                             (char *) xmlNodeGetContent(cur2));
      }
 
   return cred;