如何在Spring启动的安全上下文中更新当前可用的UserDetails对象

时间:2017-04-04 22:35:31

标签: spring spring-boot spring-security

我已经实现了UserDetails对象。我的UserDetails对象的实现包含名字,姓氏,电子邮件和图像。

我有一个用户个人资料区域,用户上传他/她的新图像。当上传完成时,我想在安全上下文中更新当前可用的UserDetails对象的image属性。

UserDetails实施:

2017-04-05 07:04:26.126 ZoneIndicator[1865:1270743] selectedZone in ViewController is now set to 1 
2017-04-05 07:04:26.126 ZoneIndicator[1865:1270743] selectedZone in CustomView is seen as 0

无论如何都要这样做?

提前谢谢。

1 个答案:

答案 0 :(得分:2)

我说实话,我不完全确定你想做什么是安全的,但是BasicAuthenticationFilter中设置安全上下文的方式是:

UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(
                        /* ... */);
SecurityContextHolder.getContext().setAuthentication(authResult);

在构建UsernamePasswordAuthenticationToken时,您可以使用CustomeUserDetails作为主体。

但是,真的不确定这是否安全。