1

I have my authorization server working with the autoconfiguration of spring-oauth2 @EnableAuthorizationServer in which I have my own custom ClientDetailService service, I am doing very well but I have a problem, it turns out that said service runs 6 times when invoking the endpoint [ oauth / token], which I am not sure is normal behavior but I want it to be executed only once because in it I call my database. Please your support.

My configuration:

@Configuration
@EnableAuthorizationServer
@Slf4j
public class AuthorizationServerConfigurer extends AuthorizationServerConfigurerAdapter {

    @Autowired
    private ApplicationJwtAccessTokenConverter applicationJwtAccessTokenConverter;

    @Autowired
    private ApplicationOauth2Service applicationOauth2Service;

    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        clients.withClientDetails(applicationOauth2Service);
    }

    @Override
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) {
        endpoints
                .tokenEnhancer(applicationJwtAccessTokenConverter)
                .tokenStore(jwtTokenStore());
    }

    @Bean
    public JwtTokenStore jwtTokenStore() {
        return new JwtTokenStore(applicationJwtAccessTokenConverter);
    }

}

My ClientDetailService:

@Service
@Slf4j
public class ApplicationOauth2Service implements ClientDetailsService {

    @Autowired
    UserRepository userRepository;

    User user;

    public ClientDetails loadClientByClientId(String clientId) throws ClientRegistrationException {

        BaseClientDetails details = new BaseClientDetails();
        details.setAuthorizedGrantTypes(Collections.singletonList("client_credentials"));

        user = userRepository.findByEmail(clientId);

        if (null == user) {
            throw new NoSuchClientException("No client with requested id: " + clientId);
        }

        details.setClientId(user.getAuth().getEmail());
        details.setClientSecret(user.getAuth().getPassword());

        return details;
    }

}

My console output:

enter image description here

Jimyx
  • 83
  • 7

0 Answers0