chenpei c26105b684 初始提交:JmalCloud公共空间版改造完成
- 改造为公共空间模式,所有用户共享文件
- 移除用户文件隔离机制
- 保持前端API兼容性
- 更新配置文件和文档
- 创建完整启动脚本工具链
2025-08-24 11:16:01 +08:00

49 lines
1.6 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.jmal.clouddisk.config;
import dev.samstevens.totp.code.*;
import dev.samstevens.totp.qr.QrGenerator;
import dev.samstevens.totp.qr.ZxingPngQrGenerator;
import dev.samstevens.totp.secret.DefaultSecretGenerator;
import dev.samstevens.totp.secret.SecretGenerator;
import dev.samstevens.totp.time.SystemTimeProvider;
import dev.samstevens.totp.time.TimeProvider;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class TotpConfig {
@Bean
public SecretGenerator secretGenerator() {
// 用于生成新的MFA密钥
return new DefaultSecretGenerator(64);
}
@Bean
public TimeProvider timeProvider() {
// 提供当前时间,用于TOTP计算
return new SystemTimeProvider();
}
@Bean
public CodeGenerator codeGenerator() {
// TOTP代码生成器,使用标准SHA1算法,6位数字,30秒周期
return new DefaultCodeGenerator(HashingAlgorithm.SHA1, 6);
}
@Bean
public CodeVerifier codeVerifier(TimeProvider timeProvider, CodeGenerator codeGenerator) {
// 代码验证器
DefaultCodeVerifier verifier = new DefaultCodeVerifier(codeGenerator, timeProvider);
// 关键:设置容错窗口,允许客户端和服务器之间有轻微的时间偏差
// 1 表示允许前后一个时间周期(即前后30秒)的代码也有效
verifier.setAllowedTimePeriodDiscrepancy(1);
return verifier;
}
@Bean
public QrGenerator qrGenerator() {
return new ZxingPngQrGenerator();
}
}