hsweb 用户手册
  • 说明
  • 快速开始
  • 增删改查
    • 通用CRUD
    • 动态SQL条件
    • 数据库版本控制
    • 拓展实体类
  • 权限控制
    • 登录授权
    • 权限管理
    • RBAC权限控制
    • 数据权限控制
    • 双因子验证
    • 前后分离
  • 常用工具
    • 枚举数据字典
    • 对象属性拷贝
    • 缓存
    • 分布式锁
    • 计数器
    • Excel导入导出
  • 日志
  • 多数据源
    • 多数据源管理
    • Mybatis 多数据源
    • Jta 多数据源事务
  • 业务功能
    • 用户权限
    • 组织架构
    • 数据字典
    • 动态表单
    • 工作流
    • 数据源配置
    • 模板管理
    • 动态脚本
    • 首页dashbord配置
    • 文件上传下载
    • 在线数据库管理
  • 其他
Powered by GitBook
On this page

Was this helpful?

  1. 权限控制

前后分离

用户认证信息使用UserTokenManager进行管理,hsweb默认提供了基于sessionId的token实现,如果在需要前后分离,可以自行拓展UserTokenGenerator和UserTokenParser。

自定义Token策略

  1. 自定义UserTokenGenerator

MyUserTokenGenerator.java
@Component
public class MyUserTokenGenerator implements UserTokenGenerator {

    private int timeout = 30 * 60 * 1000;

    @Override
    public String getSupportTokenType() {
       // 登录时,请求参数为 token_type = token 时,此配置生效
        return "token";
    }

    @Override
    public GeneratedToken generate(Authentication authentication) {
        String token = IDGenerator.MD5.generate();

        return new GeneratedToken() {
            @Override
            public Map<String, Object> getResponse() {
                //返回给前端的参数,前端拿到此参数后自行处理
                return Collections.singletonMap("token", token);
            }

            @Override
            public String getToken() {
                return token;
            }

            @Override
            public int getTimeout() {
                // token 超时时间,超过时间没有请求时,自动失效
                return timeout;
            }
        };
    }
}

2. 自定义UserTokenParser

MyUserTokenParser.java
@Component
public class MyUserTokenParser implements UserTokenParser {
    @Override
    public ParsedToken parseToken(HttpServletRequest request) {
        //获取参数中的token
        String token = request.getParameter("token");

        if(StringUtils.isEmpty(token))return null;

        return () -> token;
    }
}

3. 在登录时,多传入一个参数: token_type=token

Previous双因子验证Next常用工具

Last updated 6 years ago

Was this helpful?