Spring cloud小坑一,解决Eureka server 开启 security后,client无法注册成功的问题!

背景:

初入 Spring Cloud,为了安全着想设置密码认证登录,结果导致了client无法注册成功!
报错:com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server

解决办法:

旧版本:

security:
  basic:
    enabled: true 

但是已经被弃用 了!

新版本:

第一步:
新版本的security默认开启csrf了,需要关掉

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.NEVER);
        http.csrf().disable();//关掉csrf
        //注意:为了可以使用 http://${user}:${password}@${host}:${port}/eureka/ 这种方式登录,所以必须是httpBasic,如果是form方式,不能使用url格式登录
        http.authorizeRequests().anyRequest().authenticated().and().httpBasic();
    }
}

第二步:
一开始我以为这样就可以了,结果再次报错
还有一步,就是在 Eureka 和client 的yml 中
在这里插入图片描述
第一个admin是用户名,第二个是密码,在 Eureka 和client 的yml 中 都必须配置!

然后就可以运行成功了!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值