Olá pessoal.
Tenho um Interceptor no Struts 2, cujo objetivo é validar a sessão do usuário, retornando para Action.LOGIN, ou para actionInvocation.invoke(), conforme o caso do objeto usuario ser válido ou não.
A ação referente a Action.Login (“login”), está mapeada da seguinte forma:
[code]…
<global-results>
…
<result name=“login” type=“redirectAction”>AuthenticationBean_logout</result>
</global-results>
…
<action name="AuthenticationBean_*" method="{1}" class="br.com.sitedocliente.sistema.web.bean.AuthenticationBean">
<result name="input">login.jsp</result>
....
</action>
…[/code]
O problema que estou encontrando é que o usuário pode estar em qualquer lugar do sistema (ex: edição ou listagem de usuário), e o Struts ao passar pelo Interceptor redireciona para o local atual + “AuthenticationBean_logout.action”. Isto é, se a url correta da action for: http://sitedocliente.com.br/sistema/AuthenticationBean_logout.action o que ele fará quando forem visualizados arquivos internos ao diretório usuario é http://sitedocliente.com.br/sistema/usuario/AuthenticationBean_logout.action
Obs: Indiferentemente de colocar qualquer prefixo no nome da ação, inclusive “/”, ou o namespace do pacote onde a ação se encontra.
Vcs teria ideia do que pode estar acontecendo?
Obrigado!
Claudiomir Zanchetti (Caio)
SCJP 5.0