Estou estudando java com spring security , criei uma aplicação básica para cadastro de usuário, essa aplicação deve permitir um usuário se cadastrar, fazer o login, buscar suas informações, altera-las, e exclui-las.
Apliquei o conceito de filter do spring security e deixei liberado apenas as rotas de cadastro e login, as demais rotas precisam de um token que gerado ao fazer o login.
Dessa forma consigo verificar se a requisição que esta sendo feita é de um usuário autenticado, porem um usuário esta conseguindo buscar informações de outro usuário.
EX: usuario1 realiza login pega o token gerado e consegue buscar as informações do usuario2 passando o token dele.
A duvida é como posso realizar essa validação ? um usuário só pode buscar, alterar e deletar as informações dele mesmo.
Consigo receber o principal com uma controller assim:
@RequestMapping(value = "/username", method = RequestMethod.GET)
@ResponseBody
public String currentUserNameSimple(HttpServletRequest request) {
Principal principal = request.getUserPrincipal();
return principal.getName();
}
Porem o retorno é uma string assim :
Optional[Usuario(id=1, nome=humberto teste , cpf=71546486003, email=humberto@teste.com, senha=$2a$10$FFa9AWCBfR/kTvAPX8J7U.JfIWqxuS4AzlRGrbx.y6ZOHRUMYpq3u)]
Como poderia transformar essa string para retornar um obejto json, não sei se é maneira certa de fazer essa validação, como poderia faze-la?
link do repositorio : GitHub - humbertohonorato/APICadastroUsuario