Pergunta

Eu estendi o Jaas Javax.Security.auth.spi.loginmodule e o instalei em um servidor. Funciona; Todos os logins passam pelo código nesta nova classe e, se ele disser para não deixá -los fazer login, eles são impedidos de fazer login.

O problema raiz: não quero filtrar logins para o console do administrador (/ibm/console), mas quero que ele filtre logins para outras coisas no servidor. Eu acho que com a configuração disponível, o módulo de login se aplica a tudo instalado no servidor, incluindo as telas de administração.

Gostaria de resolver isso obtendo o URL da página que acionou a chamada para o LoginModule. Se eu estivesse usando o WebLogic, usaria um urlcallback para obter o URL. Alguém sabe se o WebSphere Application Server tem alguma funcionalidade paralela a isso, ou se há outra solução alternativa?

Como informações adicionais potencialmente úteis, não posso aplicar o JAAS a aplicativos individuais no servidor; Os descritores de implantação são acinzentados no console do administrador. Só posso aplicar módulos novos Jaas JAR em todo o servidor, o que é um problema para mim.

Foi útil?

Solução

O WebLogic faz isso com weblogic.security.auth.callback.urlcallback, foi o faz através do WSServletRequestCallback.

callbacks[0] = new com.ibm.wsspi.security.auth.callback.WSServletRequestCallback(
                "HttpServletRequest: ");

(Carregar retornos de chamada)

HttpServletRequest request = ((WSServletRequestCallback)callbacks[3]).getHttpServletRequest();
String contextPath = request.getContextPath();

Vá a partir daí.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top