发送"需要验证消息"未经过身份验证且"会话已过期"当会话超时时

时间:2014-04-22 06:55:05

标签: session jsf-2 primefaces

我正在使用登录过滤器并已成功实施。但是现在,如果用户试图通过直接在地址栏中提供(页面的URL)来尝试查看页面,我需要显示一条错误消息“需要验证”。

此外,当会话超时时,我需要显示“会话已过期”等错误消息。 后者的实现(由所有人建议),使用过滤器重定向到login或index.xhtml,结束了。但我想到了显示错误信息。

任何帮助? 提前致谢

2 个答案:

答案 0 :(得分:0)

您可以尝试使用onload检查页面正文,它会调用远程命令。在远程命令的操作本身中,您可以指定执行检查的Bean方法:

<h:body  id="page_body"  onload="isConnected();">
    <h:form >
        <p:remoteCommand name="isConnected" update=":page_body" autoRun="false" action="#{myBean.checkIfLoggedIn()}"/>
    </h:form>
    ..................
</h:body>

答案 1 :(得分:0)

请在此处查看我的回答:https://stackoverflow.com/a/23217445/1453701 在您的情况下,您应该使用url参数让视图知道它应该在@PostConstruct中添加FacesMessage

在你的bean中你可以放:

@PostConstruct
public void init() {
    String showMessage = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("showMessage");
    if ("true".equals(showMessage)) {
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Authentication Required", "place your detailed message here"));
    }
}