package com.sinata.appointment.config;
|
|
import cn.dev33.satoken.config.SaTokenConfig;
|
import cn.dev33.satoken.stp.StpLogic;
|
import cn.dev33.satoken.SaManager;
|
import com.sinata.appointment.constants.SaRealmConstants;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
|
/**
|
* 小程序域 StpLogic,与默认 {@link cn.dev33.satoken.stp.StpUtil}(管理端)隔离。
|
*
|
* <p>独立 {@link SaRealmConstants#MINI_TOKEN_HEADER},避免与管理端共用 {@code Authorization} 时串 token。
|
*/
|
@Configuration
|
public class SaTokenMiniStpConfig {
|
|
/**
|
* 初始化小程序域 StpLogic,并注册到 {@link MiniStpUtil} 与 Sa-Token 全局 StpLogicMap。
|
*
|
* <p>返回值仅用于 Spring 启动顺序控制(供 {@code @DependsOn} 使用)。
|
*/
|
@Bean("miniStpUtilInit")
|
public Object miniStpUtilInit() {
|
StpLogic logic = new StpLogic(SaRealmConstants.MINI_PROGRAM);
|
|
SaTokenConfig global = SaManager.getConfig();
|
if (global != null) {
|
SaTokenConfig mini = new SaTokenConfig();
|
BeanUtils.copyProperties(global, mini);
|
mini.setTokenName(SaRealmConstants.MINI_TOKEN_HEADER);
|
logic.setConfig(mini);
|
}
|
|
MiniStpUtil.setStpLogic(logic);
|
return new Object();
|
}
|
}
|