Amigos,
tenho 2 aplicações que no menu da aplicação 1 chama a aplicação 2,
para que eu posso evitar de um usuário acessar o link da aplicação 2 direto eu possa barrar isso criando um Filter ?
Amigos,
tenho 2 aplicações que no menu da aplicação 1 chama a aplicação 2,
para que eu posso evitar de um usuário acessar o link da aplicação 2 direto eu possa barrar isso criando um Filter ?
pergunta muito genérica, explique melhor
na prática, você fará um condicional em volta do seu link
se for jsp:
<c:if test="${usuarioPodeAcessar}">
<a href="link">link</a>
</c:if>
o filter seria aplicado caso você queira bloquear o acesso ao sistema diretamente, mas aí já seria um sistema de autenticação, onde você impediria o acesso de quem não pode.
se a idéia é usar a mesma sessão de uma aplicação na outra, considere usar uma API de SSO.
Você tem duas aplicações, A e B.
A aplicação A chama a B, porém o usuário não pode acessar a B diretamente, correto?
Fiz algo parecido uma vez, mais tinha um webservice no meio.
Quando o usuário clicava no link da aplicação A, antes de ser redirecionado, era gerado uma chave e a mesma era salva no banco, junto com a validade (em horas) e depois anexada na URL.
A aplicação B recebia essa chave, verificava se era válida (verificando se a hora era menor ou igual a hora do banco) e permitia ou não o acesso, isso usando um Filtro.
Só não sei se no seu caso é a forma mais correta.
Fera o que o fer.ferreira6 e exatamente o que preciso,
teria um outra forma mais simples de fazer isso sem um web service ?
se vc não precisa de segurança pode ser feito diretamente.
se vc precisa de um nível mínimo de segurança tem que ao menos confirmar um hash.
ex:
suaurl?token=123
ai na aplicação que recebe verifica se o token é válido.
normalmente o pessoa usa um hash md5 ou sha para validar, sendo este token calculado a partir de uma chave e vc pode usar datas ou qualquer outro meio.
o importante é garantir que este token não seja possível de ser reproduzido.
vale lembrar que isto não é seguro pois a pessoa pode conhecer seu token e usá-lo de maneira errada.
por este motivo o ideal é usar um webservice ou uma api de sso como disse anteriormente, mas aí você terá que aplicar a api nas duas aplicações (talvez muito trabalho)
Vc tem um exemplo de como posso implementar isso em um web service ?
vc pode usar rest
a caelum tem um framework chamado restfulie para facilitar: http://restfulie.caelum.com.br/
se for no mesmo domínio você pode usar ajax e realizar a autenticação normal.
ou utilizar a ideia de apikey: http://www.infoq.com/br/news/2012/10/autenticacao-rest
estude sobre rest, primeiro pra te ajudar no seu problema, segundo porque vc pode desacoplar a interface do backend usando isto, além de favorecer a criação de apis para seus sistemas.