springcloud gateway 4.1.0 集成redis启动报错

项目场景:

springcloud gateway 4.1.0 集成redis


问题描述

启动报错:

Caused by: io.lettuce.core.RedisConnectionException: Unable to connect to localhost/<unresolved>:6379

Caused by: io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required.

本地代码

1.pom

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-gateway-server</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis-reactive</artifactId>
</dependency>

2.application.yml

spring:
  application:
    name: test-gateway
  redis:
    host: 127.0.0.1
    port: 6379
    password: 123456
    database: 1
    timeout: 50000

3.RedisConfiguration配置类

@Configuration
public class RedisConfiguration {

    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory){
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(factory);

        //key序列化
        redisTemplate.setKeySerializer(RedisSerializer.string());

        //hash的key序列化
        redisTemplate.setHashKeySerializer(RedisSerializer.string());

        //value的序列化(json序列化)
        redisTemplate.setValueSerializer(RedisSerializer.json());

        //hash的value序列化(json序列化)
        redisTemplate.setHashValueSerializer(RedisSerializer.json());

        redisTemplate.afterPropertiesSet();
        return redisTemplate;
    }

}

原因分析:

redis配置没有问题,配置类也没有问题,百思不得其解啊,突然想到了前两天自己的总结,升级要点在于版本一定要匹配啊啊啊!既然使用的是最新的spring-boot-starter-data-redis-reactive,是不是redis服务版本的问题呢,果断下载最新windows的redis版本试试。

在网关中使用OAuth2和Redis的主要目的是实现身份验证和授权功能,同时使用Redis作为缓存来提高系统的性能和扩展性。 首先,OAuth2是一个开放标准的授权协议,用于授权第三方应用访问受保护的资源。在网关中,OAuth2用于验证用户的身份和授权访问请求。用户首先将其凭据提交到网关,然后网关使用OAuth2进行身份验证,以确保用户有权访问所请求的资源。 接下来,Redis是一个开源的内存数据库,用于存储和缓存数据。在网关中,Redis可以用作缓存存储,以提高访问速度和减轻后端服务的负载。网关可以将经过身份验证和授权的访问令牌(access token)存储在Redis中,以便在后续请求中快速验证令牌的有效性,而无需每次都向认证服务器发送请求。 为了在网关中实现OAuth2和Redis的功能,您需要进行以下配置: 1. 在网关的配置文件(通常是application.properties或application.yml)中,添加有关OAuth2和Redis的配置信息。这些配置包括认证服务器的URL、客户端ID和密钥、授权模式等。 2. 在网关的代码中,您需要使用Spring Security OAuth2库来实现OAuth2的身份验证和授权功能。您可以使用OAuth2AuthenticationProcessingFilter来拦截请求并进行身份验证。 3. 您还需要使用Redis库来连接和操作Redis数据库。您可以使用RedisTemplate或Jedis等工具类来实现与Redis的交互。通过使用Redis,您可以将访问令牌存储在缓存中,并在需要时快速检查其有效性。 总结起来,网关使用OAuth2和Redis来实现身份验证和授权功能,并通过使用Redis作为缓存来提高系统的性能和扩展性。OAuth2用于验证用户的身份和授权访问请求,而Redis用于存储访问令牌,并在需要时快速验证令牌的有效性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [最新版微服务架构鉴权解决方案Spring Cloud Gateway + Oauth2.0+mybatis+mysql+redis+nacos 统一认证和鉴权](https://blog.csdn.net/qq_33036061/article/details/124443096)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值