jetty security-constraint auth-constraint role-name *(星号)失败

时间:2012-06-21 18:15:41

标签: java servlets jetty security

我正在学习Jetty嵌入式(jet​​ty-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()

1 个答案:

答案 0 :(得分:2)

我明白了。我对如何在web.xml中使用<role-name>有一个基本的误解。我想如果我在<security-constraint><auth-constraint><role-name>中使用“*”,那么它也应该列在<security-role><role-name>中。但是,我发现后者应该列出应用程序中使用的实际角色,在我的情况下是“用户”。