#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