@tavi

Аутентификация под Jetty в Eclipse — проблема с редеплоем. Как решить?

Разрабатываю приложение на 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?
  • Вопрос задан
  • 234 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы