我正在试图弄清楚什么是保护我的Spring MVC控制器(仅使用json)的最佳方法。 我跟了很多问题(比如RESTful Authentication via Spring)。 我的问题似乎是一个很常见的用例,但我找不到具体的答案。
要求:
我特别努力实现第4步,可能会使用Spring Security,因为我的服务器大量使用Spring。
答案 0 :(得分:2)
我们在其中一个网络应用程序上执行与#4类似的操作。基本上,这个过程是:
1)创建(或覆盖FacebookApiAdapter)setConnectionVales方法。
2)从Facebook个人资料中收集电子邮件(或用于内部用户名的任何内容)。
3)创建一个新的Auth令牌:
UsernamePasswordAuthenticationToken newAuth = new UsernamePasswordAuthenticationToken(user, "yourrealm",authorities);
其中user匹配您的内部用户类型,权限是Set(提示:只需添加带有新SimpleGrantedAuthority的字符串)
4)在SpringSecurityContext中设置新的身份验证令牌:
SecurityContextHolder.getContext().setAuthentication(newAuth);
然后,您可以使用普通的Spring安全设置来保护ROLE的内容,只要新令牌在其GrantedAuthorities集中具有该角色。