Autenticação e autorização JSF

Qual é a melhor maneira de implementar autenticação e autorização para um aplicativo da Web JSF? De preferência, eu ainda quero usar a segurança baseada em contêiner, já que preciso chamar EJBs que exigem o principal.

Eu percebo que a autenticação baseada em formulário é uma grande dificuldade com o JSF, mas posso usar um PhaseListener ou algo semelhante junto com o logon programático para autenticar o usuário?

Quaisquer outros métodos que eu deveria dar uma olhada?

questionAnswers(4)

yourAnswerToTheQuestion