Jetty не принимает пароль от realm.properties - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть пример веб-приложения Jetty, которое я хочу защитить паролем, например, sample.war.Меня просят ввести пароль, но комбинация пользователь / пароль не принимается, вместо этого меня снова спрашивают.Что я делаю неправильно?Неудачные попытки входа регистрируются где-либо?

Это моя текущая конфигурация:

web.xml {jetty.home}/webapps/sample.war:WEB-INF/web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
             http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 
         version="2.4">

    <display-name>Sample</display-name>
    <description>
        Dummy web application to test password protected folders.
    </description>

    <servlet>
        <servlet-name>SampleServlet</servlet-name>
        <servlet-class>mypackage.Sample</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>SampleServlet</servlet-name>
        <url-pattern>/sample</url-pattern>
    </servlet-mapping>

    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>sample realm</realm-name>
    </login-config>

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Secure resources</web-resource-name>
            <url-pattern>/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>user</role-name>
        </auth-constraint>
    </security-constraint>

    <security-role>
        <role-name>user</role-name>
    </security-role>

</web-app>

файл контекста {jetty.home}/webapps/sample.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" 
    "http://www.eclipse.org/jetty/configure_9_2.dtd">

<Configure class="org.eclipse.jetty.webapp.WebAppContext">
  <Set name="contextPath">/sample</Set>
  <Set name="war">webapps/sample.war</Set>
  <Get name="securityHandler">
    <Set name="loginService">
      <New class="org.eclipse.jetty.security.HashLoginService">
        <Set name="name">sample realm</Set>
        <Set name="config">etc/realm.properties</Set>
      </New>
    </Set>
  </Get>
</Configure>

файл области {jetty.home}/etc/realm.properties

foo: bar,user

1 Ответ

0 голосов
/ 19 декабря 2018

Хорошо, как я и подозревал, это был случай PEBKAC ...

Я создал файл realm.properties не в том месте, из-за того, что ошибочно установил jetty.home.Таким образом, вместо правильного места /etc/jetty9/realm.properties, я использовал неправильный /var/lib/jetty9/etc/realm.properties.

...