Estou com o seguinte problema: preciso especificar o nome de usuário e senha para conexão com o banco de dados de forma dinâmica quando usar o Tomcat e não ficar “preso” ao server.xml.
Alguma sugestão?
A idéia é a seguinte: segundo um usuário1 e senha1 fornecidos à minha aplicação, eu preciso entrar como um usuário2 e senha2 com privilégios especiais no meu banco. Esses usuários e senhas “alternativos” também ficariam guardados no meu banco para facilitar o processo de criação e atribuição de privilégios.
No meu caso não é permissão de acesso a páginas, apenas a necessidade de efetuar login no banco com um usuário que eu queira escolher, ao estilo string de conexão JDBC.
Porque você não passa o s dados de login como um formulário normal?
Aí faz uma consulta ao banco pra saber se os dados são válidos ou não.
Como alternativa ao server.xml você poder usar um arquivo de contexto que deve ficar na pasta TOMCAT\conf\catalina\localhost\seucontext.xml
L
lguissoPJ
Sou iniciante no assunto… Não consegui entender direito essa idéia. Pode me explicar melhor?
Poderia me dar uma dica de como fazer isso? Eu tenho dentro de server.xml um <default context …>. Seria o caso de fazer alterações dentro desta tag? Se sim, como eu faria para colocar diversos contextos e associar um dado login a um username e password a ser usado na conexão com o banco.
Só pra melhorar o entendimento, estou usando o Postgres e configurando esquemas (schema) para poder fazer um melhor gerenciamento de dados por usuário. A idéia seria fazer a separação de dados de várias empresas acessando o mesmo banco, sendo que a estrutura básica do modelo relacional seria a mesma para todas as empresas. Blz?
Valeu a ajuda!
L
lguissoPJ
PessoALL,
Estive lendo mais sobre o context.xml e me parece que ele poderia resolver meu problema. Porém não sei com fazer para configurá-lo… Pelo que entendi, o pool de conexões é acessado por padrão por apenas um usário do banco justamente para poder exercer seu papel de pool.
Existe uma forma de criar diversos contextos para a mesma aplicação?? Exemplo: minha aplicação está em $CATALINA_HOME/webapps/aplicacao. Preciso fazer com que o servlet possa ser acessado via http://localhost/empresa1, http://localhost/empresa2… Então para empresa1 eu definiria um contexto e para empresa2 outro contexto. Cada contexto, portanto teria seu próprio username e password para o database. Isso é gambiarra? E é possível? Como?
Obrigado!
L
lguissoPJ
Eu novamente!
Fiz o seguinte teste (e acho que é por aqui…):
Entrei no server.xml e acrescentei:
<Context path="/empresa1" docBase="/aplicacao" override=“true”>
<Resource name=“empresa1” …>
<ResourceParameters name=“empresa1” …>
… <!-- aqui dentro ficam os nomes de usuário e senha de conexão com o banco -->
</Context>
Copie o DefaultContext e fiz as modificações acima tanto para empresa1 como para empresa2. Elas (/empresa1 e /empresa2) aparecem no manager do tomcat, porém quando tento acessar dá erro 404 (resource not available).
Especificando docBase, eu já não teria o recurso pronto para as duas??