【问题标题】:Jersey rest framework - authorization - some doubtsJersey 休息框架 - 授权 - 一些疑问
【发布时间】:2016-10-22 18:00:20
【问题描述】:

我在这个页面http://howtodoinjava.com/jersey/jersey-restful-client-api-authentication-example/|阅读了关于休息服务的球衣框架@

而且我不明白一件事。 例如,当我们有

  @Path("/users")
  public class JerseyService 
  {
  @RolesAllowed("USER")
  public String doLogin(@QueryParam("username") String uname,
  @QueryParam("password") String result) 

这意味着具有用户角色的用户可以修改(通过这种方法)所有用户?不只是他自己在数据库里?我正在编写 android 应用程序,我可以想象有人使用高级 REST 客户端的情况。他登录服务并以适当的方式修改查询并严重破坏我的数据库。例如写一些点给其他用户或类似的东西。我怎样才能排除这种情况?

【问题讨论】:

    标签: java android rest jersey


    【解决方案1】:

    Jersey(和类似的 Spring Security)对资源类型和角色进行操作。

    因此,如果您允许角色“USER”对资源“用户”进行操作,则不能阻止特定用户仅使用 Jersey 编辑其他用户。

    您可以做的是使用 SecurityContext 获取当前用户,如果他的凭据与被更改的用户不同,则阻止危险操作。

    这是一个关于 SecurityContext 的好例子:
    https://simplapi.wordpress.com/2015/09/19/jersey-jax-rs-securitycontext-in-action/

    【讨论】:

    • 感谢您的回复。这似乎还不错。将它与 Android 平台上的本机移动应用程序一起使用是否合适? ;) 我阅读了 oauth2 并考虑使用其中一种解决方案。
    • 只是为了确保,您正在编写将与 Jersey 服务器通信的 Android 客户端,对吧?
    • 对。我计划应用程序,选择适当的技术。这是我的第一个更大的应用程序。所以,总而言之——我做好了准备,并不是所有的事情都已确定。最初我想到的是春天,而不是球衣。
    • 在我看来,Spring 和 Jersey 都很好。
    • 好的,那么在 spring 的情况下 - 对于安全经典 spring 安全?还是别的什么?
    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 2019-02-08
    • 2012-06-01
    • 1970-01-01
    • 2013-04-08
    • 1970-01-01
    相关资源
    最近更新 更多