我尝试将jetty配置为使用基本的http身份验证。我按照一些教程,但它仍然无法正常工作。 这是我做的: 首先,我在jetty.xml中配置了一个HashLoginService“Test Realm”。
/etc/jetty8/jetty.xml:
...
<Call name="addBean">
<Arg>
<New class="org.eclipse.jetty.security.HashLoginService">
<Set name="name">Test Realm</Set>
<Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set>
<Set name="refreshInterval">0</Set>
</New>
</Arg>
</Call>
...
之后我在webdefault.xml中定义了user-roles和login-config
/etc/jetty8/webdefault.xml:
<security-constraint>
<web-resource-collection>
<web-resource-name>A Protected Page</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
<role-name>user</role-name>
<role-name>moderator</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Test Realm</realm-name>
</login-config>
<security-role>
<role-name>user</role-name>
</security-role>
最后我编辑了/etc/realm.properties文件:
test: test,user
当我尝试访问该网站时,会出现一个登录窗口。如果我进入测试用户,则再次显示验证窗口,而不显示任何错误消息。还有什么我需要配置的吗? 我想保护整个服务器,包括所有的webapps。所以最好只使用.xml配置文件。
提前致谢, 罗伯特