2012-05-14 2 views
2

Я использую клиент redis для циклона.Как проверить подлинность с помощью Cyclone и Redis

Замечательно, что вы можете подключиться к серверу без пароля, но как подключиться к redis с паролем? Как изменить приведенный ниже код для аутентификации?

t = cyclone.redis.lazyConnectionPool(host,port,db) 

@cyclone.web.asynchronous 
def on_finish(self): 

    t = yield tt.multi() 
    yield t.set('key', 'value') 
    r = yield t.commit() 
    print "commit=", repr(r) 

Благодаря

ответ

1

клиент циклон Redis имеет auth метод, который вы можете отправить пароль для, установив, что пароль в redis.conf

def auth(self, password): 
    """ 
    Simple password authentication if enabled 
    """ 
    return self.execute_command("AUTH", password) 

Но будьте очень осторожны, прежде чем использовать Redis авторизацию. это не считается безопасным (по дизайну) и в основном используется только для защиты экземпляров от ошибок конфигурации, заставляющих клиента подключаться к неправильной базе данных, а не как метод безопасности.

из Redis конфигурации документа:

# This should stay commented out for backward compatibility and because most 
# people do not need auth (e.g. they run their own servers). 
# 
# Warning: since Redis is pretty fast an outside user can try up to 
# 150k passwords per second against a good box. This means that you should 
# use a very strong password otherwise it will be very easy to break. 
+0

Но в примере, который я опубликовал, как это работает? ? – Tampa

+0

Я не знаю, что конкретный клиент хорошо, но из документации он должен быть чем-то вроде 't = cyclone.redis.lazyConnectionPool (host, port, db); authResult = выход t.auth (myPass) ' –

0

Водитель Redis в циклоне txredisapi, и он делает проверку подлинности поддержки (среди многих других вещей). Здесь указывается: https://github.com/fiorix/txredisapi/blob/master/README.md#authentication

Однако он не очень хорошо работает при автоподключении, поскольку аутентификация не реализована в методе Connection. Это означает, что он не будет повторно аутентифицироваться автоматически после повторного подключения.

Это может быть реализовано, но люди, похоже, не используют его.