首页 > 解决方案 > 使用 methodNameResolver 保护 Spring multiactionController 中的方法调用

问题描述

我正在使用 Spring 3 并使用 simpleUrlMapping 实现了 MVC。我正在CustomerController上课。在CustomerController我有三种方法:

  1. 查看客户
  2. 添加客户
  3. 删除客户

使用方法名称解析器调用上述操作。

我的要求取决于登录的用户和权限,我想保护相应的方法调用。

删除客户方法应该由特权用户调用,而不是由所有用户调用。

我也在使用 Spring Security。有什么方法可以使用 Spring 安全性保护删除客户方法?

标签: springspring-mvcspring-securityspring-security-acl

解决方案


选项:

@RequestMapping
 public void deleteCustomer(HttpServletRequest request) {
    if(request.isUserInRole("ROLE_ADMIN"){
      // do deletion
    };

 }

或使用 @EnableGlobalMethodSecurity

 @PreAuthorize("hasRole('ROLE_ADMIN')")
 @RequestMapping
 public void deleteCustomer(HttpServletRequest request) {

推荐阅读