WebSpherePumaSPI(PumaLocator)如何与ICEfaces Portlet一起使用?

WebSpherePumaSPI(PumaLocator)如何与ICEfaces Portlet一起使用?,icefaces,websphere-portal,Icefaces,Websphere Portal,症状: PumaLocator不可用,每个findXXX-方法返回空结果或抛出异常,因为找不到任何内容 分析: 问题似乎在于,由于ICEfaces特定的体系结构,方法GenericPortlet.doView仅在首次加载Portlet时调用,而不用于以下(AJAX)页面更新,例如在调用ActionListener的情况下。 如果我在doView方法中使用PumaLocator,一切正常 我尝试了以下尝试: 在doView中获取PumaLocator,将其放入会话并稍后使用-不起作用 在doVi

症状:
PumaLocator
不可用,每个
findXXX
-方法返回空结果或抛出异常,因为找不到任何内容

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

我尝试了以下尝试:

  • doView
    中获取
    PumaLocator
    ,将其放入会话并稍后使用-不起作用
  • doView
    中获取
    RenderRequest
    ,将其放入会话中,稍后使用它通过传递该请求来获取
    PumaLocator
    ——不起作用

我很乐意得到任何提示。谢谢大家!

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


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

谢谢您的回复-非常有用。您能否添加一些关于要添加哪些安全角色的详细信息?谢谢@莫莫丝,任何。只需确保您的servlet(或其他)需要一些经过身份验证的用户和角色。不管发生什么事。