Changeset: 7df75c547dcc for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7df75c547dcc
Modified Files:
        monetdb5/mal/mal_authorize.c
        sql/server/rel_schema.c
Branch: remote_auth
Log Message:

Register the correct URI

The credentials are for logging in a database, so we need to keep the
database (mapi:monetdb://host:port/database) part of the credentials
in the vault.


diffs (32 lines):

diff --git a/monetdb5/mal/mal_authorize.c b/monetdb5/mal/mal_authorize.c
--- a/monetdb5/mal/mal_authorize.c
+++ b/monetdb5/mal/mal_authorize.c
@@ -978,11 +978,11 @@ AUTHgetRemoteTableCredentials(const char
 
        /* mem leak */
        rethrow("checkCredentials", tmp, AUTHrequireAdminOrUser(cntxt, 
localuser));
-       /* if (strcmp(uri, luri)) { */
-       /*      GDKfree(luri); */
-       /*      GDKfree(localuser); */
-       /*      throw(MAL, "getRemoteTableCredentials", SQLSTATE(HY001) "URIs 
do not match"); */
-       /* } */
+       if (strcmp(uri, luri)) {
+               GDKfree(luri);
+               GDKfree(localuser);
+               throw(MAL, "getRemoteTableCredentials", SQLSTATE(HY001) "URIs 
do not match");
+       }
 
        GDKfree(luri);
        GDKfree(localuser);
diff --git a/sql/server/rel_schema.c b/sql/server/rel_schema.c
--- a/sql/server/rel_schema.c
+++ b/sql/server/rel_schema.c
@@ -950,7 +950,7 @@ rel_create_table(mvc *sql, sql_schema *s
                        char *local_user = stack_get_string(sql, 
"current_user");
                        if (!mapiuri_valid(loc))
                                return sql_error(sql, 02, SQLSTATE(42000) 
"CREATE TABLE: incorrect uri '%s' for remote table '%s'", loc, name);
-                       char *reg_credentials = 
AUTHaddRemoteTableCredentials(loc, local_user, username, password, 
pw_encrypted);
+                       char *reg_credentials = 
AUTHaddRemoteTableCredentials(mapiuri_uri(loc, sql->sa), local_user, username, 
password, pw_encrypted);
                        if (reg_credentials != 0) {
                                return sql_error(sql, 02, SQLSTATE(42000) 
"CREATE TABLE: cannot register credentials for remote table '%s' in vault: %s", 
name, reg_credentials);
                        }
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to