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

西安做营销型网站建设公司网站建设找谁做

西安做营销型网站建设,公司网站建设找谁做,网站加载不出来是什么原因,大连建设工程信息网(官网)在现代微服务架构中#xff0c;网关扮演着非常重要的角色#xff0c;它是系统和外部世界之间的入口#xff0c;负责路由请求、流量控制以及安全保护等任务。其中#xff0c;网关鉴权是保障系统安全的重要环节之一。本文将深入介绍什么是网关鉴权#xff0c;以及如何通过过…在现代微服务架构中网关扮演着非常重要的角色它是系统和外部世界之间的入口负责路由请求、流量控制以及安全保护等任务。其中网关鉴权是保障系统安全的重要环节之一。本文将深入介绍什么是网关鉴权以及如何通过过滤器来实现网关鉴权同时探讨如何利用Spring Cloud Gateway来实现这一目标。 什么是网关鉴权 网关鉴权是指在请求到达系统之前对请求进行身份验证和授权的过程。通常包括两个主要方面 身份验证验证请求的发起者的身份是否合法通常涉及用户的认证确认其身份是否在系统中注册并且具有相应的权限。 授权确定请求发起者是否有权限访问所请求的资源即对请求进行权限验证保证用户只能访问其有权限的资源。 如何通过过滤器来实现网关鉴权 在Spring Cloud Gateway中可以通过自定义过滤器来实现网关鉴权。过滤器是一种处理HTTP请求的机制可以在请求到达网关之前或者之后执行一些操作。在网关鉴权中我们主要关注两种过滤器GlobalFilter和 GatewayFilter。 GlobalFilter全局过滤器它会在请求进入网关之后在路由之前执行。通常用于全局性的逻辑比如日志记录、全局异常处理等。在网关鉴权中可以利用全局过滤器进行统一的身份验证和权限检查。 Component public class AuthGlobalFilter implements GlobalFilter {Overridepublic MonoVoid filter(ServerWebExchange exchange, GatewayFilterChain chain) {// 在此处进行身份验证和权限检查逻辑// 如果身份验证失败或者权限不足则直接返回未授权的响应// 否则继续执行后续的过滤器和路由处理逻辑HttpHeaders headers exchange.getRequest().getHeaders();String token headers.getFirst(Authorization);if (token null || !token.equals(valid_token)) {exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);return exchange.getResponse().setComplete();}return chain.filter(exchange);} }GatewayFilter网关过滤器它可以在请求进入网关之后通过路由之后执行。每个路由可以有自己的一组过滤器。在网关鉴权中可以利用网关过滤器针对特定的路由进行定制化的鉴权逻辑。 Component public class AuthGatewayFilterFactory extends AbstractGatewayFilterFactoryAuthGatewayFilterFactory.Config {public AuthGatewayFilterFactory() {super(Config.class);}Overridepublic GatewayFilter apply(Config config) {return (exchange, chain) - {// 在此处进行定制化的鉴权逻辑// 可以根据请求信息和配置进行权限验证等操作// 如果鉴权失败则直接返回未授权的响应// 否则继续执行后续的过滤器和路由处理逻辑ServerHttpRequest request exchange.getRequest();String token request.getHeaders().getFirst(Authorization);if (token null || !token.equals(valid_token)) {exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);return exchange.getResponse().setComplete();}return chain.filter(exchange);};}public static class Config {// 可以在这里定义一些配置属性用于定制化过滤器的行为} }如何通过Spring Cloud Gateway来实现网关鉴权 Spring Cloud Gateway提供了丰富的功能和灵活的扩展机制使得网关鉴权变得简单而又强大。下面是一些实现网关鉴权的步骤 配置路由规则首先需要配置路由规则指定请求应该如何被路由到后端服务。 spring:cloud:gateway:routes:- id: service-routeuri: http://localhost:8081predicates:- Path/service/**filters:- name: Authargs:config:# 可以在这里配置过滤器的行为在这个示例中我们配置了一个名为service-route的路由将所有路径以/service/开头的请求路由到http://localhost:8081这个后端服务。并且我们通过filters属性指定了名为Auth的过滤器这个过滤器会应用到该路由上并使用默认的配置。 编写过滤器根据需要编写全局过滤器和网关过滤器来实现网关鉴权逻辑。 // 全局过滤器 Component public class AuthGlobalFilter implements GlobalFilter {Overridepublic MonoVoid filter(ServerWebExchange exchange, GatewayFilterChain chain) {// 在此处进行身份验证和权限检查逻辑// 如果身份验证失败或者权限不足则直接返回未授权的响应// 否则继续执行后续的过滤器和路由处理逻辑HttpHeaders headers exchange.getRequest().getHeaders();String token headers.getFirst(Authorization);if (token null || !token.equals(valid_token)) {exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);return exchange.getResponse().setComplete();}return chain.filter(exchange);} }// 网关过滤器 Component public class AuthGatewayFilterFactory extends AbstractGatewayFilterFactoryAuthGatewayFilterFactory.Config {public AuthGatewayFilterFactory() {super(Config.class);}Overridepublic GatewayFilter apply(Config config) {return (exchange, chain) - {// 在此处进行定制化的鉴权逻辑// 可以根据请求信息和配置进行权限验证等操作// 如果鉴权失败则直接返回未授权的响应// 否则继续执行后续的过滤器和路由处理逻辑ServerHttpRequest request exchange.getRequest();String token request.getHeaders().getFirst(Authorization);if (token null || !token.equals(valid_token)) {exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);return exchange.getResponse().setComplete();}return chain.filter(exchange);};}public static class Config {// 可以在这里定义一些配置属性用于定制化过滤器的行为} }在这个示例中我们编写了一个全局过滤器AuthGlobalFilter和一个网关过滤器AuthGatewayFilterFactory它们分别实现了网关鉴权的逻辑。 注册过滤器SpringBoot应用会自动扫描Component注解将其注册为 Spring Bean因此不需要额外的注册步骤。这意味着上面的过滤器会在应用启动时自动注册到Spring Cloud Gateway中。启动应用程序在SpringBoot应用中启动应用程序非常简单只需要运行主应用程序类即可。 SpringBootApplication public class GatewayApplication {public static void main(String[] args) {SpringApplication.run(GatewayApplication.class, args);} }通过这些步骤我们可以简单实现网关鉴权功能并确保其在Spring Cloud Gateway中生效。 GlobalFilter 是什么 GlobalFilter是Spring Cloud Gateway中的一个全局过滤器接口用于处理所有进入网关的请求。全局过滤器在请求进入网关之后在路由之前执行因此可以对所有的请求进行统一的处理如日志记录、认证、权限校验等。 import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.core.Ordered; import org.springframework.stereotype.Component; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono;Component public class LoggingGlobalFilter implements GlobalFilter, Ordered {Overridepublic MonoVoid filter(ServerWebExchange exchange, GatewayFilterChain chain) {// 获取请求信息并进行日志记录System.out.println(Request Path: exchange.getRequest().getPath());return chain.filter(exchange);}Overridepublic int getOrder() {return -1; // 设置过滤器的执行顺序负数代表早于默认的过滤器执行} }在这个示例中我们创建了一个名为LoggingGlobalFilter的全局过滤器它实现了GlobalFilter接口。在filter方法中我们获取了请求的路径并记录日志然后调用了chain.filter(exchange)方法以便请求继续执行后续的过滤器和路由处理逻辑。通过getOrder方法我们设置了过滤器的执行顺序使其早于默认的过滤器执行。 GatewayFilter 是什么 GatewayFilter是Spring Cloud Gateway中的一个网关过滤器接口用于对特定的路由进行定制化的处理。每个路由可以配置一组网关过滤器用于对请求进行特定的处理如认证、鉴权、请求修改等。 import org.springframework.cloud.gateway.filter.GatewayFilter; import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Component; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono;Component public class AuthGatewayFilterFactory extends AbstractGatewayFilterFactoryAuthGatewayFilterFactory.Config {public AuthGatewayFilterFactory() {super(Config.class);}Overridepublic GatewayFilter apply(Config config) {return (exchange, chain) - {// 在此处进行鉴权逻辑if (!isAuthorized(exchange)) {exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);return exchange.getResponse().setComplete();}return chain.filter(exchange);};}private boolean isAuthorized(ServerWebExchange exchange) {// 在这里进行鉴权逻辑判断请求是否合法// 如果合法返回true否则返回falsereturn true;}public static class Config {// 可以在这里定义一些配置属性用于定制化过滤器的行为} }在这个示例中我们创建了一个名为AuthGatewayFilterFactory的网关过滤器它继承自AbstractGatewayFilterFactoryAuthGatewayFilterFactory.Config类并实现了apply方法。在apply方法中我们进行了鉴权逻辑的处理如果请求不合法则返回未授权的响应否则调用chain.filter(exchange)方法继续执行后续的过滤器和路由处理逻辑。通过Config类我们可以定义一些配置属性用于定制化过滤器的行为。 综上所述通过Spring Cloud Gateway提供的过滤器机制我们可以轻松实现灵活而强大的网关鉴权功能确保系统的安全性和可靠性。
http://www.pierceye.com/news/729292/

相关文章:

  • 织梦做网站被告全椒网站建设
  • 安卓网站开发平台互联网工具型网站
  • 如何建设国外的网站联盟营销网站有哪些
  • 微信怎么创建微信公众号seo应该如何做
  • 北京php网站制作网站群建设思路
  • 企业建设网站的必要性小程序平台介绍怎么写
  • 网站界面设计应该遵循的原则贵州省住房和城乡建设厅网站报名网
  • 南昌建设医院官方网站国外做外链常用的网站
  • 淘宝店采用哪些方法做网站推广专门做网站的软件
  • 网站的ftp怎么查中国视觉设计网
  • 商城网站流量wordpress安装后做什么
  • 自己建网站要花多少钱wordpress采集发布接口
  • 个人网站做交易类的赚钱吗达人室内设计网论坛
  • 网站后台使用培训怎么样做微信公众号
  • 北京望京企业网站建设八佰yy影视
  • 在百度上做个网站需要多少钱创易网络
  • 网站建设神器帮人做网站犯法
  • 企业网站的特点是小程序开发文档微信小程序
  • 哈尔滨 建网站mvc做的网站如何发布访问
  • 江苏盐城网站开发百度快照首页
  • 中职网站建设课件青岛网站制作
  • 效果最好h5制作软件seo整站优化技术培训
  • 中国建设银行积分换购网站网站开发培训哪个好
  • 张家港网站建设培训wordpress电子报
  • 用dw制作学校网站教程网站优化排名方案
  • 手机图片网站模板工商营业执照网上申报
  • 网站建立的方式是什么网络推广培训哪里的
  • vue做网站首页做网站 上海
  • 建设一个商务网站的步骤做网站购买空间多少钱
  • 哈尔滨网站制作注册公司有什么风险