package com.aiotagro.cattletrade.config;

import cn.dev33.satoken.dao.SaTokenDao;
import cn.dev33.satoken.dao.SaTokenDaoDefaultImpl;
import cn.dev33.satoken.stp.StpLogic;
import cn.dev33.satoken.stp.StpUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;

/**
 * Sa-Token配置类
 */
@Slf4j
@Configuration
public class SaTokenConfig {

    /**
     * 注册自定义的StpLogic
     */
    @Bean
    @Primary
    public StpLogic getStpLogic() {
        CustomStpLogic customStpLogic = new CustomStpLogic();
        log.info("注册自定义StpLogic，支持通配符权限匹配");
        // 将自定义的StpLogic设置为默认的StpLogic
        StpUtil.setStpLogic(customStpLogic);
        return customStpLogic;
    }

    /**
     * 强制使用内存存储替代Redis
     */
    @Bean
    @Primary
    public SaTokenDao saTokenDao() {
        log.info("强制使用内存存储替代Redis");
        return new SaTokenDaoDefaultImpl();
    }
}

