【仅供内部供应商使用,不提供对外解答和培训】
...
| Code Block | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
package com.fr.decision.fun;
import com.fr.third.springframework.web.bind.annotation.RequestMethod;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Created by loy on 2018/9/3.
*
* HTTP路由处理器
*/
public interface HttpHandler {
/**
* HTTP方法
* @return 返回null时匹配所有方法
*/
RequestMethod getMethod();
/**
* 路由路径
* 例如:
* /
* /foo
* /aaa/bbb
*/
String getPath();
/**
* 是否为公开路由(不需要登录就能访问)
*/
boolean isPublic();
/**
* 处理请求
*/
void handle(HttpServletRequest req, HttpServletResponse res) throws Exception;
/**
* 是否必须超管访问, isPublic为false才生效
*/
boolean needAdmin();
/**
* 管理系统鉴权,非空时则会对管理系统鉴权, 多个节点id取并,isPublic为false才生效
*
* @return 管理系统节点id。内置管理系统节点id见com.fanruan.api.decision.AuthorityKit.Management
*/
String[] modules();
/**
* 其他鉴权手段,鉴权结果与超管鉴权,管理系统节点鉴权取并
* @param userId 用户id
* @return 鉴权成功与否
*/
boolean accessControl(String userId);
} |
产品线 | 版本 | 支持情况 | 备注 |
|---|---|---|---|
| FR | 10.0 | 支持 | |
| BI | 5.1 | 支持 | |
| BI | 5.1.2 | 支持 | |
| BI | 5.1.3 | 支持 |
| Code Block | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
<extra-decision>
<HttpHandlerProvider class="your class name"/>
</extra-decision> |
...
对于isPublic()返回的是false的接口,则会额外匹配needAdmin()、modules()、accessControl(String userId) 三个权限控制的接口方法,只有3个方法锁包含的权限均满足,才能通过验证(也就是3个方法是“与”的关系)。
accessControl(String userId) 方法需要注意,入参是用户ID,不是用户名。基于用户名的匹配需要开发者自行根据FineKit等相关方法进行转换。
demo地址:demo-http-handler、demo-web-request
com.fr.decision.fun.URLAliasProvider
免责声明:所有文档中的开源示例,均为开发者自行开发并提供。仅用于参考和学习使用,开发者和官方均无义务对开源案例所涉及的所有成果进行教学和指导。禁止用于任何商业用途,若作为商用一切后果责任由使用者自行承担。
open-JSD-7339免责声明:所有文档中的开源示例,均为开发者自行开发并提供。仅用于参考和学习使用,开发者和官方均无义务对开源案例所涉及的所有成果进行教学和指导。若作为商用一切后果责任由使用者自行承担。