Enreka Server 设置
pom.xml添加依赖
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
设置账号密码,因测试,使用最简单的方式
#安全认证
spring.security.user.name=admin
spring.security.user.password=123
因测试为单节点,所以要关闭向别的服务器注册设置,也不拉取其他节点的数据
#是否将自己注册到Eureka Server,默认为true,由于当前就是server,故而设置成false,表明该服务不会向eureka注册自己的信息
eureka.client.register-with-eureka=false
#是否从eureka server获取注册信息,由于单节点,不需要同步其他节点数据,用false
eureka.client.fetch-registry=false
最终的application.properties
#是否将自己注册到Eureka Server,默认为true,由于当前就是server,故而设置成false,表明该服务不会向eureka注册自己的信息
eureka.client.register-with-eureka=false
#是否从eureka server获取注册信息,由于单节点,不需要同步其他节点数据,用false
eureka.client.fetch-registry=false
#设置服务注册中心的URL,用于client和server端交流
eureka.client.service-url.defaultZone=http://euk1.com:7001/eureka/
#主机名
#hostname 是用来查找主机地址的,appname表示分组的
eureka.instance.hostname=euk1.com
server.port=7001
#服务名称
spring.application.name=EnrekaServer
eureka.instance.metadata-map.main=sam
#关闭自我保护
eureka.server.enable-self-preservation=false
#安全认证
spring.security.user.name=admin
spring.security.user.password=123
输入刚刚设置的账号密码,登录
Enreka Client 设置
账号和密码输入在连接前
http://{username}:{password}@{ip}:{port}/eureka/
eureka.client.service-url.defaultZone=http://admin:123@euk1.com:7001/eureka/
application.properties
#续约发送间隔默认30秒,心跳间隔
#eureka.instance.lease-renewal-interval-in-seconds=5
#表示eureka client间隔多久去拉取服务注册信息,默认为30秒,对于api-gateway,如果要迅速获取服务注册状态,可以缩小该值,比如5秒
#eureka.client.registry-fetch-interval-seconds=5
# 续约到期时间(默认90秒)
#eureka.instance.lease-expiration-duration-in-seconds=60
#设置服务注册中心的URL,用于client和server端交流
eureka.client.service-url.defaultZone=http://admin:123@euk1.com:7001/eureka/
server.port=8080
spring.application.name=client
#开启所有端点
management.endpoints.web.exposure.include=*
#开启shutdown端点--只可使用post来访问
management.endpoint.shutdown.enabled=true
#可以上报服务的真实健康状态--使用的health端点上报的
eureka.client.healthcheck.enabled=true
但服务会报错,描述是找不到服务器
加了security后,会添加防止跨域攻击保护功能(CSRF)
默认是开启防止跨域攻击,需要在eureka服务端中添加关闭的代码
Enreka Server 关闭 CSRF
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter{
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();
super.configure(http);
}
}