Oi Vinícius!
Angular é um framework de Single Page Application, isso significa que seu servidor não devolve página HTML e não gera nada de HTML dinamicamente. O que seu servidor devolve é apenas dados através de uma API, isso porque é o framework de SPA que constrói a view no client mesmo.
No seu caso, você esta usando as duas coisas e isso fere o princípio do SPA. Mas eu entendi que parte do seu sistema é em Angular e outra não, tudo bem. Então vou continuar minha orientação nessa sua realidade.
Aplicações em SPA não usam sessão do usuário para guardar informações de usuário logado ou não. Elas utilizam um token, mais notadamente JWT. Mas pelo o que eu entendi você terá dificuldades, porque faz o login fora do framework e quando você for na aplicação em Angular, cadê o token?
Numa aplicação em SPA seu login chama uma API no servidor que ao autenticar o usuário devolve um token de acesso que é guardado no browser e enviado a cada requisição. Seu backend sempre recebe esse token e verifica se o seu cliente SPA pode chamar esse ou aquele serviço.
Como implementar esse token? Isso depende da tecnologia do backend utilizada, bibliotecas disponíveis e foge do escopo de uma aplicação em Angular, até porque essa é uma solução para SPA e Angular 2 é um framwork para SPA. Em Java é de um jeito, em Python é de outro, em Php é de outro.
Talvez seja interessante você estudar sobre a arquitetura de uma aplicação em SPA.
No entanto, no curso de MEAN (que é feito em Node.js) eu faço essa autenticação baseada em Token com Angular 1.X. Foi um pedido dos meus alunos, mas como você usa Java terá que ver como implementar. Talvez o curso de MEAN, a parte final que fala de JWT, API no server lance uma luz sobre essas questões arquiteturais.
Espero ter ajudado e não complicado a sua vida.