SSO单点登录 - 多系统,单一位置登录,实现多系统同时登录 学习笔记
(1)单点登录
多系统的前提下,单一位置的登录,会实现多系统同时登录的一种技术。
常出现在互联网应用和企业级平台中
如:京东
单点登录一般是用于互相授信的系统,实现单一位置登录,全系统有效的。
注意:三方登录:某系统使用其他系统的用户实现本系统登录的方式。这不是单点登录,是解决信息孤岛和用户不对等的实现方案。
(2)Session跨域
所谓Session跨域就是摒弃了系统(tomcat)提供的Session,而使用自定义的类似 Session 的机制来保存客户端数据的一种解决方案。
如:通过设置 cookie 的 domain 来实现 cookie 的跨域传递。在 cookie 中传递一个自定义 的 session_id。这个 session_id 是客户端的唯一标记。将这个标记作为 key,将客户端需要保存的数据作为 value,在服务端进行保存(数据库保存或 NoSQL 保存)。这种机制就是 Session 的跨域解决。
什么是跨域:客户端请求的时候,请求的服务器,不是同一个IP,端口,域名,主机号的时候,都称跨域。
什么是域:在应用模型中,一个完整的,有独立访问路径的功能集合称为一个域。如:百度称为一个应用或系统。百度下有若干的域,如搜索引擎(www.baidu.com),百度贴吧(tie.baidu.com),百度知道(zhidao.baidu.com),百度地图(map.baidu.com)等。域信息,有时也称为多级域名。域的划分:以IP,端口,域名,主机名为标准实现划分。
(3)Spring Session共享(了解即可)
spring-session 技术是 spring 提供的用于处理集群会话共享的解决方案。spring-session 技术是将用户 session 数据保存到三方存储容器中,如:mysql,redis 等。
Spring-session 技术是解决同域名下的多服务器集群 session 共享问题的。不能解决跨域 session 共享
使用:配置一个Spring提供的Filter,实现数据的拦截保存,并转换为Spring-session需要的会话对象。必须提供一个数据库的表格信息(由Spring-session提供)。
(4)Nginx Session共享(了解即可)
正向代理:对客户端已知,对服务端透明的代理应用,称为正向代理。如:翻墙软件。
反向代理:对服务端已知,对客户端透明的代理应用,称为反向代理。如:nginx。
nginx:做反向代理服务器,可以为反向代理的服务器集群做集群管理和负载均衡。
Nginx服务器一旦安装,一般提供7*24小时服务。建议安装在服务器中(如:Unix、Linux)
Nginx是一个C语言开发的应用服务器。可以提供的服务有:静态WEB服务,邮件代理服务器,反向代理服务器。
Nginx应用体积非常的小,对CPU和内存的要求也很低。且对负载能力有非常好的体现。核心功能是应用自主开发,很多的附属功能都是借助其它的应用实现的。如:SSL协议的解析-opensll,perl库(正则)的解析-perl包实现。
nginx 中的 ip_hash 技术能够将某个 ip 的请求定向到同一台后端,这样一来这个 ip 下的 某个客户端和某个后端就能建立起稳固的 session,ip_hash 是在 upstream 配置中定义的,具 体如下:
upstream nginx.example.com
{server 127.0.0.1:8080;server 127.0.0.1:808;ip_hash;
}
server
{listen 80;location /{proxy_passhttp://nginx.example.com;proxy_set_header Host $http_host;proxy_set_header Cookie $http_cookie;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;
client_max_body_size 100m;}
}
ip_hash 是容易理解的,但是因为仅仅能用 ip 这个因子来分配后端,因此 ip_hash 是有 缺陷的,不能在一些情况下使用:
nginx 不是最前端的服务器。
ip_hash 要求 nginx 一定是最前端的服务器,否则 nginx 得不到正确 ip,就不能根据 ip 作 hash。譬如使用的是 squid 为最前端,那么 nginx 取 ip 时只能得到 squid 的服务器 ip 地址, 用这个地址来作分流是肯定错乱的。
nginx 的后端还有其它方式的负载均衡。
假如 nginx 后端又有其它负载均衡,将请求又通过另外的方式分流了,那么某个客户端 的请求肯定不能定位到同一台 session 应用服务器上。
(5)token机制(最常用)
1>传统身份认证
HTTP 是一种没有状态的协议,也就是它并不知道是谁是访问应用。这里我们把用户看成是客户端,客户端使用用户名和密码通过了身份验证,不过下回这个客户端再发送请求时候,还得再验证一下。
解决的方法就是,当用户请求登录的时候,如果没有问题,我们在服务端生成一条记录, 这个记录里可以说明一下登录的用户是谁,然后把这条记录的 ID 号发送给客户端,客户端 收到以后把这个 ID 号存储在 Cookie 里,下次这个用户再向服务端发送请求的时候,可以带着这个 Cookie ,这样服务端会验证一个这个Cookie 里的信息,看看能不能在服务端这 里找到对应的记录,如果可以,说明用户已经通过了身份验证,就把用户请求的数据返回给 客户端。
上面说的就是 Session,我们需要在服务端存储为登录的用户生成的 Session ,这些 Session 可能会存储在内存,磁盘,或者数据库里。我们可能需要在服务端定期的去清理过期的 Session 。
这种认证中出现的问题是:
Session:每次认证用户发起请求时,服务器需要去创建一个记录来存储信息。当越来越多的用户发请求时,内存的开销也会不断增加。
可扩展性:在服务端的内存中使用 Session 存储登录信息,伴随而来的是可扩展性问题。
CORS(跨域资源共享):当我们需要让数据跨多台移动设备上使用时,跨域资源的共享会 是一个让人头疼的问题。在使用 Ajax 抓取另一个域的资源,就可以会出现禁止请求的情况。
CSRF(跨站请求伪造):用户在访问银行网站时,他们很容易受到跨站请求伪造的攻击, 并且能够被利用其访问其他的网站。
在这些问题中,可扩展性是最突出的。因此我们有必要去寻求一种更有行之有效的方法。
2>Token身份认证
使用基于 Token 的身份验证方法,在服务端不需要存储用户的登录记录。大概的流程是这样的:
客户端使用用户名、密码请求登录
服务端收到请求,去验证用户名、密码
验证成功后,服务端会签发一个Token,再把这个Token 发送给客户端
客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local Storage 里
客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据
使用 Token 验证的优势:
无状态、可扩展
在客户端存储的 Tokens 是无状态的,并且能够被扩展。基于这种无状态和不存储 Session 信息,负载均衡器能够将用户信息从一个服务传到其他服务器上。
安全性
请求中发送 token 而不再是发送 cookie 能够防止 CSRF(跨站请求伪造)。即使在客户端使用 cookie 存储 token,cookie 也仅仅是一个存储机制而不是用于认证。不将信息存储在 Session 中,让我们少了对 session 操作。
(6)Json Web Token(JWT)机制(广泛使用)
JWT 是一种紧凑且自包含的,用于在多方传递 JSON 对象的技术。传递的数据可以使用 数字签名增加其安全性。可以使用 HMAC 加密算法或 RSA 公钥/私钥加密方式,即对称加密和非对称加密。
紧凑:数据小,可以通过 URL,POST 参数,请求头发送。且数据小代表传输速度快。
自包含:使用 payload 数据块记录用户必要且不隐私的数据,可以有效的减少数据库访问次数,提高代码性能。
JWT 一般用于处理用户身份验证或数据信息交换。
用户身份验证:一旦用户登录,每个后续请求都将包含 JWT,允许用户访问该令牌允许的路由,服务和资源。单点登录是当今广泛使用 JWT 的一项功能,因为它的开销很小,并且能够轻松地跨不同域使用。
数据信息交换:JWT 是一种非常方便的多方传递数据的载体,因为其可以使用数据签名来保证数据的有效性和安全性。
1.JWT数据结构
JWT 的数据结构是 : A.B.C。 由字符点 ‘ . ’ 来分隔三部分数据。
A - header 头信息
B - payload (有效荷载,用户的非隐私数据,减少数据库访问)
C - Signature 签名(安全性保证)
1.1header
数据结构: {“alg”: “加密算法名称”, “typ” : “JWT”}
alg 是加密算法定义内容,如:HMAC SHA256 或 RSA
typ 是 token 类型,这里固定为 JWT
1.2payload
可省略,但可省略的仅仅是数据,也就是说它一定有只是可以为空。
在 payload 数据块中一般用于记录实体(通常为用户信息)或其他数据的。主要分为三个部分,分别是:已注册信息(registered claims),公开数据(public claims),私有数据(private claims)。
payload 中常用信息有:iss(发行者),exp(到期时间),sub(主题),aud(受众)等。 前面列举的都是已注册信息。
公开数据部分一般都会在 JWT 注册表中增加定义。避免和已注册信息冲突。
公开数据和私有数据可以由程序员任意定义。
注意:即使 JWT 有签名加密机制,但是 payload 内容都是明文记录,除非记录的是加密数据,否则不排除泄露隐私数据的可能。不推荐在 payload 中记录任何敏感数据。
1.3Signature
签名信息。这是一个由开发者提供的信息。是服务器验证的传递的数据是否有效安全的标准。在生成 JWT 最终数据的之前。先使用 header 中定义的加密算法,将 header 和 payload进行加密,并使用点进行连接。如:加密后的head.加密后的 payload。再使用相同的加密算法,对加密后的数据和签名信息进行加密。得到最终结果。
((A加密).(B加密))加密 —>C
2.JWT执行流程
借助浏览器,否则JWT流程难以实现。
(7)基于JWT机制的单点登录
1.实现
https://blog.csdn.net/weixin_51304175/article/details/123964266
重新生成token,就是为了更新token的有效期。
2.注意
使用 JWT 实现单点登录时,需要注意 token 时效性。token 是保存在客户端的令牌数据, 如果永久有效,则有被劫持的可能。token 在设计的时候,可以考虑一次性有效或一段时间内有效。如果设置有效时长,则需要考虑是否需要刷新 token 有效期问题。
3.token保存位置
使用 JWT 技术生成的 token,客户端在保存的时候可以考虑 cookie 或 localStorage。cookie 保存方式,可以实现跨域传递数据,但可能会被劫持。localStorage 是域私有的本地存储,无法实现跨域。
4.webstorage
webstorage 可保存的数据容量为 5M。且只能存储字符串数
webstorage 分为 localStorage 和 sessionStorage。
localStorage 的生命周期是永久的,关闭页面或浏览器之后 localStorage 中的数据也不会 消失。localStorage 除非主动删除数据,否则数据永远不会消失。
sessionStorage 是会话相关的本地存储单元,生命周期是在仅在当前会话下有效。 sessionStorage 引入了一个“浏览器窗口”的概念,sessionStorage 是在同源的窗口中始终存在 的数据。只要这个浏览器窗口没有关闭,即使刷新页面或者进入同源另一个页面,数据依然存在。但是 sessionStorage 在关闭了浏览器窗口后就会被销毁。同时独立的打开同一个窗口 同一个页面,sessionStorage 也是不一样的。
(8)Restful接口设计
1.Rest 简述
REST(英文:Representational State Transfer,简称 REST)描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。在目前主流的三种 Web 服务交互方案中,REST 相比于 SOAP(Simple Object Access protocol,简单对象访问协议)以及 XML-RPC 更加简单明了,无论是对 URL 的 处理还是对 Payload 的编码,REST 都倾向于用更加简单轻量的方法设计和实现。值得注意的 是 REST 并没有一个明确的标准,而更像是一种设计的风格。
2.Restful 简述
对应的中文是 rest 式的;Restful web service 是一种常见的 rest 的应用,是遵守了 rest 风格的 web 服务;rest 式的 web 服务是一种 ROA(The Resource-Oriented Architecture)(面向服务资源的架构).
3.Restful 特性
3.1普通架构
每次请求的接口或者地址,都在做描述,例如查询的时候用了 query,新增的时候用了 save。如:
http://127.0.0.1/user/query/1 GET 根据用户 id 查询用户数据
http://127.0.0.1/user/save POST 新增用户
3.2Restful 架构
使用 get 请求,就是查询.使用 post 请求,就是新增的请求,意图明显,没有必要做描述, 这就是 restful。
http://127.0.0.1/user/1 GET 根据用户 id 查询用户数据
http://127.0.0.1/user POST 新增用户
3.3Restful 操作方式
幂等性:多次访问,结果资源状态是否相同
安全:访问是否会变更服务器资源状态
3.4响应状态码
4.SpringMVC 使用 Restful 实例
略
(9)接口安全机制
在对外发布服务接口的时候,定制一套签名机制,保证数据传递有效性的。
1.DES加密
2.AES加密
相关文章:
SSO单点登录 - 多系统,单一位置登录,实现多系统同时登录 学习笔记
(1)单点登录 多系统的前提下,单一位置的登录,会实现多系统同时登录的一种技术。 常出现在互联网应用和企业级平台中 如:京东 单点登录一般是用于互相授信的系统,实现单一位置登录,全系统有效的。 注意:…...
图解LeetCode——剑指 Offer 32 - III. 从上到下打印二叉树 III
一、题目 请实现一个函数按照之字形顺序打印二叉树,即:第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 二、示例 2.1> 示例1 提示: …...
【快排与归并排序算法】
作者:指针不指南吗 专栏:算法篇 🐾或许会很慢,但是不可以停下🐾 文章目录一、快速排序 ( Quick Sort )二、归并排序 ( Merge Sort )总结一、快速排序 ( Quick Sort ) 1.思路 找出一个分界点,随机的调整区间…...
面试官问我:说说你对JMM内存模型的理解?为什么需要JMM?
点个关注,必回关 随着CPU和内存的发展速度差异的问题,导致CPU的速度远快于内存,所以现在的CPU加入了高速 缓存,高速缓存一般可以分为L1、L2、L3三级缓存。基于上面的例子我们知道了这导致了缓存一致 性的问题,所以加入…...
工程管理系统源码之提高工程项目管理软件的效率
高效的工程项目管理软件不仅能够提高效率还应可以帮你节省成本提升利润 在工程行业中,管理不畅以及不良的项目执行,往往会导致项目延期、成本上升、回款拖后,最终导致项目整体盈利下降。企企管理云业财一体化的项目管理系统,确保…...
SpringBoot集成xxl-job实现
SpringBoot集成xxl-job实现 一、xxl-job介绍 xxl-job是一个分布式任务调度平台,核心设计目标是开发迅速、学习简单、轻量级、易扩展。源码:下载地址编译环境:Maven3、Jdk1.8、MySQL5.7 二、调度中心 初始化调度数据库,执行指定…...
欧几里得度量和余弦度量的可取消生物识别方案
欧几里得度量和余弦度量的可取消生物识别方案 便捷的生物识别数据是一把双刃剑,在为生物识别认证系统的繁荣铺平道路的同时,也带来了个人隐私问题。为了缓解这种担忧,提出了各种生物特征模板保护方案来保护生物特征模板免于信息泄露。现有提案…...
平板作为主机扩展屏的实现
网上有许多教程使用平板作为电脑的拓展屏,但是多数都是需要在电脑和平板上都装上服务器和客户端的软件才行,而且有些系统还没有对应的软件。 那有没有一种方法只需要在主机上运行一个软件,而平板上只需要扫个码就行呢? 答案是当然…...
HTTP和HTTPS有什么区别?如何实现网站的HTTPS?
细心的朋友会发现,我们在浏览网站时,有的网址以http开头,而有的网站却以https开头,那这两者之间有什么区别吗?http的网站如何能变成https呢?本文中科三方针对这个问题做下简单介绍。 什么是http࿱…...
Rockstar Games遭黑客攻击,《侠盗猎车手6》90个开发视频外泄
当地时间9月19日,视频游戏开发商Rockstar Games证实,其 热门游戏《侠盗猎车手6》(Grand Theft Auto)开发片段遭到黑客大规模窃取 ,这一泄露事件立即在游戏圈迅速传播。 据报道, 上周末黑客至少泄露了90个游…...
RabbitMQ-客户端源码之AMQPImpl+Method
AMQPImpl类包括AMQP接口(public class AMQImpl implements AMQP)主要囊括了AMQP协议中的通信帧的类别。 这里以Connection.Start帧做一个例子。 public static class Connection {public static final int INDEX 10;public static class Startextends…...
雅思经验(7)
我发现雅思阅读要命的不是难度,而是时间的把控。考试时间是总共一小时,但是要写三篇文章,之后总共40道题目,也就是说每篇文章平均是13.3道。但是他们很多人说,如果誊写答案需要花掉3、4分钟每篇,也就是说真…...
Ubuntu20.04 用 `hwclock` 或 `timedatectl` 设置RTC硬件时钟为本地时区
Ubuntu20.04用 hwclock 或 timedatectl 设置硬件时区为本地时区 可以用hwclock命令 sudo hwclock --localtime --systohc👆效果等同👇 , --localtime的简写是-l ; --systohc的简写是-w sudo hwclock -l -w也可以用timedatectl命令 👆效果等…...
大学物理·第15章【量子物理】
黑体 斯特藩玻耳兹曼定律 维恩定律 光电效应 在光照射下 ,电子从金属表面逸出的现象,叫光电效应. 逸出的电子,叫光电子 经典理论: 光电流值与入射光强成正比截止频率(红限)v0对某种金属来说,只有…...
2010-2019年290个地级市经济发展与城市绿化数据
2010-2019年290个地级市经济发展与城市绿化数据 1、时间:2010-2019年 2、来源:城市统计NJ,缺失情况与NJ一致 3、范围:290个地级市 4、指标: 综合经济:地区生产总值、人均地区生产总值、地区生产总值增…...
【CSS 布局】-多列布局
一、两列布局 两列布局:一列定宽(也有可能由子元素决定宽度),一列自适应的布局。 创建一个父盒子,和子盒子 <div class"container clearfix"><div class"left ">定宽</div><div class"right…...
从C语言向C++过渡
文章目录前言1.命名空间1.域的概念2.命名空间的使用2.C输入&输出3.缺省参数1.概念2.分类3.注意事项4.函数重载5.引用1.概念2.使用注意事项3.引用使用场景4.指针和引用的区别6.内联函数7.auto关键字8.nullptr前言 C被成为带类的C,本文由C语言向C过度,将会初步介…...
Matter 研讨会回顾(第三期)|乐鑫 Matter 免开发方案与证书服务介绍
1 月 17 日,乐鑫举办了以“乐鑫 Matter 免开发方案与证书服务介绍”为主题的第三期 Matter 线上研讨会,介绍乐鑫开箱即用的 ESP-ZeroCode 模组及其免开发 Matter 方案,以及证书生成和预配置相关服务。欢迎观看研讨会的视频回放了解详情。&…...
函数栈帧的创建和销毁——“C”
各位CSDN的uu们你们好呀,今天小雅兰来为大家介绍一个知识点——函数栈帧的创建和销毁。其实这个知识点,我们很早之前就要讲,但是因为我的一系列原因,才一直拖到了现在,那么,话不多说,让我们一起…...
腾讯云对象存储+企业网盘 打通数据链“最后一公里
对云厂商和企业用户来说,随着数据规模的快速增长,企业除了对存储功能和性能的要求不断增加,也越来越注重数据分发的效率。在传统数据分发的过程中,数据管理员往往需要先在存储桶下载对应的客户方案/交付资料,再使用微信…...
在浏览器输入url到发起http请求,这过程发生了什么
当用户输入url,操作系统会将输入事件传递到浏览器中,在这过程中,浏览器可能会做一些预处理,比如 Chrome 会根据历史统计来预估所输入字符对应的网站,例如输入goog,根据之前的历史发现 90% 的概率会访问「ww…...
PyTorch学习笔记:nn.ReLU——ReLU激活函数
PyTorch学习笔记:nn.ReLU——ReLU激活函数 torch.nn.ReLU(inplaceFalse)功能:逐元素应用ReLU函数对数据进行激活 函数方程: ReLU(x)(x)max(0,x)ReLU(x)(x)^\max(0,x) ReLU(x)(x)max(0,x) 输入: inplace:是否改变输…...
同步线程
↵ 由于这节内容资料比较少,所以以下内容总结自Qt官方文献,在文章最后会给出相应链接。 线程的目的是允许并行运行,但有时线程必须停止等待其他线程。例如,如果两个线程尝试访问同一个变量,这样的话结果是未定义的。强…...
服务端返回内容跨域CORS之后,也在chrome/edge浏览器里显示出响应信息
由于浏览器的同源策略,服务端返回的内容跨域,且没有允许跨域CORS的请求头之后,浏览器无法显示出服务端返回的信息,不方便问题排查。比如:Access to XMLHttpRequest at http://localhost:6001/service-app/query/common…...
DHCP中继及配置
为什么需要DHCP Relay?产生背景解决方案DHCP Relay工作原理DHCP Relay配置实现产生背景 随着网络规模的扩大,网络中就会出现用户处于不同网段的情况。 这个时候客户A和客户B要请求IP地址时,首先会发送DHCP Discover广播包,这个广…...
中国社科院与美国杜兰大学金融管理硕士,让我们相遇在春暖花开时
在芸芸众生中,能拥有志同道合的朋友是一件多么幸运的事。人们常说:你是谁,就会遇见谁。走过半生才知道,看似命中注定的遇见谁、发生的事,其实都取决于自己。只有自己足够优秀,才能遇到更优秀的别人。在这个…...
MySQL---单表查询、多表查询
一、单表查询 素材: 表名:worker-- 表中字段均为中文,比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 v…...
3年自动化测试这水平?我还不如去招应届生
公司前段缺人,也面了不少测试,结果竟然没有一个合适的。一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在10-20k,面试的人很多,但平均水平很让人失望。看简历很多都是3年工作经验,但面试…...
5 个自定义 React Hooks 将改变你的代码
昨天完成我的每日文章(是的,我每天都会发布一篇关于前端开发的新文章,所以如果你想要每天的代码丸,请务必关注 😉),我去编码了一点......我开始为我正在构建的副项目编写一些自定义挂钩…...
Java学习笔记-03(API阶段)
前言 目前我们看到的是Java基础部分的一个新的部分API,这是个啥,又能做啥呢? 其实可以概括成一句话:帮助我们站在巨人的肩膀上,实现更加高效的开发,那么我们来一探究竟吧~ API API(Application Programming Interface,应用程序接口)是一些预…...
做网站外包哪家好/网络营销类型有哪些
前言安全保护几乎对于所有的项目都是一个挑战,对于物联网项目更是如,自普及应用以来物联网业内已经发生过多起安全事故。作为物联网通信协议事实标准,MQTT 保持着较高的安全性,提供了多层次的安全设计:传输层ÿ…...
武汉平价做网站/合肥seo推广公司哪家好
对于你在这里所做的事情,使用反射似乎不是一个好的设计.最好使用Map< String,Integer>例如:static final Map VALUES_BY_NAME;static {final Map valuesByName new HashMap<>();valuesByName.put("width", 5);valuesByName.put("potato…...
制作网页和做网站是一个意思吗/网站查询服务器
本文欢迎转载,转载请注明出处和作者。由于各种监控系统的实时告警,都需要使用邮箱进行发送,而其中使用SMTP协议的邮箱,各种监控系统、ITSM系统等支持最广泛。为测试监控系统的告警功能,需要先搭建1个SMTP邮箱。实验环境…...
电子商务网站建设的结论/淘宝指数查询官网
1、按本站或各区域城市组织各位妈妈们在网站以宝宝照片经验交流形式SHOW自己可爱的宝宝,可按月、季、年设擂台,当然各擂主要设奖品:),奖品以后可由各赞助商提供; 2、宝宝SHOW分类: 2.1、【Bab…...
网站建设赚钱么/网站备案是什么意思
此文转载自:https://blog.csdn.net/vivid117/article/details/110871426#commentBoxAMBA总线协议(六)—— 一文看懂 AXI3 协议 原子访问 2 AMBA总线协议(一)—— 一文看懂APB总线协议AMBA总线协议(二)—— 一文看懂AMBA2 AHB2与AMBA3 AHB-Lite总线协议的区别AMBA总线…...
网站建设 网页设计需要技能/南京百度seo排名
2019独角兽企业重金招聘Python工程师标准>>> 开启防火墙端口 firewall-cmd --zonepublic --add-port21/tcp --permanent firewall-cmd --zonepublic --add-port10060-10090/tcp --permanent 重启防火墙 systemctl restart firewalld.service 关闭selinux vi /etc/se…...