Возможно ли, чтобы разным веб-службам были назначены разные роли в одном приложении?

#java #glassfish #jax-ws

#java #glassfish #jax-ws

Вопрос:

СРЕДА: JEE6, GlassFish 3.1, NetBeans 7

У меня есть две роли, ADMIN и USER . Я защитил свой веб-сервис Metro с помощью базовой аутентификации HTTP. Однако есть некоторые веб-методы, которые я хочу сделать недоступными для обычных USER . Я думал о разделении двух «типов» веб-методов в двух отдельных веб-службах, плюс каким-то образом сделать так, чтобы у них был другой путь. Таким образом, я мог бы настроить два разных <security-constraint> -ов с разными шаблонами URL, например:

 <web-resource-collection>
    <web-resource-name>Secure Area A</web-resource-name>
    <description/>
    <url-pattern>/SecureWS_A/*</url-pattern>
</web-resource-collection>
...
<web-resource-collection>
    <web-resource-name>Secure Area B</web-resource-name>
    <description/>
    <url-pattern>/SecureWS_B/*</url-pattern>
</web-resource-collection>
  

Но я не смог найти способ сделать это, кроме как использовать два отдельных веб-приложения, которые я действительно не хочу делать. Возможно ли сделать это другим способом?

Комментарии:

1. Программным решением было бы реализовать фильтр вокруг всей вашей защищенной области, который может выполнять более точное сопоставление URL / User.

2. Какая часть не работает? Разделение веб-служб на два пути? Или установка тегов ограничения безопасности?

3. @palacsint Единственное, чего я не знаю, как сделать: как сделать так, чтобы у двух веб-служб были разные пути, чтобы я мог настроить безопасность для каждого из двух шаблонов URL. Также я хочу сделать это в одном веб-приложении. Или с другой точки зрения: возможно ли определить шаблоны URL, которые различают веб-службы в одном веб-приложении? Должен ли я просто использовать полный путь к веб-службе вместо /* регулярных выражений.

4. Каковы (полные) пути ваших веб-служб сейчас?

5. @palacsint https://localhost:8181/DataStore/AdminDataStore?wsdl и https://localhost:8181/DataStore/UserDataStore?wsdl