JSF 2 - Blokear acesso direto. Diferentes acessos a paginas. Restringir conforme nível de usuário

Boa tarde.

Pessoal, estou começando em WEB agora e tenho muitas dúvidas.

Bom tentei fazer um sistema de Login (totalmente gambiarra, só para começar a entender JSF 2.0), com diferentes acessos a páginas, etc.
Saindo apartir da página index (onde realiza o login). A navegação fica correta.
Porém se o usuário escrever diretamente o nome de uma página na barra de Endereços, a página abre
sem se quer exigir autenticação.

Como resolvo este problema, de não ser permitido entrar diretamente em uma página restrita?

Outro problema que estou sofrendo é para finalizar uma sessão (um ManegedBean),
das maneiras que encontrei, inicialmente parece que funciona, contudo se o usuário voltar a página anterior,
a sessão volta normalmente.

Desde já grato,
Filipe D.

PS.: Se alguem souber/possuir um Sistema exemplo em JSF 2.0 que eu possa analizar o código, estratégias de programação, configurações, etc. Fico grato.

Boa tarde, que acredito que existam frameworks que sejam capazes de fazer isso, como o Spring Security acho que
ele prover esta funcionalidade.

De maneira alternativa quando o usuário logar no sistema seta uma variavel na sessão e verifica na outras telas se esta
variável está setada, caso não, redirecione o usuário para a página de login.