java-totp icon indicating copy to clipboard operation
java-totp copied to clipboard

TotpAutoConfiguration is not loaded automatically by Spring Boot 3

Open micobarac opened this issue 2 years ago • 2 comments

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 {
}

micobarac avatar Aug 10 '23 14:08 micobarac

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

limkinZero avatar Aug 22 '23 10:08 limkinZero

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

basimons avatar Aug 29 '23 12:08 basimons