若依框架解读(微服务版)—— 4.认证,登出(Gateway网关)

认证

我们可以查看token值

在这里插入图片描述

我们进入授权中心,这里其他的解析解析token的步骤与上一篇文章中的生成token是逆操作,也比较简单。我们进入ignoreWhite.getWhites()方法

在这里插入图片描述

此处的两个注解是获取nacos当中的白名单,我们打开nacos,进入网关配置可查看相关的值。也就是除了这几个接口都要对用户进行认证。

ps:前后端分离的项目当中
前端的css啥的前后端分离情况都是放在nginx当中的,不会经过网关。不需要配置白名单啥的。
nginx配置文件介绍——负载均衡,动静分离实现

在这里插入图片描述
在这里插入图片描述

登出

登出比较简单,获取前端传来的token,删除了redis当中的用户信息

在这里插入图片描述

在这里插入图片描述

记得要在两个工程里面都打上断点。
因为白名单当中配置了logou接口,因此请求会从网关服务进入鉴权服务。
ps:在hain.filter(exchange);debug时会一直在源码里转
我们在请求刚到第一个断点时,打第二个断点,在点击左下角的三角形,会直接进入鉴权服务工程

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Spring Cloud 中,我们可以使用 Spring Cloud Gateway 或者 Zuul 等网关来构建服务网关。如果需要设置网关中的某些路由不需要进行认证,可以通过在网关中配置 Spring Security 过滤器链来实现。 在 Spring Security 中,`http.authorizeRequests()` 方法用于配置请求的安全性,包括哪些请求需要认证、哪些请求不需要认证等。如果需要设置某些请求可以不经过认证,可以使用 `permitAll()` 方法,例如: ```java @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/public/**").permitAll() //设置 /public/** 路径下的请求可以不经过认证 .anyRequest().authenticated() // 其他请求需要进行身份认证 .and() .formLogin().loginPage("/login").permitAll() //设置登录页面可以匿名访问 .and() .logout().permitAll(); //设置登出可以匿名访问 } ``` 这样,在 Spring Cloud Gateway 中,我们可以定义一个不需要认证的路由,例如: ```yaml spring: cloud: gateway: routes: - id: route1 uri: http://example.com predicates: - Path=/public/** filters: - name: WebSecurity args: security: authorizeRequests: antMatchers: /public/** # 设置 /public/** 路径下的请求可以不经过认证 permitAll: true ``` 在上面的配置中,我们定义了一个路由,它的路径为 `/public/**`,并且使用了 `WebSecurity` 过滤器,将 `/public/**` 路径下的请求设置为可以不经过认证。这样就可以在网关中设置不需要认证的路由了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值