springcloud--eureka加密认证注册失败

spring cloud Finchley.SR2 版本

配置文件
 bootstrap.yml文件

spring:
  application:
    name: eureka
  security:
    user:
      name: admin
      password: admin
server:
  port: 8761


eureka:
  instance:
    hostname: localhost
  client:
    service-url:
      defaultZone: http://${spring.security.user.name}:${spring.security.user.password}@${eureka.instance.hostname}:${server.port}/eureka/
    fetch-registry: true
    register-with-eureka: false

添加依赖包

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security</artifactId>
		</dependency>

启动并访问http://localhost:8761 ,可以看到登录界面, 说明用户密码已经生效了
在这里插入图片描述

客户端配置文件
 bootstrap.yml文件

eureka:
  instance:
    #是否使用IP定义注册中心的地址
    prefer-ip-address: true
    status-page-url-path: /swagger-ui.html
  client:
    service-url:
      defaultZone: http://admin:admin@localhost:8761/eureka/

接着启动服务注册到注册中心,此时发现启动时抛出异常:Cannot execute request on any known server
BUG日志
原因是因为新版本的security默认开启了csrf拦截, 所以需要禁用csrf功能. 在启动类中加入以下代码:

@EnableWebSecurity
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable(); //关闭csrf
        http.authorizeRequests().anyRequest().authenticated().and().httpBasic(); //开启认证
    }
}

问题解决!!

参考链接

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值