UrlCallback com JaaS estava?
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.
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í.