根据当前认证用户的角色返回不同的 JSON 对象

Posted

技术标签:

【中文标题】根据当前认证用户的角色返回不同的 JSON 对象【英文标题】:Returning different JSON objects based on role of currently authenticated user 【发布时间】:2013-05-03 00:37:00 【问题描述】:

如何有条件地从 Spring (3.1) 后端提供不同的 JSON 对象?我正在使用 Spring Security,但我不明白如何为对象提供不同的表示形式?

我只对安全逻辑感兴趣,其他我已经准备好的东西。

如果名为Sylvester 的用户使用admin 角色登录,那么他将收到一个更大的JSON 对象(更多数据),然后是Arnold 使用角色user

我是否必须使用身份验证对象查看用户是否具有特定角色?还是有一些注释或其他魔法可以做到这一点?

【问题讨论】:

【参考方案1】:

在您的逻辑中,您需要检查当前登录用户的角色,并且根据角色您可以返回不同的响应。

是的,您需要身份验证对象,该对象必须实现 UserDetails 接口,并且应该具有基本的用户信息,包括其角色/权限。

【讨论】:

【参考方案2】:

这篇文章的大部分内容似乎与this question 重复。看看它,更准确地说是这个blog post,它提供了一个很好的解决方案,但您可能必须包含或调整第 3 方代码。

【讨论】:

以上是关于根据当前认证用户的角色返回不同的 JSON 对象的主要内容,如果未能解决你的问题,请参考以下文章

Json web token

JSON Web Token

09.ModelViewSet

JSON Web Token 入门教程

jwt的token怎么生存的

Spring Security(Java Config)登录 - 根据用户角色返回不同的 URL