Spring Security之基于方法配置权限
在Spring Security中,基于方法的权限可以通过使用@PreAuthorize
和@PostAuthorize
注解来实现。这些注解可以加在控制器的方法上,以指定调用该方法时必须具备的权限。
以下是一个使用@PreAuthorize
注解来保护控制器方法的例子:
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
// 只有拥有"ROLE_USER"角色的用户可以访问此方法
@PreAuthorize("hasRole('USER')")
@GetMapping("/user")
public String userMethod() {
return "User method response";
}
// 只有拥有"ROLE_ADMIN"角色的用户可以访问此方法
@PreAuthorize("hasRole('ADMIN')")
@GetMapping("/admin")
public String adminMethod() {
return "Admin method response";
}
}
在这个例子中,userMethod()
方法只允许拥有"ROLE\_USER"角色的用户访问,而adminMethod()
方法只允许拥有"ROLE\_ADMIN"角色的用户访问。
确保你的Spring Security配置正确,并且已经配置了角色。例如,使用http.authorizeRequests().antMatchers("/admin").hasRole("ADMIN")
来为/admin
路径配置角色访问权限。
评论已关闭