Merge "redis: Enforce proper format for username-less auth"
This commit is contained in:
5
releasenotes/notes/redis-password-3ede292f7f843cb8.yaml
Normal file
5
releasenotes/notes/redis-password-3ede292f7f843cb8.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
upgrade:
|
||||
- |
|
||||
Redis uri options now requires ':' before password even when username is
|
||||
not used.
|
@@ -61,12 +61,8 @@ class ConnectionURI(object):
|
||||
cred, sep, netloc = netloc.partition('@')
|
||||
|
||||
if self.username and not self.password:
|
||||
# NOTE(tkajinam): This is kept for backword compatibility but
|
||||
# should be removed after 2025.1
|
||||
LOG.warning('Credential in redis uri does not contain \':\'. '
|
||||
'Make sure that \':\' is added before password.')
|
||||
self.password = self.username
|
||||
self.username = None
|
||||
raise errors.ConfigurationError(
|
||||
_('Password should be set when username is set'))
|
||||
|
||||
query_params = dict(urllib.parse.parse_qsl(query))
|
||||
|
||||
|
@@ -263,14 +263,9 @@ class RedisDriverTest(testing.TestBase):
|
||||
self.assertIsNone(uri.username)
|
||||
self.assertEqual('test123', uri.password)
|
||||
|
||||
# NOTE(tkajinam): Test fallback for backword compatibility
|
||||
uri = driver.ConnectionURI('redis://test123@example.com')
|
||||
self.assertEqual(driver.STRATEGY_TCP, uri.strategy)
|
||||
self.assertEqual(6379, uri.port)
|
||||
self.assertEqual(0.1, uri.socket_timeout)
|
||||
self.assertEqual(0, uri.dbid)
|
||||
self.assertIsNone(uri.username)
|
||||
self.assertEqual('test123', uri.password)
|
||||
self.assertRaises(
|
||||
errors.ConfigurationError,
|
||||
driver.ConnectionURI, 'redis://test123@example.com')
|
||||
|
||||
uri = driver.ConnectionURI(
|
||||
'redis://default:test123@example.com')
|
||||
|
Reference in New Issue
Block a user