Flex / Granite / Java: ограничение безопасности гранита для web.xml вызывает Client.Error.MessageSend 403 - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть веб-приложение Java EE, которое работает на сервере JBoss.Клиентское приложение написано на Flex, поэтому сервер связывается с клиентом через GraniteDS.

Для обеспечения безопасности я хочу добавить ограничение безопасности на конечные точки graniteamf / *, чтобы ограничить доступ только кпользователи с ролью «appuser».

web.xml

 <security-constraint>
    <display-name>GraniteAmf</display-name>
    <web-resource-collection>
        <web-resource-name>AMFServlet</web-resource-name>
        <description>Protect resource</description>
        <url-pattern>/graniteamf/*</url-pattern>
        <http-method>GET</http-method>
        <http-method>POST</http-method>
        <http-method>PUT</http-method>
    </web-resource-collection>
    <auth-constraint id="Application Users">
        <role-name>appuser</role-name>
    </auth-constraint>
</security-constraint>

Однако, когда я пытаюсь войти в клиентское приложение, Flex возвращаетОшибка 403:

Client.Error.MessageSend [ChannelFaultEvent faultCode="Channel.Connect.Failed" faultString="error" faultDetail="NetConnection.Call.Failed: HTTP: Status 403: url: 'http://localhost:8080/application-artifact/graniteamf/amf'" channelId="graniteamf" type="channelFault" bubbles=false cancelable=false eventPhase=2] Send failed Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Status 403: url: 'http://localhost:8080/application-artifact/graniteamf/amf'.

Обратите внимание, что учетные данные пользователя (имя пользователя и пароль верны) и имя роли, назначенное пользователю (appuser), также правильно.Но Флексу это не нравится.

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

Любая помощь / совет / направление приветствуются.

...