Jetty 不接受来自 realm.properties 的密码
Jetty does not accept password from realm.properties
我有一个示例 jetty webapp,我想用密码保护它,比如 sample.war。我被要求输入密码,但 user/password 组合不被接受,而是再次被要求。我究竟做错了什么?是否在任何地方记录了不成功的登录尝试?
这是我当前的配置:
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
好吧,因为我怀疑这是一个 PEBKAC 案例...
我在错误的地方创建了 realm.properties
文件,因为弄错了 jetty.home
的设置。所以我没有使用正确的地方 /etc/jetty9/realm.properties
,而是使用了错误的 /var/lib/jetty9/etc/realm.properties
.
我有一个示例 jetty webapp,我想用密码保护它,比如 sample.war。我被要求输入密码,但 user/password 组合不被接受,而是再次被要求。我究竟做错了什么?是否在任何地方记录了不成功的登录尝试?
这是我当前的配置:
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
好吧,因为我怀疑这是一个 PEBKAC 案例...
我在错误的地方创建了 realm.properties
文件,因为弄错了 jetty.home
的设置。所以我没有使用正确的地方 /etc/jetty9/realm.properties
,而是使用了错误的 /var/lib/jetty9/etc/realm.properties
.