Ограничение безопасности в web.xml
У меня есть следующие ограничения безопасности, введенные в web.xml. Моя цель состоит в том, что файлы XML находятся в области общего доступа. Это работает для папки /images/*
. Однако шаблон url *.xml
, похоже, не работает. Любые идеи?
<security-constraint>
<web-resource-collection>
<web-resource-name>Public Area</web-resource-name>
<url-pattern>/xyz</url-pattern>
<url-pattern>/images/*</url-pattern>
<url-pattern>/yyz/*</url-pattern>
<url-pattern>*.xml</url-pattern>
</web-resource-collection>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Super User Area</web-resource-name>
<url-pattern>/test/list1</url-pattern>
<url-pattern>/test/list2</url-pattern>
<url-pattern>/test/list3</url-pattern>
<url-pattern>/test/admin.html</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>SUPER_USER</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected Area</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>ADMIN</role-name>
<role-name>END_USER</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<description>Super User</description>
<role-name>SUPER_USER</role-name>
</security-role>
<security-role>
<description>Admin User</description>
<role-name>ADMIN</role-name>
</security-role>
<security-role>
<description>End User</description>
<role-name>END_USER</role-name>
</security-role>
Ответы
Ответ 1
Один из ваших других шаблонов URL-адресов соответствует более чем url-pattern
- *.xml requestURI, поэтому он не работает. Например, если у вас есть /test/list/user.xml
, то это будет рассматриваться как коллекция веб-ресурсов в Суперпользовательской области, и поэтому SUPER_USER может иметь доступ. поэтому убедитесь, что url-шаблон объявлен более конкретным для ресурсов, чтобы избежать столкновений и неправильной интерпретации. Благодаря
Ответ 2
Собственно, последовательность размещения возникает, первые ограничения безопасности должны быть суперпользователем, а затем ограничениями безопасности в публичных зонах. Если ваше ограничение безопасности принадлежит публичной зоне, оно будет написано с помощью следующих ограничений безопасности.
Ответ 3
Может кто-нибудь сказать мне, где настроить имя роли SUPER USER? У меня та же проблема.