Skip to content

Commit 32a3314

Browse files
authored
Merge pull request #6480 from DIRACGridBot/cherry-pick-2-9a5904ea2-integration
[sweep:integration] fix: quoting the password for special characters
2 parents ba04602 + eabb883 commit 32a3314

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

src/DIRAC/Core/Base/SQLAlchemyDB.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
Uses sqlalchemy
55
"""
66
import datetime
7+
from urllib import parse as urlparse
78
from sqlalchemy import create_engine, desc, exc
89
from sqlalchemy.engine.reflection import Inspector
910
from sqlalchemy.orm import sessionmaker
@@ -47,7 +48,7 @@ def _initializeConnection(self, dbPath):
4748
self.host = dbParameters["Host"]
4849
self.port = dbParameters["Port"]
4950
self.user = dbParameters["User"]
50-
self.password = dbParameters["Password"]
51+
self.password = urlparse.quote_plus(dbParameters["Password"])
5152
self.dbName = dbParameters["DBName"]
5253

5354
self.engine = create_engine(

src/DIRAC/Core/Utilities/ElasticSearchDB.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
from datetime import datetime
77
from datetime import timedelta
8+
from urllib import parse as urlparse
89

910
import copy
1011
import functools
@@ -136,6 +137,7 @@ def __init__(
136137
self._connected = False
137138
if user and password:
138139
sLog.debug("Specified username and password")
140+
password = urlparse.quote_plus(password)
139141
if port:
140142
self.__url = f"://{user}:{password}@{host}:{port}"
141143
else:

src/DIRAC/FrameworkSystem/DB/InstalledComponentsDB.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
"""
44
import re
55
import datetime
6+
7+
from urllib import parse as urlparse
8+
69
from sqlalchemy import MetaData, Column, Integer, String, DateTime, create_engine, text
710
from sqlalchemy.engine.reflection import Inspector
811
from sqlalchemy.ext.declarative import declarative_base
@@ -322,7 +325,7 @@ def __initializeConnection(self, dbPath):
322325
self.host = dbParameters["Host"]
323326
self.port = dbParameters["Port"]
324327
self.user = dbParameters["User"]
325-
self.password = dbParameters["Password"]
328+
self.password = urlparse.quote_plus(dbParameters["Password"])
326329
self.dbName = dbParameters["DBName"]
327330

328331
self.engine = create_engine(

0 commit comments

Comments
 (0)