Como alterar o nome de login para o usuário atual com o Spring Security 3.1?
Eu tenho o requisito de que cada usuário pode alterar seu próprio nome de usuário enquanto ele estiver logado. O problema é como atualizar o nome de usuário (Principal
) no token de autenticação do Spring Security?
(Eu tenho que atualizá-lo, porque eu uso o nome prinicpal do token de autenticação para identificar o usuário em alguns casos de uso de negócios.)
Eu uso o login baseado em formulários e cookies com base em mim para que meus tokens de autenticação sejamUsernamePaswordAuthenticationToken
eRememberMeAuthenticationToken
. Ambos têm um campoprincipal
onde o nome de login é armazenado. Infelizmente esta variável éfinal
, então eu não posso mudar seu valor.
Alguém tem uma ideia de como Spring Security recomenda mudar oPrincipal
no token de autenticação?
Meu trabalho atual é que eu substituí oUsernamePaswordAuthenticationToken
eRememberMeAuthenticationToken
com subclasses que têm um campo principal adicional não final e substituem ogetPrincipal()
método para retornar este principal adicional em vez do original. Então, também subclassei as duas classes que geram esses tokens para criar meus tokens em vez do original. --- Mas eu sinto que isso é um grande truque.