В моем веб-приложении я требую, чтобы пользователи повторно вводили свой пароль после пяти минут бездействия, аналогично тому, как sudo работает в Linux.Их пароль используется для расшифровки информации.
FWIW, приложение в значительной степени основано на Javascript и AJAX, как и настольное приложение, использующее ExtJS.
Итак, я создал класс, которыйобеспечивает доступ к ключу расшифровки на основе пароля, который они вводят.Этот класс истекает ключ через пять минут.
Мой вопрос: какой шаблон проектирования следует за или , что было бы лучшим именем, чем 'Sentry'? IЯ пытаюсь назвать свой класс соответствующим образом.Вот класс на данный момент:
class SecureResourceSentry
include Singleton
def initialize
# Set a default number of seconds for access to expire.
set_access_expiration_interval(300)
@key = nil
@time_last_accessed = 0
end
def set_access_expiration_interval(seconds)
@access_expiration_interval = seconds
end
def set_raw_key(raw_key)
@key = Digest::SHA256.hexdigest(raw_key)
end
def getKey
if @key.nil?
raise SecureResourceError, 'No key has been set.'
end
if access_is_expired
@key = nil
raise SecureResourceError, 'Access has expired.'
end
return @key
end
private
def access_is_expired
return Time.now.to_i - @time_last_accessed > @access_expiration_interval
end
end