Autenticacao tomcat e variavel auxiliar

1 resposta
chcl

Ola pessoal,
bom to com um probleminha que alguem deve saber como resolver e eu nao to achando uma solucao a tempo, seguinte:
tenho uma webapp no tomcat que usa a autenticacao do proprio tomcat atravez de um DataSourceRealm do tomcat ate ai ok esta funcionando perfeitamente, o detalhe é o seguinte nessa pagina de login (login-form) que criei tenho tres campos j_username(usuario) j_password(senha) e mais um campo empresa(codEmpresa) que é um campo que preciso recuperar depois do login efetuado.
Com o cara logado consigo pegar o usuario dele atravez do request.getRemoteUser() mais preciso dessa variavel empresa que esta no formulario de login é nao tenho mais nem na request nem na session apos o login efetuado … ai que tá como pego essa variavel empresa ?? terei que reimplementar a autenticacao se quizer pegar essa variavel ???

galera to na roia!! ta osso!!

valews!!

1 Resposta

P

Acho que isto deveria funcionar:

  1. Mude seu form para que, no submit, o conteúdo do campo “j_username” seja o resultado da concatenação do usuário e código da empresa, separados por algum caracter conveniente (ex: ‘@’). (Um javascript bobinho no onsubmit() resolve isto)

  2. Implemente um outro realm baseado no DataSourceRealm que permita receber o nome do usuário com o ‘@’ mas que use apenas a parte inicial na hora do lookup. Ex, se o username recebido for joao@acme, a implementação fará o lookup utilizando apenas o “joao”. Talvez seja possível alguma gambi com views, verifique !

  3. Na aplicação, o seu “request.getRemoteUser()” voltará o string “usuario@empresa”. Se quiser, implemente um filtro que separe estes dois campos e os deixe expostos na forma de variáveis ThreadLocal, de forma que vc possa ter acesso às mesmas em qualquer ponto do código sem ter que ficar passando argumentos.

Obs: Se vc. puder trocar para o JBoss, o equivalente do DataSourceRealm está no arquivo login-config.xml, que permite definir a query inteira, o que possivelmente eliminará a necessidade de um realm customizado.

Criado 17 de junho de 2005
Ultima resposta 20 de jun. de 2005
Respostas 1
Participantes 2