Estou analisando o mecanismo de proteção dos recursos de uma aplicação WEB verificando as caracteristica do REALM no TomCat.
Ao analisar o MemoryRealms fica claro que definimos users e roles declarativamente no arquivo
<tomcat_home>/conf/tomcat-users.xml e web.xml.
exemplo.:
<tomcat-users>
<user name="bob" password="password" roles="appweb" />
</tomcat-users>
Qual a real utilização do MemoryRealm no TomCat?
Ao usar este procedimento eu não deixo os dados em name e password exposto no arquivo tomcat-users.xml?
Numa utilização dinamica no formato de autenticação, o ideal é utilizar DataSourceRealm, JAASRealm ou JDBCRealm
quando trabalho com banco de dados?
Grato.
O “memory realm” é basicamente uma maneira de você poder testar a sua aplicação sem precisar de fazer configuração de bancos de dados, LDAP ou outros métodos mais cabeludos de autenticação de usuários.
Uma vez que você tenha testado a sua aplicação, remova os usuários do “memory realm”, já que as senhas ficam em claro; mesmo quando elas não ficam em claro, como é o caso da opção “digest” que você pode acrescentar ao memory realm - onde apenas o MD5 ou SHA-1 das senhas é guardado nesse arquivo tomcat-users.xml - ainda você está sujeito a alguém que mexa nesse arquivo e acrescente usuários à vontade. Como não é difícil calcular o MD5 ou SHA-1 de uma senha qualquer, isso é mais para “constar” do que para proteger.