Modal abrir somente uma vez

Tenho um modal que é carregado depois do login (automatico), está funcionando (showWhenRendered por padrao é true), porem a cada refresh o modal abre, eu preciso que ele abra somente uma vez depois de logar.

<rich:modalPanel id="modal" autosized="true" width="500" height="200" showWhenRendered="#{true}">
        <f:facet name="controls">
            <h:graphicImage value="/img/fechando.png" onclick="Richfaces.hideModalPanel('modalMensagem')"
                id="botaoFechar" />
        </f:facet>
        <f:facet name="header">
            <h:panelGroup>
                <h:outputText value="Olá" />
            </h:panelGroup>
        </f:facet>

        <h:outputText value="#{bean.mensagem}" escape="true" style="font-size:15px;"/>
    </rich:modalPanel>

tela2.xhtml

<ui:define name="conteudo">
    <h:form id="main">
        <rich:messages styleClass="msgerro" globalOnly="true" />

        <center style="font-size: 10pt;">
            Olá
            <br />
        </center>
    </h:form>

    <ui:include src="/modal.xhtml"/>
</ui:define>

Eu tinha tentado esse método, mas ele nunca ia cair no false pra encerrar a abertura do modal novamente. Como fazer pra abrir somente a cada sessão?

private boolean mostraModal;

get e set

public String mensagemDoBeneficiario() {
		if (isMostraModal) {
			mensagem = MENSAGEM_DO_BENEFICIARIO;
		} else {
			mensagem = null;
			exibirModalMensagemBeneficiario = false;
		}
		return mensagem;
	}
public class HomePageMB {
    ...

    private static final String CHECKED_WELCOME_MODAL = "checkedWelcomeModal";

    public boolean showWelcomeModal() {
        Map<String, Object> sessionMap = FacesContext.getCurrentInstance().getExternalContext().getSessionMap();

        if(sessionMap.get(CHECKED_WELCOME_MODAL) == null) {
            sessionMap.put(CHECKED_WELCOME_MODAL, true);
            return true;
        }

        return false;
    }
    ...
}

xhtml

<rich:modalPanel showWhenRendered="#{homePageMB.showWelcomeModal()}">
   ...
</rich:modalPanel>