Segurança no JBoss Seam

Estou com um problema na segurança do Jboss Seam e não sei bem como resolver. Vou explicar a situação:

Problema: Criar um controle de acesso, onde somente os itens que o usuário possui permissão serão exibidos.
O usuário tem de ser validado no LDAP e as roles dele estão em uma tabela do nosso banco.

Solução:
Coloquei todos os itens do menu no banco de dados e programaticamente montei a lista do menu que será exibido ao usuário e cuspo isso na tela.

Problema na Solução: Foi tudo feito corretamente mas existe o problema de que se o usuário logar e jogar uma url que ele não possui acesso o sistema aceita e exibe a página.

Existe alguma forma de restringir a página para apenas se o usuário tiver alguma role ou mesmo bloquear esse problema de jogar a url direto?

Tente algo assim no pages,xml do seam.

<page view-id="/home.xhtml" action="#{identity.isLoggedIn}">
    <navigation from-action="#{identity.isLoggedIn}">
        <rule if-outcome="true">
            <redirect view-id="/main.xhtml"/>
        </rule>
    </navigation>
</page>

[]s
jair

Isso não dá pra fazer pois o usuário está logado!!! Eu quero uma forma de delegar os papéis e ele bloquear através das roles do usuário.
Tentei utilizar a tag restrict no pages.xml mas ela só é chamada quando acesso o sistema pelo menu, mas quando jogo a url ele nem lê o pages.xml :frowning:

Alguém tem idéia?

Percebi que o sistema havia vários arquivos pages.xml distribuidos, assim coloquei a role especifica da tela em cada um deles.
Não deu pra ficar centralizado no pages.xml, pois o sistema já estava utilizando vários “sub-pages”