Я установил Orbeon Forms 2018.2.201901010020 CE
в Tomcat-8.5.37
и попытался использовать новую кнопку выхода из пользовательского меню - вход в систему работал уже в предыдущих выпусках orbeon.
Указание FORM в качестве метода аутентификации враздел входа в систему web.xml, все работает без сбоев.Но при использовании аутентификации FORM необходимо сохранять пароли в виде открытого текста, этого следует избегать.
Поэтому я попытался DIGEST в качестве метода аутентификации, который позволяет сохранять зашифрованные пароли.
Логин работаети пользовательское меню сообщает о вошедшем в систему пользователе.
Но выход из системы не делает сеанс недействительным.Вместо отображения страницы выхода из orbeon отображается домашняя страница бегуна форм, а в пользовательском меню пользователь по-прежнему отображается как вошедший в систему.
И, нажав еще раз кнопку выхода, все остается прежним: домашняя страница бегуна формотображается с уже вошедшим пользователем.
В properties-local.xml
я вставил свойство для меню пользователя и для аутентификации контейнера:
<property
as="xs:boolean"
name="oxf.fr.authentication.user-menu.enable"
value="true"/>
<property
as="xs:string"
name="oxf.fr.authentication.method"
value="container"
/>
Пользователи и роли определены вtomcat_users.xml
.
В web.xml
я изменил шаблон URL в ограничении безопасности для бегуна форм с <url-pattern>/fr/auth</url-pattern>
на <url-pattern>/fr/*</url-pattern>
, поэтому tomcat запросил аутентификацию для всех fr
страниц:
<security-constraint>
<web-resource-collection>
<web-resource-name>Form Runner</web-resource-name>
<!-- <url-pattern>/fr/auth</url-pattern> original -->
<url-pattern>/fr/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>orbeon-user</role-name>
</auth-constraint>
</security-constraint>
Для аутентификации DIGEST я использовал DIGEST в login-config
web.xml
и добавил CredentialHandler
в области в server.xml
.
<login-config>
<auth-method>FORM</auth-method>
<!-- <auth-method>DIGEST</auth-method> -->
<form-login-config>
<form-login-page>/fr/login</form-login-page>
<form-error-page>/fr/login-error</form-error-page>
</form-login-config>
</login-config>
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase">
<!-- <CredentialHandler
className="org.apache.catalina.realm.MessageDigestCredentialHandler"
algorithm="md5" saltLength="0" iterations="1" /> -->
</Realm>
В тестах я впервые открыл страницу http://localhost/8080/orbeon/home/
.Это не страница fr , поэтому она будет отображаться без запроса пароля.
Затем я выбрал приложение bookshelf .Это страница fr, поэтому всплывает страница для аутентификации.
При аутентификации FORM отображается страница входа orbeon:
При аутентификации DIGEST отображается страница входа tomcat:
В обоих случаях после успешного входа отображается страница сводной книжной полки, а в пользовательском меню отображается зарегистрированный пользователь.
При аутентификации DIGEST после нажатия кнопки выхода из системы следующая страница отображается вместо домашней страницы orbeon.Пользователь остается в системе, и имя пользователя отображается в меню пользователя.
При повторном нажатии кнопки выхода все остается прежним: домашняя страница бегунка формы отображается с уже вошедшим пользователем:
Рядом находятся ссылки на два журнала orbeon:
orbeon.log для FORM аутентификации аутентификация в форме журнала orbeon
orbeon.log для DIGEST аутентификация orbeon log DIGEST аутентификация
Примечание.В журнале orbeon DIGEST я видел ошибки сломанной трубы, в журнале orbeon FORM я не видел этих ошибок.
Что мне нужно изменить, чтобы выход из системы также работал с аутентификацией DIGEST?
Большое спасибо за любые советы