Search code examples
spring-bootclient-serverspring-cloudspring-cloud-config

Spring Cloud Config Server/Client Security Issue


I have following security configs in

Server application.yml

management:
    security:
        enabled: false
server:
    port: 8888
spring:
    cloud:
        config:
            server:
                jdbc:
                    order: 1
                    sql: SELECT prop_key,value FROM xlabs.properties where application=?
                        and profile=? and label=?
    datasource:
        password: XXXXX
        url: jdbc:postgresql://localhost:8000/finos?currentSchema=xlabs
        username: XXXXX
    profiles:
        active: jdbc
    security:
        user:
            name: mufg
            password: mufg

In Client side.

client application.properties

server:
    port: 8082
spring:
    application:
        name: config-server
    cloud:
        config:
            label: latest
            profile: development
            uri: http://localhost:8888
            username: mufg
            password: mufg

With this settings Config server security works fine I can access properties via http://localhost:8888/config-server/development/latest after entering username and passwords. But when I try to up client it says property not resolved. Any issue here?

Thanks.


Solution

  • After some times I am able to find out the answer. In Config server with only that configs the client side will be blocked. So have to disable csrf and allow any request like as follows.

    just add sever side.

    @Configuration
    public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
    
        @Override
        public void configure(HttpSecurity http) throws Exception {
            http
                    .csrf()
                    .disable()
                    .httpBasic()
                    .and()
                    .authorizeRequests()
                    .antMatchers("/encrypt/**").authenticated()
                    .antMatchers("/decrypt/**").authenticated();
            
        }
    }
    

    But Here default security will be disabled. Here problem is if username or password changed from client side authentication happens.