当前位置: 首页 > news >正文

淄博网站建设优化运营k8s wordpress

淄博网站建设优化运营,k8s wordpress,网站后台发表文章,上海seo公司排名榜1.JWT工具AuthProperties:配置登录校验需要拦截的路径,因为不是所有的路径都需要登录才能访问JwtProperties:定义与JWT工具有关的属性,比如秘钥文件位置SecurityConfig:工具的自动装配JwtTool:JWT工具&…

1.JWT工具

AuthProperties:配置登录校验需要拦截的路径,因为不是所有的路径都需要登录才能访问

JwtProperties:定义与JWT工具有关的属性,比如秘钥文件位置

SecurityConfig:工具的自动装配

JwtTool:JWT工具,其中包含了校验和解析token的功能

hmall.jks:秘钥文件

AuthPropertiesJwtProperties所需的属性要在application.yaml中配置:

hm:jwt:location: classpath:hmall.jks # 秘钥地址alias: hmall # 秘钥别名password: hmall123 # 秘钥文件密码tokenTTL: 30m # 登录有效期auth:excludePaths: # 无需登录校验的路径- /search/**- /users/login- /items/**

定义一个登录校验的过滤器(AuthGlobalFilter):

package com.hmall.gateway.filter;import com.hmall.common.exception.UnauthorizedException;
import com.hmall.common.utils.CollUtils;
import com.hmall.gateway.config.AuthProperties;
import com.hmall.gateway.util.JwtTool;
import lombok.RequiredArgsConstructor;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.http.server.reactive.ServerHttpResponse;
import org.springframework.stereotype.Component;
import org.springframework.util.AntPathMatcher;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;import java.util.List;@Component
@RequiredArgsConstructor
@EnableConfigurationProperties(AuthProperties.class)
public class AuthGlobalFilter implements GlobalFilter, Ordered {private final JwtTool jwtTool;private final AuthProperties authProperties;private final AntPathMatcher antPathMatcher = new AntPathMatcher();@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {// 1.获取RequestServerHttpRequest request = exchange.getRequest();// 2.判断是否不需要拦截if(isExclude(request.getPath().toString())){// 无需拦截,直接放行return chain.filter(exchange);}// 3.获取请求头中的tokenString token = null;List<String> headers = request.getHeaders().get("authorization");if (!CollUtils.isEmpty(headers)) {token = headers.get(0);}// 4.校验并解析tokenLong userId = null;try {userId = jwtTool.parseToken(token);} catch (UnauthorizedException e) {// 如果无效,拦截ServerHttpResponse response = exchange.getResponse();response.setRawStatusCode(401);return response.setComplete();}// TODO 5.如果有效,传递用户信息System.out.println("userId = " + userId);// 6.放行return chain.filter(exchange);}private boolean isExclude(String antPath) {for (String pathPattern : authProperties.getExcludePaths()) {if(antPathMatcher.match(pathPattern, antPath)){return true;}}return false;}@Overridepublic int getOrder() {return 0;}
}

http://www.dtcms.com/a/563439.html

相关文章:

  • 专业网站开发哪里有wordpress谷歌翻译插件
  • 自己怎么优化我网站关键词wordpress 4.4.2漏洞
  • 同学聚会怎么样做网站wordpress首页聚合模块
  • 网站建设意见建议企业微网站哪家好
  • 网站开发项目运营经理岗位职责友链申请
  • wordpress备份用户权限南昌seo网站排名
  • 国内知名网站建设公司郑州做网站茂睿科技
  • 网站开发怎么挣钱wordpress菜单 自定义大小写
  • 网站首页做一点开有动画ps怎么做华为网站界面
  • 唐山网站建设系统做网站对象存储
  • 惠州网站建设效果wordpress网站维护教程
  • 网站数据库有什么用网站建设项目公告
  • 做歌厅广告在哪个网站做好大连做网站谁家好
  • 网站服务器失去响应国外源码网站
  • 撤销个人网站备案郑州网站制作怎么样
  • 设计公司 网站中铁建设集团网站
  • 四平网站建设服务移动网站源码
  • 网站建设文字内容wordpress图片放大
  • 进行目的地网站建设做淘宝客网站有什么服务器
  • 北京网站优化首页最专业的房地产网站建设
  • 中国建设网官方网站济宁国泰四川建设网自主招标网
  • 网站开发技术 主流网站后台开发 必备技能
  • 闸北区网站建设网页设计网站代码调试
  • 建设部电教中心网站茂港网站设计公司
  • 新手建站素材网站建设消费调查问卷
  • 合肥建站网站wordpress教程下载
  • 东莞百度网站优化模板背景图片
  • 网站制作与网页设计免费做网站app
  • 平台网站应该怎样做seo微信开发者工具代码
  • 北京城乡建设学校网站可以免费看国外短视频app