Разрабатываю приложение на GWT. Отлаживаю его в Eclipse в DevMode, который, в свою очередь, запускает сервер Jetty.
Решил добавить в свое приложение аутентификацию пользователей, и использовать для этого возможности Jetty. Для этого написал такой файл конфигурации jetty-web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Get name="securityHandler">
<Set name="loginService">
<New class="org.eclipse.jetty.security.HashLoginService" id="DefaultLoginService">
<Set name="name">Test Realm</Set>
<Set name="config">realm.properties</Set>
<Call name="start"/>
</New>
</Set>
<Set name="checkWelcomeFiles">true</Set>
</Get>
</Configure>
Создал файл realm.properties, сделал стартовую страничку с полями вода логина/пароля, запускаю - всё работает, пользователи логинятся. Но - при попытке сделать повторный деплой своего приложения из eclipse на сервер получаю exception, после которого приложение становится недоступно:
[WARN] Failed startup of context c.g.g.d.s.j.WebAppContextWithReload{/,file:/E:/workspace/WebApp1/WebContent/},E:\workspace\WebApp1\WebContent
java.lang.IllegalStateException: LoginService has different IdentityService to org.eclipse.jetty.security.ConstraintSecurityHandler@511c9197
at org.eclipse.jetty.security.SecurityHandler.doStart(SecurityHandler.java:354)
...
Возникает ощущение, что при повторном деплое LoginService создается заново и - что-то идет не так (конфликт с созданным ранее IdentityService?).
Внятной информации по синтаксису jetty.xml, где объяснялось бы, что такое IdentityService и как его конфигурировать, мне найти не удалось. Вопрос - что делать? Может быть, у кого-нибудь есть рабочий пример этого файла, корректно выдерживающий редеплой под Jetty?