第一种是直接从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/

最新文章

  1. 将已有项目提交到github/从github上pull到本地
  2. js007-函数表达式
  3. 纯css3实现旋转的太极图
  4. Java学习-001-JDK安装配置
  5. raspberry pi 如何汉化显示中文
  6. Android实例-拍摄和分享照片、分享文本(XE8+小米2)
  7. Apple Mach-O Linker Warning 警告解决的方法
  8. MVC+simpleinjector 简单使用
  9. MD5 .net与PHP加密值一样的加密代码
  10. XML实体解析器的作用
  11. windows 10隐藏各种文件夹
  12. pyenv global 设置失败 pyenv local 设置就成功了 不知道啥原因
  13. Android Studio帮助文档的安装及智能提示设置
  14. 使用PL/SQL能查询oracle中数据,在for update 语句中一直卡住
  15. nodejs中使用crypto-js先HmacSha1加密后转Base64
  16. 1.2 JAVA多线程实现
  17. 实现Github和Coding仓库等Git服务托管更新
  18. QML 从入门到放弃
  19. Ajax 执行顺序
  20. 雷林鹏分享:jQuery EasyUI 树形菜单 - 树形网格动态加载

热门文章

  1. C程序设计语言(K&amp;R) 笔记2
  2. C程序设计语言(K&amp;R) 笔记1
  3. Lucene源码解析--Analyzer之Tokenizer
  4. SpringMVC_04 拦截器 【拦截器的编程步骤】【session复习?】
  5. 如何使CPU占用率为50%
  6. web.xml中url-pattern匹配规则.RP
  7. SDUT 3377 数据结构实验之查找五:平方之哈希表
  8. Bootstrap 的 Modal
  9. [译]在Javascript中将string转化成numbers
  10. 常用Git命令清单