Como é uma aplicação grande e em constantes atualizações, não temos como fazer uma migração da noite por dia para a nova versão (Jaguar com faces).
Também não queremos ficar defasado tecnologicamente então pensamos em criar um novo projeto em faces com o Jaguar e as novas funcionalidades fazer neste projeto.
Diante disso estamos com algumas dúvidas com relação a integração. Vou explicar como pensamos:
1) Login centralizado no struts, trabalhando com SingleSignOn. Tela de login do projeto faces redireciona para tela de login do projeto struts. Isso já está funcionado.
2) A parte do menu é toda montada no projeto struts. Lá tem uma action chamada "chamaRecursoFaces?recu=xxx&modoJanelaPlc=popup&demais_parametros" que chama a URL do
projeto faces passando os respectivos parâmetros. Essa action é aberta através de um Iframe dentro do projeto struts. Então para o cliente fica de modo
transparente (projeto struts x projeto faces). Isso também está funcionando.
3) Quando chamo um recurso faces pela primeira vez, passa na classe AppUserProfileUtil, método registrySpecificProfile. Neste método precisamos chamar uma interface que está em
um projeto (jar). Se eu fizer da forma: PlcCDIUtil.getInstance().getInstanceByType(IMeuSecurityApi.class), volta null. Como faço para que essa interface seja "registrada"?
É que assim, nos temos o nosso Security, não usamos o JSecurity. Lá temos métodos que nos devolve todos os recursos e filtros que serão aplicados ao usuário logado. Seria algo
do tipo:
-> IMeuSecurityApi extends IPlcJSecurityApi
-> MeuSecurityApiImpl extends PlcJSecurityApiImpl
Gostaria de utilizar a interface IMeuSecurityApi no registrySpecificProfile e em um filter, mas não estamos conseguindo.
Algúem tem alguma dica, sugestão de como poderiamos implementar essa integração?
Autor: Paulo Cesar Debatin
33 comentários
@Produces @RequestScope
public IMeuSecurityApi getInstance() {
return new MeuSecurityApiImpl();
}
}