0

Config client is unable to fetch the changed property values from the modified property files in Git. I need assistance in resolving this issue.

I created a new spring config server and client. Initially the values from the property files were fetched properly. When i changed the values in the property file, the client was still returning old values. I tried POSTing to http://localhost:8080/actuator/refresh and even after that, the old values are returned. Finally i deleted the property file from the git repository and the client still returns old values.

Config Server bootstrap.properties

spring.application.name=ConfigServer

server.port=8888

encrypt.key=123456
spring.security.user.password=configpassword123

spring.cloud.config.server.git.uri=https://some-repository/ConfigRepo.git
spring.cloud.config.server.git.username=git_user
spring.cloud.config.server.git.password=git_password

ConfigServer.java

@Configuration
@EnableDiscoveryClient
@SpringBootApplication
@EnableConfigServer
public class ConfigServer {

    public static void main(String[] args) {
        SpringApplication.run(ConfigServer.class, args);
    }

}

WebSecurityConfiguration.java

@Configuration
@EnableWebSecurity
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {

    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable().authorizeRequests()
                .anyRequest().authenticated().and().httpBasic();
    }
}

Config Client bootstrap.properties

spring.application.name=config-client
spring.cloud.config.uri=http://config-server:8888
spring.cloud.config.username=user
spring.cloud.config.password=configpassword123
management.endpoints.web.exposure.include=*

Config Client Controller Class

@RefreshScope
@RestController
public class ConfigController {

    @Value("${applicationname}")
    private String appName;

    @Value("${username}")
    private String username;

    @Value("${password}")
    private String password;

    @Value("${instancename}")
    private String environment;

    @Value("${dbconnection}")
    private String dbConnection;

    @GetMapping("/user")
    public String getUser() { 
        return "Application: "+ appName +" Instance: "+ environment + " User: " + username + " / " + password;
    }

    @GetMapping("/dbconn")
    public String getDBConnection() {
        return dbConnection;
    }
}
VRamesh
  • 25
  • 1
  • 6
  • Same issue here: bootstrap.yml specified: `management: endpoints: web: exposure: include: - refresh ` Controller: annotated with @RefreshScope still not working – Dexter Aug 27 '22 at 07:26

1 Answers1

0

Please check whether your post refresh request works fine. You need to permit the POST request in security configuration.

Reference code :

http.antMatchers(HttpMethod.POST, "/refresh").permitAll();
GnanaJeyam
  • 2,780
  • 16
  • 27