#csrf #plone #authenticator
#csrf #plone #аутентификатор
Вопрос:
Я использую Plone 5 со скриптом python для изменения каталога. Во время этого процесса я получил ошибку защиты CSRF. В документах Plone я нашел следующее решение:
authenticator = context.restrictedTraverse("@@authenticator")
url = url "?_authenticator=" authenticator.token()
state.set(..., next_action='redirect_to:string:%s' % url)
Выполнение этого кода приводит к этому:
Traceback (innermost last):
Module ZPublisher.Publish, line 138, in publish
Module ZPublisher.mapply, line 77, in mapply
Module ZPublisher.Publish, line 48, in call_object
Module Shared.DC.Scripts.Bindings, line 322, in __call__
Module Shared.DC.Scripts.Bindings, line 359, in _bindAndExec
Module Products.PythonScripts.PythonScript, line 344, in _exec
Module script, line 19, in my_script
- <PythonScript at /path/to/my_script used for /path/library>
- Line 19
Module plone.protect.authenticator, line 104, in token
Module plone.protect.authenticator, line 95, in createToken
Module plone.protect.authenticator, line 51, in _getKeyring
Module zope.component._api, line 169, in getUtility
ComponentLookupError: (<InterfaceClass plone.keyring.interfaces.IKeyManager>, '')
Что пошло не так?
Комментарии:
1. Лучше всего задавать вопросы Plone на нашем форуме community.plone.org где вы получите намного больше глазных яблок
2. Было бы интересно увидеть строку 19 вашего скрипта, на которую ссылается сообщение об ошибке. Можете ли вы предоставить несколько полных строк кода вашего скрипта для возможного воспроизведения ошибки?