我正在学习Jetty嵌入式(jetty-all-8.1.3.v20120416.jar),我有一个简单的servlet,我启用了<security-constraint>
(HTTP BASIC)。我的两个单元测试检查授权正确传递和失败(一个使用我的realm.properties中的用户名和密码发出请求,另一个尝试连接时不使用身份验证)当我有<role-name>users</role-name>
但{ {1}}。 JUnit不正确结果的摘要(参见下面的方法定义):
<role-name>*</role-name>
下面包含文件片段('===='将它们分开)。我希望有足够的信息。提前致谢! - 亚光
==== web.xml ====
testPingServletAuthenticated(): Expected: OK, Actual: Forbidden
testPingServletUnauthenticated(): Passed
==== realm.properties ====
servlet-mapping
servlet-name: hello-servlet
url-pattern: /hello-web-xml
security-constraint
url-pattern: /*
auth-constraint:
role-name: users
login-config
auth-method: BASIC
realm-name: test security realm
security-role
role-name: users
==== HelloServlet.java ====
theuser:password,users
==== JettySetupTest.java ====
very simple doGet()
答案 0 :(得分:2)
我明白了。我对如何在web.xml中使用<role-name>
有一个基本的误解。我想如果我在<security-constraint><auth-constraint><role-name>
中使用“*”,那么它也应该列在<security-role><role-name>
中。但是,我发现后者应该列出应用程序中使用的实际角色,在我的情况下是“用户”。