4
respostas

Tentando alterar a imagem do usuário na sessão!

Olá. Minha aplicação esta funcionando segurança, cadastro de usuário, login e senha. Tenho uma área em perfil do usuário onde o mesmo pode fazer a alteração da sua imagem onde esse arquivo é alterado via ajax, e quando navego para outras áreas da aplicação e mesmo alterando a imagem e o endereço no banco é necessário fazer o logout e login novamente para a alteração seja efetivada em outras áreas.

Como posso alterar a imagem na sessão gerenciada pelo Spring ou pelo navegador?

4 respostas

Oi Clerman, ótima pergunta :). No método do seu controller você também precisa receber o objeto que representa o usuário logado. Algo assim

    public ModelAndView atualiza(
            LogadoAtualizaSenhaForm logadoAtualizaSenhaForm,
            BindingResult bindingResult, RedirectAttributes redirectAttributes,
            @AuthenticationPrincipal Usuario usuarioLogado) {

E aí vc mexe no usuário logado. Não tem muito jeito, a alteração sempre precisa ser refletida no objeto que ta na sessão.

Alberto! No meu usuarioLogado tenho o método

public String getUrlPath(){

        return usuario.getUrlPath(); 
    }

que envia a url para a página. Não entendi! Com devo proceder para forçar o update da imagem sem ter que fazer o logout e login novamente?

Onde devo setar na sessão a alteração de imagem?

Alberto, estou passado como parâmetro no método o usuarioLogado já, mas continua da mesma forma:

    @RequestMapping(value = "/")
    public ModelAndView homeController(@AuthenticationPrincipal UsuarioLogado usuario) {

        usuario.getNome();

        ModelAndView view = new ModelAndView();

        view.setViewName("/index");

        return view;
    }