Spring Security获取已登录的用户信息的两种方法
2017-04-28 10:43
429 查看
第一种是直接从session中手动拿:
@RequestMapping(value = "/user", method = RequestMethod.GET) public ResponseEntity<Map<String, Object>> getUser(HttpSession httpSession){ Authentication au; CloudinsUser user = null; CloudinsUserDetail userDetail; String[] meta = new String[1]; SecurityContext ctx = (SecurityContext) httpSession.getAttribute("SPRING_SECURITY_CONTEXT"); if(ctx!=null) { au = ctx.getAuthentication(); userDetail = (CloudinsUserDetail) au.getPrincipal(); if (userDetail != null){ userDetail.setPassword("");
//userDetail直接转成json会报错,需要从中构造一个简单对象 user = userDetail.castToCloudinsUser(); meta[0] = "UserId:" +user.getId(); } } return SeverUtil.cacheResp(makeResMap(user,meta)); }
第二种是Spring Security提供的方法:
@RequestMapping(value = "/user", method = RequestMethod.GET) public ResponseEntity<Map<String, Object>> getUser(){ Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); System.out.println(principal);
return null; }
其中principal 也不能直接转化为json 转自:http://blog.163.com/xiong_jinhua/blog/static/236171063201712833519249/
相关文章推荐
- 微信网页开发之获取用户unionID的两种方法--基于微信的多点登录用户识别
- Spring security 获取当前用户的登录信息
- Spring security 获取当前用户的登录信息
- spring security获取所有登录的用户信息
- 微信网页开发之获取用户unionID的两种方法--基于微信的多点登录用户识别
- 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法
- 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法.
- Spring security 获取当前用户的登录信息
- Spring security 获取当前用户的登录信息
- Spring security 获取当前用户的登录信息
- Spring security 获取当前用户的登录信息
- Spring security 获取当前用户的登录信息
- Spring security 获取当前用户的登录信息
- Spring security 获取当前用户的登录信息
- Spring security 获取当前用户的登录信息
- Spring security 获取当前用户的登录信息
- PHP版微信第三方实现一键登录及获取用户信息的方法
- 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法