0

症状:
PumaLocator不可用,每个方法都findXXX返回空结果或抛出异常,因为没有找到任何东西。

分析:
问题似乎是,由于 ICEfaces 特定的体系结构,该方法GenericPortlet.doView仅在第一次加载 Portlet 时调用,而不是在后续(AJAX)页面更新时调用,例如在调用 ActionListener 的情况下。
如果我PumaLocator在 doView 方法中使用,一切正常。

我尝试了以下尝试:

  • 进入PumaLocatordoView将其放入 Session 并稍后使用 - 没有用
  • 获取RenderRequestin doView,将其放入 Session 并稍后使用它PumaLocator通过传递该请求来获取 - 不起作用

我很高兴有任何提示。谢谢!

4

1 回答 1

1

PUMA 使用上下文中的信息检查结果的授权。您必须在 ICEFaces 使用的 AJAX 后端 servlet 的部署描述符中添加 JavaEE 安全角色。作为一个经验法则,如果 request.getRemoteUser() 和 request.getUserPrincipal() 返回除了 null 之外的东西,你知道 PUMA 会工作。否则它将不起作用,这是预期的行为。

或者,您可以尝试像这样禁用 PUMA 的安全检查。

于 2011-04-09T13:57:26.347 回答