微服务-黑马头条

1.app登录-用户微服务搭建

(1)用户微服务模块创建在哪?
(2)用户微服务所需要依赖是在哪配置?
(3)用户微服务包结构是哪些?
(4)用户微服务的nacos注册与配置

2.微服务中模块如何引用另一模块功能

(1)模块的pom.xml文件中引入另一个模块功能配置
<dependency>
    <groupId>com.heima</groupId>
    <artifactId>heima-leadnews-common</artifactId>
</dependency>
(2)被引用模块配置文件spring.factoies中加入相应自动配置注入和配置类位置
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.heima.common.exception.ExceptionCatch,\
  com.heima.common.swagger.SwaggerConfig,\
  com.heima.common.swagger.Swagger2Config

3.微服务网关搭建

(1)在微服务父模块网关下创建子模块appGateway

创建配置文件bootstrap.yml文件,配置端口,nacos注册和配置地址

server:
  port: 5061

spring:
  application:
    name: leadnews-app-gateway
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.200.130:8848
      config:
        server-addr: 192.168.200.130:8848
        file-extension: yml

nacos进行跨域配置和路由配置

spring:
  cloud:
    gateway:
      globalcors:
        add-to-simple-url-handler-mapping: true
        corsConfigurations:
          '[/**]':
            allowedHeaders: "*"
            allowedOrigins: "*"
            allowedMethods:
              - GET
              - POST
              - DELETE
              - PUT
              - OPTION
      routes:
        # 用户微服务
        - id: user
          uri: lb://leadnews-user
          predicates:
            - Path=/user/**
          filters:
            - StripPrefix= 1

(2)微服务网关自定义登录认证过滤器

创建过滤器类加上主机@Componet

类实现接口Ordered,Global,重写方法

public class AuthFilter implements Ordered, GlobalFilter
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
    ServerHttpRequest request = exchange.getRequest();
    ServerHttpResponse response = exchange.getResponse();
    if(request.getURI().getPath().contains("/login"))
    {
        return  chain.filter(exchange);
    }
    String token = request.getHeaders().getFirst("token");
    if(StringUtils.isBlank(token))
    {
        response.setStatusCode(HttpStatus.UNAUTHORIZED);
        return response.setComplete();
    }
    Claims claims = AppJwtUtil.getClaimsBody(token);
    int i = AppJwtUtil.verifyToken(claims);
    try {
        if(i == 1 || i == 2)
        {
            response.setStatusCode(HttpStatus.UNAUTHORIZED);
            return response.setComplete();
        }
    } catch (Exception e) {
        e.printStackTrace();
        response.setStatusCode(HttpStatus.UNAUTHORIZED);
        return response.setComplete();
    }
    return chain.filter(exchange);
}

@Override
public int getOrder() {
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值