java每日精进2.8(SpringSecurity应用鉴权)

1.一个接口的执行流程

@GetMapping("/list")
    @Operation(summary = "获取菜单列表", description = "用于【菜单管理】界面")
    @PreAuthorize("@ss.hasPermission('system:menu:query')")
    public CommonResult<List<MenuRespVO>> getMenuList(MenuListReqVO reqVO) {
        List<MenuDO> list = menuService.getMenuList(reqVO);
        list.sort(Comparator.comparing(MenuDO::getSort));
        return success(BeanUtils.toBean(list, MenuRespVO.class));
    }

1.请求发送(HTTP 请求)

假设有一个 HTTP 请求访问 /list 路径,方法是 GET,请求的 URL 类似于 http://example.com/list

2.Spring MVC 接收到请求

Spring Boot 的 @RestController@Controller 会接收到这个请求,并通过 @GetMapping("/list") 注解来匹配这个请求,找到对应的 getMenuList 方法。

3.方法入口

当请求到达 getMenuList 方法时,Spring 会将请求中的参数绑定到 MenuListReqVO 对象(例如:reqVO)。如果请求中有参数(如分页信息、过滤条件等),Spring 会根据请求的参数自动映射到 MenuListReqVO 类的字段。

例如,假设请求 URL 是 http://example.com/list?page=1&size=10,那么 reqVO 对象会被填充为:

MenuListReqVO reqVO = new MenuListReqVO(); reqVO.setPage(1); reqVO.setSize(10);

4.权限校验(@PreAuthorize 注解)

猜你喜欢

转载自blog.csdn.net/weixin_51721783/article/details/145509861
今日推荐