Olá!
Como a galera sabe, o JAAS se divide em duas áreas: autenticação e autorização.
Muito bem.
A autenticação eu implantei sem problemas, criei um LoginModulo, criei um arquivo jaas.config, integrei via jre/lib/security/java.security. Blz! Funcionou tudo ok e, mais importante, ficou claro para mim o benefício de tornar a autenticação plugável.
Porém, na autorização, adaptei a minha aplicação para permitir o acesso meramente checando as “credentials” do “subject”. Funcionou, mas ficou um gosto amargo de café forte na boca. Não vi a necessidade de dar um passeio à-toa. Eu explico:
O link passado pelo Franklin citava uma classe derivada de Permission. Muito bem criei uma classe derivada de Permission e não de BasicPermission para dar maior flexibilidade. Mas como o meu sistema é muito grande, gerando uma pletora de urls, o código ficaria muito prolixo.
Pegar as permissões dos usuários do banco de dados e convertê-las para objetos URLPermission não seria problema, pois eu consegui uma classe que lê o arquivo de policy e que eu pretendia editar para inserir as URLPermissions. Depois eu substituiria o objeto Policy na JVM usando Policy.setPolicy().
Pensei em simplesmente converter a convenção de autorização antiga do meu sistema, que é baseada em bitmaps tanto na credencial do usuário quanto na máscara de acesso das servlets (se o resultado do operador AND for diferente de zero o acesso é concedido). Essa conversão transformaria os meus bitmaps em objetos Permission, que seriam associados aos usuários através da classe Policy supracitada. A checagem final ficaria a cargo de uma classe semelhante a AuthUtils encontrada no link do Franklin.
Por favor, apreciaria o comentário de alguém justificando a complexidade adicional de se usar o security manager ao invés do esquema de autorização mais simples.
Se não fui kraro, posso esclarecer algum ponto.
T+