Spring Security getPrincipal() method returns anonymousUser

Bom, estou pegando o código desenvolvido de um sistema já existente e tentando adaptar esse código para a versão mobile do primefaces.
Ao atribuir o usuario no meu método logar ele me mostra o seguinte erro por depuração(eu criei um System.out.println para me mostrar os erros):

INFO: ERRO: java.lang.ClassCastException: java.lang.String cannot be cast to org.springframework.security.core.userdetails.User

nessa seguinte linha:

user = (User) authentication.getPrincipal();

o meu método inteiro de logar:

public String logar() throws ServletException, IOException {
        
   
        try {
            ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
            RequestDispatcher dispatcher = ((HttpServletRequest) context.getRequest()).getRequestDispatcher("/j_spring_security_check");
            dispatcher.forward((HttpServletRequest) context.getRequest(), (HttpServletResponse) context.getResponse());
            FacesContext.getCurrentInstance().responseComplete();
            SecurityContext contextSpring = SecurityContextHolder.getContext();
//            SecurityContext contextSpring = (SecurityContext) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("SPRING_SECURITY_CONTEXT"); 
            
      
            System.out.println("contextSpring:   "+contextSpring);
          
       
            User user = null;
            if (contextSpring instanceof SecurityContext) {
                Authentication authentication = contextSpring.getAuthentication();
             
                System.out.println("PRINCIPAL"+authentication.getPrincipal());
                System.out.println("AUTHENTICATION:  "+authentication);
                if (authentication instanceof Authentication) {
                    System.out.println("user:   "+authentication.getPrincipal());
                    System.out.println("PESSSSSOUOUOUOUOO");
                    user = (User) authentication.getPrincipal();
                    System.out.println("HTTPSESSION: ");
                    HttpSession session = (HttpSession) context.getSession(false);
                    session.setAttribute("usuarioLogado", usuarioFacade.consultaUsuario(user.getUsername()));
                    Usuario usu = (Usuario) session.getAttribute("usuarioLogado");
                    usuario = usu;
                    unidade = usuario.getUnidade();;
//    id_cidade = usu.getCidade();
//    id_funcao = usu.getFuncao();
                    
                    System.out.println("USUARIO:  "+usuario);
                    verificarSenha(user.getPassword(), usu.getUsername());

                }
            }
        } catch (Exception ex) {
            FacesUtil.exibirMensagemErro(ex.getMessage());
             System.out.println("ERRO:  "+ex);
        }


       
        return null;
    }

alguém sabe solucionar esse erro?

INFO: ERRO: java.lang.ClassCastException: java.lang.String cannot be cast to org.springframework.security.core.userdetails.User

Acho que o spring não esta pegando o usuario:

INFO: contextSpring: org.springframework.security.core.context.SecurityContextImpl@9054b1a2: Authentication: org.springframework.security.authentication.AnonymousAuthenticationToken@9054b1a2: Principal: anonymousUser; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@1c07a: RemoteIpAddress: 127.0.0.1; SessionId: efab6e191be9e7b9991dbf54eaca; Granted Authorities: ROLE_ANONYMOUS
INFO: PRINCIPALanonymousUser
INFO: AUTHENTICATION: org.springframework.security.authentication.AnonymousAuthenticationToken@9054b1a2: Principal: anonymousUser; Credentials: [PROTECTED]; Authenticated: true; Details: org.springframework.security.web.authentication.WebAuthenticationDetails@1c07a: RemoteIpAddress: 127.0.0.1; SessionId: efab6e191be9e7b9991dbf54eaca; Granted Authorities: ROLE_ANONYMOUS
INFO: user: anonymousUser
INFO: PESSSSSOUOUOUOUOO
INFO: ERRO: java.lang.ClassCastException: java.lang.String cannot be cast to org.springframework.security.core.userdetails.User

Se eu coloco usuairo e senha na minha tela de login para o spring security validar, e ele me retorna um anonymousUser?

Não deveria pegar o usuairo da tela e senha da tela? porque ele está pegando o anonymousUser em vez do usuario de login que o usuario do sistema digitou?