Changed service permission checks to fail when user doesn't have access rights.
This commit is contained in:
@ -898,7 +898,7 @@ process_config_context(CONFIG_CONTEXT *context)
|
|||||||
s = strtok_r(NULL, ",", &lasts);
|
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(
|
LOGIF(LE, (skygw_log_write_flush(
|
||||||
LOGFILE_ERROR,
|
LOGFILE_ERROR,
|
||||||
|
|||||||
@ -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)
|
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"
|
skygw_log_write(LE,"%s: Error: Failed to connect to server %s(%s:%d) when"
|
||||||
" checking authentication user credentials and permissions: %d %s",
|
" checking authentication user credentials and permissions: %d %s",
|
||||||
service->name,
|
service->name,
|
||||||
server->server->unique_name,
|
server->server->unique_name,
|
||||||
server->server->name,
|
server->server->name,
|
||||||
server->server->port,
|
server->server->port,
|
||||||
mysql_errno(mysql),
|
my_errno,
|
||||||
mysql_error(mysql));
|
mysql_error(mysql));
|
||||||
mysql_close(mysql);
|
mysql_close(mysql);
|
||||||
free(dpasswd);
|
free(dpasswd);
|
||||||
|
|
||||||
/** We don't know enough about user permissions */
|
/** 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)
|
if(mysql_query(mysql,"SELECT user, host, password,Select_priv FROM mysql.user limit 1") != 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user