为嵌入式码头增加安全性

时间:2012-01-20 09:40:14

标签: authentication jetty

我在jetty中配置BASIC-auth时遇到问题 这是我的web.xml

<security-constraint>
    <web-resource-collection>
        <web-resource-name>resources</web-resource-name>
        <url-pattern>/resources/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>user</role-name>
    </auth-constraint>
</security-constraint>
<login-config>
    <auth-method>BASIC</auth-method>
    <realm-name>MyRealm</realm-name>
</login-config>
<security-role>
    <role-name>user</role-name>
</security-role>

这是我尝试添加LoginService的java代码

HashLoginService myrealm = new HashLoginService("MyRealm");
    myrealm.setConfig("src/main/resources/jetty-realm.properties");
    root.getSecurityHandler().setLoginService(myrealm);

我的jetty-realm.properties文件有以下用户

user: Lag976JGQdeosfQM,user

我可以建立连接,但我无法进行身份验证,而且我现在已经坚持了很长时间,所以无论谁帮助我获得免费的数字啤酒! ;)

1 个答案:

答案 0 :(得分:5)

好的,所以我发现了我没做的事, 你必须先启动一个LoginService才能使用它,所以我把我的java代码改为

HashLoginService myrealm = new HashLoginService("MyRealm");

myrealm.setConfig("src/main/resources/jetty-realm.properties");
myrealm.start();

root.getSecurityHandler().setLoginService(myrealm);