Easy-Security Easy-Security
首页
  • 快速使用
  • 架构介绍
  • 核心功能
版本说明
GitHub (opens new window)
首页
  • 快速使用
  • 架构介绍
  • 核心功能
版本说明
GitHub (opens new window)
  • 快速入门

    • 简介
    • 快速开始
    • 配置介绍
  • 架构介绍

    • 架构介绍
    • 微服务使用
  • 核心功能

    • 数据加密
    • 自定义扩展

自定义扩展

自定义扩展是框架提供给开发者其他业务功能拓展的使用,开发者可以实现自己想要的功能,比如踢人下线,账号封禁等,只要是你想做的,都可以通过自定义扩展实现自己的业务逻辑,实现也是 so easy。

这里以账号封禁为例

@Component
public class CustomHandler implements ReqFunctionHandler, RepFunctionHandler {

    Map<String,Object> banMap = new ConcurrentHashMap<>(){{
        put("zhangsan",new ConcurrentHashMap<String,Object>(){{
            put("exp", -1);
        }});
    }};

    /**
     * 可以对在请求的过程中 对 request 和 json 内容进行相应的处理
     * @param request
     * @param json
     * @return
     * @throws BasicException
     * @throws IOException
     */
    @Override
    public String exec(HttpServletRequest request, String json) throws BasicException, IOException {
        // 如果在 project-path 描述了此路径,不被拦截 直接返回
        if(LocalUtil.getLocalEntity().getProject()){
            return json;
        }
        // LocalUtil 是框架自带的本地线程缓存,可以方便获取到 当前登录用户,在controller service 也可以使用
        // 你也可以从自定义缓存如redis中获取,数据库也行
        UserVO user = LocalUtil.<UserVO>getUser();
        Object obj = banMap.get(user.getAccount());
        // 从 obj 取封禁时长等等一系列逻辑都可以写
        if(!ObjectUtil.isNull(obj)){
            throw new BasicException(500,"账号被封禁");
        }
        return json;
    }

    /**
     * 可以对在相应的过程中 对 response 和 json 内容进行相应的处理
     * @param response
     * @param json
     * @return
     * @throws BasicException
     * @throws IOException
     */
    @Override
    public String exec(HttpServletResponse response, String json) throws BasicException, IOException {
        System.out.println("返回拦截,这里看业务实际需要,不需要可以不实现 RepFunctionHandler");
        return json;
    }

    @Override
    public Integer getIndex() {
        return 10;
    }

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

请求结果

2023-07-14 15:11:00.694 DEBUG 14256 --- [nio-8001-exec-6] c.a.e.s.filter.wrapper.ReqWrapper        : exec handler : com.aizuda.easy.security.handler.exec.BlacklistHandler
2023-07-14 15:11:00.694 DEBUG 14256 --- [nio-8001-exec-6] c.a.e.s.handler.exec.BlacklistHandler    : Accessing the user's IP: 192.168.148.41
2023-07-14 15:11:00.694 DEBUG 14256 --- [nio-8001-exec-6] c.a.e.s.filter.wrapper.ReqWrapper        : exec handler : com.aizuda.easy.security.handler.exec.ProjectPathHandler
2023-07-14 15:11:00.694 DEBUG 14256 --- [nio-8001-exec-6] c.a.e.s.filter.wrapper.ReqWrapper        : exec handler : com.aizuda.easy.security.handler.exec.AuthenticationHandler
2023-07-14 15:11:00.695 DEBUG 14256 --- [nio-8001-exec-6] c.a.e.s.filter.wrapper.ReqWrapper        : exec handler : com.aizuda.easy.security.handler.exec.AuthorizationHandler
2023-07-14 15:11:00.695 DEBUG 14256 --- [nio-8001-exec-6] c.a.e.s.filter.wrapper.ReqWrapper        : exec handler : com.aizuda.easy.security.handler.exec.DecryptPathHandler
2023-07-14 15:11:00.695 DEBUG 14256 --- [nio-8001-exec-6] c.a.e.s.filter.wrapper.ReqWrapper        : exec handler : com.aizuda.easy.security.handler.exec.ReqDataHandler
2023-07-14 15:11:00.695 DEBUG 14256 --- [nio-8001-exec-6] c.a.e.s.filter.wrapper.ReqWrapper        : exec handler : com.fengqianrun.java.controller.CustomHandler
2023-07-14 15:11:00.695 ERROR 14256 --- [nio-8001-exec-6] c.a.easy.security.filter.FunctionFilter  : 账号被封禁
1
2
3
4
5
6
7
8
9

测试结果

上次更新: 11/23/2023, 1:38:53 PM
数据加密

← 数据加密

Theme by Vdoing | Copyright © 2023-2023
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式