Boa noite Otávio,
permita-me a intromissão no post, mas é que o tema muito me interessa. Eu realizei alguns testes com o Shiro, mas acabei abandonando, não por deficiência, longe disso, até acho que o plugin é muito interessante. Pelas minhas andanças (googlando) por aí, vejo que o tema é realmente complexo pois depende muito de cada caso. Creio que se busque algum modelo meio "pronto", no estilo extends isso, implements aquilo e a coisa aconteça, só que neste tema, sinceramente é muito individual. Confesso que ainda estou estudando mais aprofundadamente o JAAS e espero consegui implementar algum mecanismo realmente eficiente. A ideia seria fazer algo como o controle de autenticação do Wildfly, que inclusive acho ser o modelo que você sugeriu. O problema eu acho que a coisa é pensar nisso levando em consideração o VRaptor, ou o SpringMVC, onde as ações normalmente são os métodos e aí vem as vezes dúvidas, como: se eu tenho um método add(Entity anny) e hoje eu uso um @Allowed("ADMIN") e amanhã haja a necessidade de um @Allowed("ADMIN","OUTRO_QUALQUER"), como implementar sobre o ponto de vista do uso do VRaptor.
Creio que nós menos experientes no assunto estamos enfrentando mesmo é a questão implementação e com certeza o conceitual também.
Bom.. não sei se o texto foi claro rsrsrrs, mas é mesmo apenas para discutir, mas que este post merece um debate e troca de experiências não tenho duvidas.
Forte abraço a todos!
Att