apigee“主题没有权限”登录用户

时间:2014-07-02 08:37:51

标签: apigee

以前用于获取登录用户的代码现在失败了。对于默认角色,我有一些权限,包括这一个(在/ roles / xxx / permissions列表中):

"get:/users/me"

为了验证我没有破坏API中的某些内容,我从Curl登录(修改名称以保护有罪):

curl -X POST "https://api.usergrid.com/xxx/xxx/token" -d '{"grant_type":"password", "username":"test", "password":"xxx"}'

使用访问令牌获取有效响应:

{"access_token":"YWMxxxNnAHCEeSEEUF6k0-adAAAAUcaO_3R5IcK1ftFnDt0x52NVSoHEATWD6Q","expires_in":604800,"user":{"uuid":"a2517xxx-d3dc-11e3-b4fb-17caf255a670","type":"user","name":"Test User","created":1399243032076,"modified":1399243032076,"username":"test","email":"test@test.com","activated":true,"picture":"http://www.gravatar.com/avatar/b64xxx217b34b1e8d3bd915fc65c4452"}}

使用此访问令牌,撰写Curl请求以获取/ users / me:

curl -X GET https://api.usergrid.com/xxx/xxx/users/me?access_token=YWMxxxNnAHCEeSEEUF6k0-adAAAAUcaO_3R5IcK1ftFnDt0x52NVSoHEATWD6Q

现在我没有按照惯例工作,而是通过以下工作:

{"error":"unauthorized","timestamp":1404289792782,"duration":0,"exception":"org.apache.shiro.authz.UnauthorizedException","error_description":"Subject does not have permission [applications:get:d5e9e5a0-d310-11e3-a524-df009e0fbc2f:/users/a25174ca-d3dc-11e3-b4fb-17caf255a670]"}

我有什么东西坏了而且错过了吗?我尝试删除权限并重新创建它,但这也没有帮助。谢谢!

2 个答案:

答案 0 :(得分:0)

据我所知,你不能使用我的#39;作为检索自我的实体。您需要指定用户实体的实际用户名或uuid。幸运的是,当您检索令牌时,该信息会在响应中传回,因此您可以将其保存。

请参阅Apigee文档中的getting a user

答案 1 :(得分:0)

@remus问题促使我在安全页面上找到一个示例,以显示我从哪里获得了许可。但是,页面http://apigee.com/docs/app-services/content/managing-access-defining-permission-rules现在显示了此示例:

GET,PUT,POST,DELETE:/users/me/**

我很确定事先并非如此,因为此代码在事先获得许可的情况下已经工作了数周。也许我碰了碰头:-)希望其他任何有这个问题的人都能找到这个。问题中发布的卷曲示例现在可以正常使用此权限集(虽然我只在我的情况下添加了GET权限)。