我有以下控制器用于注销我想获得注销用户的名称我该如何实现?
create temporary table my_temp_table as
select json_object_keys('{"A": 1, "B": 0, "C": 5}'::json);
这条线不起作用
退出控制器
String userName=(String)session.getAttribute("name");
答案 0 :(得分:1)
我目前附近没有任何Spring项目,但我记得有可能这样做:
SecurityContextHolder.getContext().getAuthentication().getPrincipal();
正如我所说,我不确定它是否有效。自从我上次使用Spring以来已经有一段时间了,但请告诉我它是不是。
答案 1 :(得分:0)
试试这个。
@Component
public class LogoutListener implements
ApplicationListener<SessionDestroyedEvent> {
private static final Logger logger =
LoggerFactory.getLogger(LogoutListener.class);
@Override
public void onApplicationEvent(SessionDestroyedEvent event) {
List<SecurityContext> lstSecurityContext =
event.getSecurityContexts();
UserDetails ud;
for (SecurityContext securityContext : lstSecurityContext)
{
ud = (UserDetails)
securityContext.getAuthentication().getPrincipal();
logger.info("Logout|Session destroyed User: [{}]",
ud.getUsername());
}
}
}