Changed service permission checks to fail when user doesn't have access rights.

This commit is contained in:
Markus Makela 2015-08-28 17:39:17 +03:00
parent 00a3d7eb56
commit 45227c8875
2 changed files with 5 additions and 3 deletions

View File

@ -898,7 +898,7 @@ process_config_context(CONFIG_CONTEXT *context)
s = strtok_r(NULL, ",", &lasts);
}
}
else if (servers == NULL && !isInternalService(router))
else if (servers == NULL && !isInternalService(router) && strcmp(router,"binlogrouter"))
{
LOGIF(LE, (skygw_log_write_flush(
LOGFILE_ERROR,

View File

@ -2396,19 +2396,21 @@ bool check_service_permissions(SERVICE* service)
if(mysql_real_connect(mysql,server->server->name,user,dpasswd,NULL,server->server->port,NULL,0) == NULL)
{
int my_errno = mysql_errno(mysql);
skygw_log_write(LE,"%s: Error: Failed to connect to server %s(%s:%d) when"
" checking authentication user credentials and permissions: %d %s",
service->name,
server->server->unique_name,
server->server->name,
server->server->port,
mysql_errno(mysql),
my_errno,
mysql_error(mysql));
mysql_close(mysql);
free(dpasswd);
/** We don't know enough about user permissions */
return true;
return my_errno != ER_ACCESS_DENIED_ERROR;
}
if(mysql_query(mysql,"SELECT user, host, password,Select_priv FROM mysql.user limit 1") != 0)