Flex / Granite / Java:web.xml上的花岗岩安全性约束导致Client.Error.MessageSend 403

时间:2019-02-15 14:14:41

标签: java-ee flex flex4 web.xml graniteds

我有一个在JBoss服务器上运行的Java EE Web应用程序。客户端应用程序是用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)的角色名称也正确。但是Flex似乎不喜欢它。

可能有任何特殊原因吗?我是否可能缺少额外的配置?

欢迎任何帮助/建议/指导。

0 个答案:

没有答案