使用 JAAS 和 Vaadin Push 登录后出现意外重定向

kal*_*rus 5 java jaas atmosphere jboss6.x vaadin7

我在依赖 JAAS 登录的应用程序之一中使用 Vaadin Push。似乎存在两种框架发生冲突的情况。

我已经配置了这样的安全约束:

<!-- This is the exclusion I talk about below -->
<security-constraint>
    <web-resource-collection>
        <web-resource-name>ecomsupportform</web-resource-name>
        <url-pattern>/app/PUSH</url-pattern>
    </web-resource-collection>
</security-constraint>
<!-- This is the exclusion I talk about below -->

<security-constraint>
    <web-resource-collection>
        <web-resource-name>ecomsupportform</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>*</role-name> 
    </auth-constraint>
</security-constraint>

<security-role>
    <description>any</description>
    <role-name>*</role-name>
</security-role>
Run Code Online (Sandbox Code Playgroud)

当我在会话超时后刷新页面时,会显示登录页面。但随后 Vaadin 似乎想通过 Atmosphere 向服务器发送关闭请求来关闭 Push-Session,JBoss 注意到并阻止了这一请求,因为我尚未登录。虽然我不知道 Push-Session 发生了什么,但当我知道登录时,JBoss 会将我重定向到.../PUSHVaadin 之前发送的 -URL。出现空白屏幕。

我尝试PUSH通过将 -Request 排除在身份验证之外来阻止 JBoss 捕获该请求。现在,当 Vaadin 发送关闭请求时,浏览器会在网络选项卡中显示 500(而不是 401 HTTP 响应代码),当我登录时,也会发生同样的情况。

我还尝试将“推送”设置为“手动”模式,或使用许多不同的传输机制。

PS:如果有帮助的话。当我登陆登录页面并在登录之前重新加载时,一切正常。

有什么办法可以防止JBoss登录后像这样重定向吗?或者我可以用其他方式解决这个问题吗?