Bom dia galera, estou estudando o livro use a cabeça jsp e servlets, e agora cheguei na parte de autenticação/autorização. Quero tentar implementar primeiro a autenticação mas no livro não está muito claro como devo fazer isso utilizando o container, no caso do tomcat utilizando o arquivo tomcat-users.xml.
É necessário ter uma tabela em um banco de dados para salvar as roles/users ou é utilizado o que está definido no tomcat-users.xml ?
Além de configurar o tomcat-users.xml, criar os forms loginOK/loginErro, web.xml (autorização, permissão GET/POST, etc) é necessário mais alguma coisa? Mais tarde eu posto o que eu consegui fazer.
Sua “fonte” de roles e de usuários pode ser tanto um xml como um SGDB ou outras fontes de dados. No tomcat tem um REALM para cada opção.
Aconselho vc a ler um livro especifico de tomcat realms para esclarecer…dependendo do realm selecionado tem outras coisas para configurar tambem.
A
alandiniz
o tomcat-users.xml é pra autentica no gerenciador do Tomcat e não no seu projeto/aplicação… e não precisa (mas pode ter) banco de dados…
eu “axo” q vc ta confundindo as coisas ^^
F
FernandoFranzini
Oi alan
O tomcat.user.xml é usado sim para declarar os usuários da aplicação caso o REALM de fonte de dados escolhido for XML…
G
gRoOve
Oi alan
O tomcat.user.xml é usado sim para declarar os usuários da aplicação caso o REALM de fonte de dados escolhido for XML…
Exatamente, estava faltando setar o REALM correto no server.xml do tomcat.
Não consegui entender bem o que é este REALM do tomcat, poderia explicar?
Container Autentication é idenpendente de fonte de dados, isso quer dizer que um container web pode implementar autenticação e autorização sem conhecer a fonte autenticadora. Uma aplicação web pode autenticar os usuários numa base xml, sgdb, ldap, nosql, etc.
Cada implementação desse suposta fonte de dados autenticadora no tomcat é chamado de “REALM”.
Qualquer duvida, estudo mais sobre o assunto
É possível saber qual usuário está logado, exibir seu nome? Quando foi seu último login, essas coisas? Como faria isso?
É comum usar esse tipo de autenticação onde é passado a responsabilidade pro container?
F
FernandoFranzini
É possível saber qual usuário está logado, exibir seu nome? Quando foi seu último login, essas coisas? Como faria isso?
Sim, vc vai ter que controlar vc mesmo este tipo de informações.
Sim. O JEE é um ecossistema de tecnologias que especifica que determinados serviços (não só esse como muitos outros) devem ser fornecidos pelos provedores, retirando das coisas dos desenvolvedores essa responsabilidade. Isso faz com que vc se preocupe com as regras de negócios em si da sua solução, não perdendo tempo em inventar, implementar e testar coisas relacionados com infra estruturas.