从SecurityContexTholder Spring Java MVC获取电子邮件地址



我正在使用log4j框架。我想将登录用户的电子邮件地址插入到数据库中。我正在使用:

UserDetails origUser = (UserDetails)securityContext.getAuthentication().getPrincipal();

该对象具有以下方法:

origUser.getUsername(),
origUser.isEnabled(),
origUser.isAccountNonExpired(),
origUser.isCredentialsNonExpired(),
origUser.isAccountNonLocked(),
origUser.getAuthorities());

但是,这些方法都没有返回电子邮件地址。我如何检索用户电子邮件信息,以便可以使用它:

MDC.put("username",origUser.getEmail());

log4j.properties具有

log4j.appender.DB.sql=INSERT INTO LOGS VALUES('%X{username}','%d{yyyy-MM-dd HH:mm:ss}','%C','%p','%m')

UserDetails getUsername方法返回用于对用户身份验证的字符串。这主要是您在数据存储中查看用户存在的标识符,匹配身份验证的密码并加载其授予角色/当局以检查其授权。如果这是用于身份验证的电子邮件(例如电子邮件/密码的组合(,则应返回电子邮件,否则它应该返回标识符用于身份验证的任何内容。

最新更新