Spring Cloud 配置服务器/客户端安全问题
Posted
技术标签:
【中文标题】Spring Cloud 配置服务器/客户端安全问题【英文标题】:Spring Cloud Config Server/Client Security Issue 【发布时间】:2021-05-08 10:55:15 【问题描述】:我有以下安全配置
服务器应用程序.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
在客户端。
客户端应用程序.properties
server:
port: 8082
spring:
application:
name: config-server
cloud:
config:
label: latest
profile: development
uri: http://localhost:8888
username: mufg
password: mufg
使用此设置 配置服务器安全工作正常我可以在输入用户名和密码后通过 http://localhost:8888/config-server/development/latest 访问属性。但是当我尝试升级客户端时,它说属性未解决。这里有什么问题吗?
谢谢。
【问题讨论】:
【参考方案1】:经过一段时间后,我能够找到答案。在只有该配置的配置服务器中,客户端将被阻止。所以必须禁用 csrf 并允许任何请求,如下所示。
只需添加服务器端。
@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();
但是这里默认的安全性将被禁用。这里的问题是如果用户名或密码从客户端身份验证发生更改。
【讨论】:
以上是关于Spring Cloud 配置服务器/客户端安全问题的主要内容,如果未能解决你的问题,请参考以下文章
Spring Cloud微服务安全实战_5-5_refresh token失效处理
spring cloud config客户端未从配置服务器加载配置
通过总线机制实现自动刷新客户端配置(Consul,Spring Cloud Config,Spring Cloud Bus)