【问题标题】:Administrator being able to delete any user from the database管理员能够从数据库中删除任何用户
【发布时间】:2013-09-24 21:37:19
【问题描述】:

我有一个简单的小型应用程序,其中涉及管理员能够更新和删除数据库中的信息或单个用户的信息。基本上,到目前为止,管理员可以在一个页面上以表格的形式查看所有当前注册的用户。我需要知道如何根据每行中的用户删除或更新用户信息,因此假设基于他们的实际用户 ID。到目前为止,我已经能够从数据库中提取所有用户并将它们放入一个表中,并使用 JSTL 填写必要的表值(用户名、电子邮件等)。 我不知道这样做的正确过程,也不知道如何编写控制器来处理这个特定任务。到目前为止我的控制器是这样的:

@RequestMapping("/deleteUser")
public String deleteUser(@RequestParam(value = "id", required= false) Integer id) {

    usersService.delete(id);
    return "users";

}

其中请求映射来自表中的一个按钮,以及“返回用户”;只是返回到显示所有用户的同一 jsp 页面。这有点问题,我想知道实现此功能的正确和最佳方法是什么。

【问题讨论】:

    标签: java spring spring-mvc spring-security


    【解决方案1】:

    向委托人检查用户权限。

       @RequestMapping("/deleteUser")
        public String deleteUser(@RequestParam(value = "id", required= false, Principal princiapl) Integer id) {
        // Check if user has admin authority using principal.getAuthorities();
        }
    

    您还可以使用@Secured("ROLE_ADMIN") 注释并将方法锁定为管理员角色。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多