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

如何说服企业做网站电商网站设计模板dw

如何说服企业做网站,电商网站设计模板dw,直接推广和间接推广区别,数码网站建设过滤器模式#xff08;Filter Pattern#xff09;或标准模式#xff08;Criteria Pattern#xff09;是一种设计模式#xff0c;这种模式允许开发人员使用不同的标准来过滤一组对象#xff0c;通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式…        过滤器模式Filter Pattern或标准模式Criteria Pattern是一种设计模式这种模式允许开发人员使用不同的标准来过滤一组对象通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式它结合多个标准来获得单一标准。 业务场景每次请求通过网关需要验证请求头是否携带 tokensign签名等 类图 AuthService所有滤器类都必须实现的接口 AuthTokenServiceImplToken验证过滤器 AuthSignServiceImpl签名验证过滤器 AuthFactory过滤器工厂利用SpringBoot功能特性实现自动获取过滤器 AuthDTO过滤器所需要的参数 AuthGatewayFilterFactory权限校验过滤器gateway AuthService /*** Author: wmh* Description: 权限校验过滤器* Date: 2023/8/3 18:19* Version: 1.0*/ public interface AuthService {/*** Description: 过滤方法* Param authDTO: 网关上下文* return: String* Author: wmh* Date: 2023/8/3 18:12*/String apply(AuthDTO authDTO);}返回值可以定义为统一返回值R等为了演示方便就返回字符串了 AuthTokenServiceImpl import cn.hutool.core.util.StrUtil; import cn.hutool.jwt.JWT; import cn.hutool.jwt.JWTUtil; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Service;/*** Author: wmh* Description: token校验* Date: 2023/8/3 18:21* Version: 1.0*/ Slf4j Order(0) Service public class AuthTokenServiceImpl implements AuthService {/*** Description: 验证token* Param authDTO: 网关上下文* return: com.norinaviation.atm.common.base.data.R* Author: wmh* Date: 2023/8/3 19:31*/OverrideSneakyThrowspublic String apply(AuthDTO authDTO) {String tokenHeader authDTO.getHeaders().getFirst(CommonConstant.X_TOKEN);if (StrUtil.isBlank(appId)) {return appId不能为空;}if (StrUtil.isBlank(tokenHeader)) {return TOKEN不能为空;}JWT jwt JWTUtil.parseToken(tokenHeader);boolean verifyKey jwt.setKey(CommonConstant.JWT_TOKEN.getBytes()).verify();// 验证token是否正确if (!verifyKey) {log.info(appId:{}, TOKEN auth fail, TOKEN:{}, appId, tokenHeader);return TOKEN认证失败;}boolean verifyTime jwt.validate(0);// 验证token是否过期if (!verifyTime) {log.info(appId:{}, TOKEN expired, TOKEN:{}, appId, tokenHeader);return TOKEN已过期;}return success;}} AuthSignServiceImpl import cn.hutool.core.util.StrUtil; import lombok.AllArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Service; /*** Author: wmh* Description: 验签校验* Date: 2023/8/3 18:24* Version: 1.0*/ Slf4j Order(1) Service public class AuthSignServiceImpl implements AuthService {/*** Description: 验证签名* Param authDTO: 网关上下文* return: Stirng* Author: wmh* Date: 2023/8/3 19:30*/OverrideSneakyThrowspublic Stirng apply(AuthDTO authDTO) {// 签名逻辑业务代码就不公开了return success;}}AuthFactory import cn.hutool.core.util.ObjectUtil; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component;import java.util.*;/*** Author: wmh* Description: 权限工厂* Date: 2023/8/7 15:54* Version: 1.0*/ Component public class AuthFactory implements ApplicationContextAware {/*** 过滤方式*/private ListAuthService authFilters new ArrayList();/*** 获取应用上下文并获取相应的接口实现类* param applicationContext* throws BeansException*/Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {// 获取实现类MapInteger, AuthService authServiceMap new HashMap();applicationContext.getBeansOfType(AuthService.class).values().stream().forEach(authService - {if (ObjectUtil.isNull(authService.getClass().getAnnotation(Order.class))) {authServiceMap.put(CommonConstant.DEFAULT_ORDER, authService);}else {authServiceMap.put(authService.getClass().getAnnotation(Order.class).value(), authService);}});// 根据order排序authServiceMap.entrySet().stream().sorted(Comparator.comparing(e - e.getKey())).forEach(map - {authFilters.add(map.getValue());});}/*** Description: 是否全部符合过滤条件* Param authDTO: 网关上下文* return: String* Author: wmh* Date: 2023/8/3 19:27*/public String apply(AuthDTO authDTO) {for (AuthService filter : authFilters) {String str filter.apply(authDTO);if (!StrUtil.equals(str, success)) {return str;}}return success;}}AuthDTO import lombok.Data; import org.springframework.http.HttpHeaders; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap;/*** Author: wmh* Description: 网关上下文* Date: 2023/8/3 19:09* Version: 1.0*/ Data public class AuthDTO {/*** cache headers*/private HttpHeaders headers;/*** cache json body*/private String cacheBody;/*** cache formdata*/private MultiValueMapString, String formData new LinkedMultiValueMap();}此类为gateway网关需要只展示使用过滤链的代码块 AuthGatewayFilterFactory /*** Author: wmh* Description: 权限校验过滤器* Date: 2023/8/3 19:15* Version: 1.0*/ Slf4j Component public class AuthGatewayFilterFactory extends AbstractGatewayFilterFactory {Autowiredprivate AuthFactory authFactory;Overridepublic GatewayFilter apply(Config config) {return (exchange, chain) - {ServerHttpRequest serverHttpRequest exchange.getRequest();...// 获取request bodyGatewayContext gatewayContext exchange.getAttribute(GatewayContext.CACHE_GATEWAY_CONTEXT);AuthDTO authDTO new AuthDTO();authDTO.setHeaders(gatewayContext.getHeaders());authDTO.setCacheBody(gatewayContext.getCacheBody());authDTO.setFormData(gatewayContext.getFormData());// 验证String strr authFactory.apply(authDTO);...return chain.filter(exchange);};}} Gateway相关SpringCloud-Gateway实现网关_springcloud配置网关_W_Meng_H的博客-CSDN博客网关作为流量的入口常用的功能包括路由转发、权限校验、限流等Spring Cloud 是Spring官方推出的第二代网关框架由WebFluxNettyReactor实现的响应式的API网关它不能在传统的servlet容器工作也不能构建war包。基于Filter的方式提供网关的基本功能例如说安全认证、监控、限流等。_springcloud配置网关https://blog.csdn.net/W_Meng_H/article/details/129775851 CommonConstant常量类 /*** Author: wmh* Description: 常用变量* Date: 2023/3/30 10:29* Version: 1.0*/ Component public class CommonConstant {// JWT密钥public static String JWT_TOKEN;// 请求头中的tokenpublic static final String X_TOKEN X-TOKEN;// 请求头中的签名public static final String X_SIGN X-SIGN;// 请求头中的appIdpublic static final String X_APPID X-APPID;// 请求头中的时间戳public static final String X_TIMESTAMP X-TIMESTAMP;}
http://wiki.neutronadmin.com/news/156115/

相关文章:

  • 莆田市城厢区建设局网站龙岩市住房和城乡建设局网站
  • 网站设置在设备之间共享什么意思网络营销的含义是什么
  • dedecms 安防监控行业网站模板发布信息的网站
  • 宁波网站制作计划wordpress 热门搜索
  • 网站数据分析国外优秀论文网站
  • 万站网自己怎么做微网站
  • 电子商务网站建设与管理公司 网站 方案
  • 怎么判断一个网站做的好不好专科函授网页设计实训报告
  • 网站模板修改软件寻找锦州网站建设
  • 网站设计标准字体wordpress关闭多站点
  • 四川网站建设设计科技类网站
  • 上海网站制作公司多少钱科丰化工东莞网站建设
  • php企业网站整站源码杂志社网站模板
  • 仙游网站建设广东富盈建设有限公司企业网站
  • 怎么用ftp管理网站html手机网站模板下载
  • 佛山网站建设技术托管wordpress 中文api
  • 东莞企业网站电话企业邮箱在哪查看
  • wordpress评论模板制作seo如何使用wordpress优化
  • 成都广告公司排行榜台州seo网站推广费用
  • 广东高端网站设计公司价格.net开发的网站 能做成app吗
  • 网站常用图标素材免费添加地图上的定位
  • 温州建站软件网站模板设计师要求
  • 网站步骤创建网站能赚钱吗
  • 十大网站排行榜西安网站建设联系方式
  • iis怎么使用来建设一个网站品牌推广包括哪些方面
  • wordpress站长地图公司内部网站创建
  • 内涵吧网站手机网站建设技术方案
  • 网站推广的方法是什么百度网址大全在哪里找
  • 联系客户做网站西安有哪些网站建设公司好
  • 东莞市建设公共交易中心网站鄂州网站建设与设计