ClouGence / hasor

Hasor是一套基于 Java 语言的开发框架,区别于其它框架的是 Hasor 有着自己一套完整的体系,同时还可以和先有技术体系做到完美融合。它包含:IoC/Aop容器框架、Web框架、Jdbc框架、RSF分布式RPC框架、DataQL引擎,等几块。
http://www.hasor.net
Apache License 2.0
983 stars 273 forks source link

权限验证问题 #21

Closed xxmfypp closed 4 years ago

xxmfypp commented 4 years ago

发布出来的API如果增加权限校验?

zycgit commented 4 years ago

升级到 4.1.4 版本,然后利用 前置拦截器实现。 https://www.hasor.net/web/dataway/spi.html#preexecute

类似下面。

apiBinder.bindSpiListener(PreExecuteChainSpi.class, (apiInfo, future) -> {
    String apiPath = apiInfo.getApiPath();
    String apiMethod = apiInfo.getMethod()
    if (...) {
        // (方式1)通过 future 设置异常信息
        future.failed(new StatusMessageException(401, "not power"));
        // (方式2)或者直接 throw 一个异常
        throw new StatusMessageException(401, "not power");
    }
});
// Result
// {
//   "success": false,
//   "message": "not power",
//   "code": 401,
//   "lifeCycleTime": 42,
//   "executionTime": -1,
//   "value": "not power"
// }