TotpAutoConfiguration is not loaded automatically by Spring Boot 3
TotpAutoConfiguration is not being loaded automatically by Spring Boot 3.
As a result, all beans defined in TotpAutoConfiguration, such as SecretGenerator, QrDataFactory, QrGenerator, CodeVerifier, are not recognized.
I had to import TotpAutoConfiguration manually in my Spring Boot 3 application:
package com.acme.config;
import dev.samstevens.totp.spring.autoconfigure.TotpAutoConfiguration;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@Import(TotpAutoConfiguration.class)
public class TotpConfiguration {
}
Me too. In Spring Boot 3, there are some changes with register autoconfiguration beans in the starters. The file spring.factories has been removed.
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Migration-Guide#auto-configuration-files
Yeah, I also had this issue. You can fix it by doing this though:
@Configuration
public class MfaConfiguration {
@Bean
public TimeProvider timeProvider() {
return new SystemTimeProvider();
}
@Bean
public SecretGenerator secretGenerator() {
return new DefaultSecretGenerator();
}
@Bean
public CodeGenerator codeGenerator() {
return new DefaultCodeGenerator(HashingAlgorithm.SHA1);
}
@Bean
public CodeVerifier codeVerifier(CodeGenerator codeGenerator, TimeProvider timeProvider) {
return new DefaultCodeVerifier(codeGenerator, timeProvider);
}
}
Which is what it used to do