E ae galera,
Estou pegando uns macetes do Java web e me deparei com esse cara ‘HttpServletRequest’.
O meu problema é o seguinte, estou utilizando o Spring Security para autenticar o usuário e depois disso ele deve carregar o menu. A autenticação e o Menu estão funcionando perfeitamente, o problema está no momento de carregar as regras. Quando eu logo no sistema e ele vai gerar o menu, ele utiliza o mesmo ServletRequest da autenticação sendo que ainda não tem as regras e consequentemente o menu não gera. Agora se eu chamar o método gerarMenu() após autenticado, as regras já estão no ServletRequest() e gera corretamente. Alguém tem algum palpite do que posso fazer?
public String login() throws ServletException, IOException
{
RequestDispatcher dispatcher = getServletRequest().getRequestDispatcher("/j_spring_security_check");
dispatcher.forward(getServletRequest(), getServletResponse());
FacesContext.getCurrentInstance().responseComplete();
gerarMenu();
return null;
}
public void gerarMenu()
{
SecurityContextHolderAwareRequestWrapper securityContextHolderAwareRequestWrapper =
new SecurityContextHolderAwareRequestWrapper(getServletRequest(), null);
// código sem importância[...]
}
public HttpServletRequest getServletRequest()
{
return ((HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest());
}
public ServletResponse getServletResponse()
{
return ((ServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse());
}