【微服务】微服务开发与注册----Eureka Client

Eureka Client

  • 前言
  • Eureka Client
    • 创建项目
    • 修改配置文件
    • 启动
  • Eureka Server安全
    • Spring Security
      • 简介
      • 添加Security依赖
      • 修改yml配置文件
      • 禁用CSRF
      • 服务端启动
      • 客户端注册
  • 总结

前言

大家好,我是DJ李淳罡,微服务是现在面试中必不可少的一项技能了,掌握微服务,不仅能够加薪升职,还能在面试中,底气十足,不怯场,不怕被压薪资。所以今天就特意开了一个微服务专栏,给大家从0-1的介绍微服务知识,由浅入深,逐渐掌握,感兴趣的可以订阅收藏,防止下次找不到了哦~

Eureka Client

在上篇中,我们实现了Eureka Server 服务端,这篇就实现Eureka Client,完成微服务的注册。

创建项目

使用IDEA的Spring Initializr创建Spring项目,选择依赖时勾选Eureka Discovery Client,然后点击Next按钮,如图所示。

【微服务】微服务开发与注册----Eureka Client_第1张图片

勾选Eureka Discovery Client后会生成spring-cloud-starter-netflix- eureka-server依赖。还需在pom.xml配置文件中添加以下依赖:

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifact
</dependency>

修改配置文件

修改application.yml配置文件,添加以下内容:

server:
  port: 6789  
eureka:
  client:
    service-url:
      defaultZone:http://localhost:8761/eureka/

启动

先启动Eureka Server,再启动Eureka Client。启动Eureka Client时检查后台日志。
如果日志中出现下面信息,则说明注册成功:

 Registering application UNKNOWN with eureka with status UP

此时检查8761端口,显示效果如图所示。

【微服务】微服务开发与注册----Eureka Client_第2张图片

可以看到已经注册成功,但是名称为UNKNOWN

可以修改spring.application.name这个值,我们修改application.yml如 下:

server:
  port: 6789  
  application:
  	 name: first-eureka-client
eureka:
  client:
    service-url:
      defaultZone:http://localhost:8761/eureka/

修改名称以后再重新启动后,查看服务注册中心,如图所示。

【微服务】微服务开发与注册----Eureka Client_第3张图片
好了,到此已经 可以开发向Eureka Server注册的Client了。

这是一个完整的eureka的页面:

【微服务】微服务开发与注册----Eureka Client_第4张图片

Eureka Server安全

Spring Security

Spring Security为JavaEE企业级开发提供了全面的安全防护。Spring Security采用“安全层”的概念,使每一层都尽可能安全,连续的安全层可以实现全面的防护。它可以在Controller层、Service层、DAO层以加 注解的方式来保护应用程序的安全。

Spring Security提供了细粒度的权限控制,可以精细到每一个API接口、每一个业务的方法,或每一个操作数据库的DAO层的方法。

使用Spring Security的一个重要原因是它对环境的无依赖性、低代码耦合性。Spring Security提供了数十个安全模块,模块与模块之间的耦合性低,模块之间可以自由组合,以实现特定需求的安全功能。

简介

在安全方面,有两个主要的领域,一是“认证”,即用户是谁;二 是“授权”,即用户拥有什么权限,Spring Security的主要目标就是在这两 个领域。JavaEE还有一个优秀的安全框架Apache Shiro,Apache Shiro在 企业级的项目开发中十分受欢迎,一般使用在单体服务中。但在微服务架构中,目前版本的Apache Shiro是无能为力的。另一个选择Spring Security的原因是Spring Security容易应用于Spring Boot工程,也容易于 集成到采用Spring Cloud构建的微服务系统中。

添加Security依赖

在Eureka Server上添加Spring Security的依赖:

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

修改yml配置文件

Spring Boot 2.x以后,使用Spring Security需要添加spring-boot-starter-security,在application.yml文件中新增以下配置:

spring:
  security:
	user:
	  name: jack
		password:1234

即添加Spring Security的用户名和密码。

禁用CSRF

CSRF(Cross Site Request Forgery)的中文是跨站点请求伪造的意思。CSRF攻击者在用户已经登录目标网站之后,诱使用户访问一个攻击页面,利用目标网站对用户的信任,以用户身份在攻击页面中对目标网站发起伪造用户操作的请求,从而达到攻击的目的。

所以需要禁用CSRF,做法如下: 首先开发一个类,继承WebSecurityConfigurerAdapter。然后在代码中禁用CSRF:

@Configuration
public class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter {

    public SecurityPermitAllConfig(){
        System.out.printf(">>>>>>>:初始化成功;");
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        super.configure(http);
        http.csrf().disable();
    }

}

上例中一共3个步骤:

  1. 继承WebSecurityConfigurerAdapter
  2. 添加EnableWebSecurity注解。
  3. 添加http.csrf().disabled()。

服务端启动

启动Eureka Server并访问8761端口:首先进入登录页面,如图所示。

【微服务】微服务开发与注册----Eureka Client_第5张图片
输入正确的用户名和密码方可登录,如图所示:

【微服务】微服务开发与注册----Eureka Client_第6张图片

客户端注册

因为加了安全验证,所以我们需要在curl中添加用户名和密码,现在修改Eureka Client中的
application.yml配置文件,添加用户名和密码:

server:
  port: 6789  
  application:
  	 name: first-eureka-client
eureka:
  client:
    service-url:
      defaultZone:http://jack:1234@localhost:8761/eureka/

注意上面代码中defaultZone的用户名和密码的添加位置。

然后启动客户端注册,如图所示即为注册成功:

【微服务】微服务开发与注册----Eureka Client_第7张图片

至此,我们已经可以在Spring Boot 2和Spring Cloud中使用基本的安全功能了。

总结

从第一篇微服务入门简介,介绍了微服务架构的知识点和概念,再到Sprint Cloud基础,介绍了SpringCloud中用到的组件,让大家在脑海里先对微服务有一个印象,再到微服务注册中心Eureka Server 服务的实现,以及最后的微服务的注册 Eureka Client的实现,循序渐进,不贪多,打基础才能走的更远。

你可能感兴趣的:(微服务,eureka,微服务,java,Spring,Security,微服务注册)