默认情况下,服务端是没有检测客户端连接是否存活的。 如果因为网络抖动,客户端退出,此时客户端会向服务端发送一个Fin_wait2的消息。...但这个消息如果丢失,服务端将长期认为客户端“仍然存在”,即使此时客户端已经退出。...为了解决这个问题,grpc服务端在启动的时候,可以传入keepalive参数,原理是:每隔N秒ping客户端,当客户端无法ping通的时候,服务端会主动断开连接。...= nil { log.Fatalf("failed to serve: %v", err) } 上面的代码表明,每隔5s ping一次客户端,并且回包必须在1s内返回。否则连接将被回收。
主要采用intent意图匹配间接实现检测支付宝客户端是否安装,代码如下: public static boolean checkAliPayInstalled(Context context
strtolower($_SERVER['HTTP_USER_AGENT']))) { return true; } } //协议法,因为有可能不准确
Zoom是非常出色的视频会议平台,拿Zoom的web客户端和WebRTC对比似乎有失公允。重要的是,未来WebRTC还会不断做明智的改进。...文 / Philipp Hancke 译 / 龙艳 原文 https://webrtchacks.com/zoom-avoids-using-webrtc/ Zoom有一个Web客户端,允许参与者在不下载他们的...WASM文件似乎包含与Zooms本地客户端相同的编码器和解码器,这意味着网关不必进行转码。相反,它可能只是一个websocet-RTP中继,类似于转换服务器。编码的视频有时有些像素化。...虽然编码器的CPU使用率相当高(在640×360分辨率),但这可能并不重要,因为用户可能将问题归咎于Chrome,并在下次使用客户端。...Zoom网络客户端的总体设计强烈地提醒了我,在今年早些时候在斯德哥尔摩召开的工作组面对面会议上,Google的Peter Thatcher为WebRTC NV提出的建议。
目录 如何查看本地是否安装oracle 查看安装的Oracle客户端版本 如何查看本地是否安装oracle 随便一个oracle命令,例如imp,如果提示输入用户名,就表示安装了oracle ?...查看安装的Oracle客户端版本 如下所示,使用sqlplus -v命令,可以查到该客户端安装的 11.2.0.1.0的客户端版本。
Cookies Cookie 是由服务器发送或在客户端上设置的信息单位,保存在用户的本地浏览器上。它们会自动附加到每个请求上。...由于 HTTP 是无状态协议,因此 cookie 允许将信息存储在客户端上,以便将其他上下文数据传给该服务器。 Cookie 有一些标志,对于提高数据的安全性非常有用。 ...此外由于它们会自动附加到每个请求,因此使用 cookie 可以在服务器上确定用户是否经过身份验证。这对于服务器呈现的内容非常有用,例如你希望将未经过身份验证的用户重定向到登录页面。...要从服务器上给客户端设置 cookie,需要在 HTTP 响应中添加 Set-Cookie 标头。 Cookie 应采用 key=value 的格式。...虽然 cookie 通常处理 server/client 通信,但 Web Storage API 最适用于保存客户端数据。
今天朋友李俊在朋友圈的一则吐槽引发了我对移动资讯客户端的思考。 前几天有在媒体平台工作的朋友问我:为什么他们怎么努力都达不到今日头条如今的高度?...如果这个页面所属网站本身一直有很好的信用,它会有更好权重,反之则被降低权重。这套体系非常有效,确保了搜索引擎的体验。...如果我们只是基于用户阅读数,点击量这样的少数指标对一个内容进行是否受欢迎的判断,并不恰当,但如果能够引入“内容阅读时长”、“内容评论数量”、“内容分享次数”这些数据,并将这些行为相关的数据进行再度收集,...在这一点上,一点资讯的做法不失为一种比较好的尝试,除了用户点击、阅读时长、是否有收藏点赞分享这些纬度,还会更加依赖用户的主动兴趣表达,一点资讯在成立初期便把搜索引擎在底层技术架构融入到推荐引擎中,目前是唯一一款可以实现搜索任意关键词再订阅成为用户专属个性化频道的产品...然而,除此之外,资讯客户端是否可以考虑更多地利用人与人的关系?
而 Keycloak Admin Client正是对Keycloak Admin REST API的Java HTTP客户端封装。...所以我们在使用Keycloak Admin Client时要特别注意当前你使用的客户端是否有权限访问。接下来的例子就拿注册新用户为例来使用它。...Setting选项下打开Direct Access Grants Enabled,这意味着admin-cli客户端能够访问用户的用户名和密码,并以此从Keycloak服务器获取访问令牌,继而能够进行进一步的访问授权操作...开启服务账户功能 这样我们可以直接向Keycloak服务器获取realm-management的访问凭据,因为realm-management有全部的管理功能,所以我们可以以客户端的名义而非管理用户的名义创建新用户了...后面会有篇幅来对Keycloak中的管理角色进行一个简单的介绍,希望对Keycloak有兴趣的同学多多关注。
realm Keycloak领域名称,这是一个必须项。 resource 应用的client_id,Keycloak服务器上注册的每个客户端都有一个独一无二的标识。这是一个必须项。...realm-public-key PEM格式的realm公钥,不建议客户端配置。每次Keycloak Adapter会自动拉取它。...ssl-required Keycloak 服务器的通信使用HTTPS的范围,是可选的,有三个选项: external,默认值,表示外部的请求都必须使用HTTPS。...use-resource-role-mappings 如果设置为true, Keycloak Adapter将检查令牌携带的用户角色是否跟资源一致;否则会去查询realm中用户的角色。...public-client 设置为true则不需要为客户端配置密码,否则需要配置keycloak.credentials.secret。
auth_url let (url, csrf_token) = client // 参数是用于生成state的函数,这里用csrftoken,可以在auth callback中校验state参数是否合法..."https://www.googleapis.com/auth/userinfo.email".to_string(), )) // 需要显示OAuth需要授权的内容给用户来确认是否同意...不过这里拿到的是keycloak的token。要是需要google的token怎么办? 别急,有两种办法。...这样常规请求没问题了,只要你有keycloak access token, 就能换取到google access token来请求google api。so easy?!...有些场景是客户端需要自己通过google refresh token换取access token来发起请求的,难道这个时候客户端先去拿个keycloak access token么。。。?
WebSocket 客户端测试功能 websocket是有标准的通信协议,在h2engine服务器引擎中继承了websocket通信协议,使用websocket通信协议的好处是很多语言或框架都内置了...比如在逻辑开发过程中,有时候协议定好了,但是由于客户端还没有及时完成相应功能,那么如果有个模拟的客户端就会非常的方便,这个模拟的客户端只要能够收发协议就好。...websocket浏览器天然支持,所以用浏览器websocket实现模拟客户端非常的方便,使用的人直接省掉了按照客户端的麻烦,直接放到一个webserver上,所有人都能用。...与服务器通信实现 协议设计,websocket与h2engine服务器引擎通信,协议头的格式是cmd:协议号(整型)\n数据,这里参考了http头的协议设计,以\n区别协议头和协议体,协议头可以有多个参数...(); var reqMsg = 'cmd:' + cmdReq + '\n'+dataReq; ws.send(reqMsg); } WebSocket 基于浏览器实现的模拟客户端截图
之前在「趣谈前端」和大家分享了很多「可视化低代码」相关的技术分享和「前端工程化」的最佳实践, 今天和大家分享几个在「Windows」和「Mac」 下的最佳免费「FTP客户端」....「FTP客户端」 可以很轻松的可视化的管理我们服务器上的文件资源, 并且可以简单的将本地电脑的文件上传到服务器....如果你不太喜欢通过命令行的方式或者没有技术基础, 那么「FTP客户端」 将是个不错的选择. Windows下FTP客户端 1....WinSCP image.png 「WinSCP」是「Windows」上最好的免费FTP客户端。尽管它具有简单易用的特性,但它包含了一些高级功能,这些功能甚至可以满足最苛刻的FTP需求。...FileZilla image.png 「FileZilla」仍然是「Windows 10」最受欢迎的免费FTP客户端之一。
V站笔记 REMOTE_ADDR 是你的客户端跟你的服务器“握手”时候的IP。如果使用了“匿名代理”,REMOTE_ADDR将显示代理服务器的IP。...HTTP_VIA $_SERVER['REMOTE_ADDR']; //访问端(有可能是用户,有可能是代理的)IP $_SERVER['HTTP_CLIENT_IP']; //代理端的(有可能存在,可伪造...) $_SERVER['HTTP_X_FORWARDED_FOR']; //用户是在哪个IP使用的代理(有可能存在,也可以伪造) $_SERVER['HTTP_VIA'];//是否使用代理 代理服务器分为透明代理和匿名代理...透明代理会将客户端的请求IP包含在HTTP头中,具体就是$_SERVER['HTTP_X_FORWARDED_FOR']中匿名代理将客户端的IP隐藏起来,IP信息只能在$_SERVER['REMOTE_ADDR
(有需要带上刷新令牌)。...(A)客户端从用户获取用户名和密码; (B)客户端通过用户的用户名和密码访问认证服务器; (C)认证服务器返回访问令牌(有需要带上刷新令牌)。...密码模式体验 首先需要在Keycloak中创建客户端mall-tiny-keycloak; ? 然后创建一个角色mall-tiny; ? 然后将角色分配给macro用户; ?...由于我们的SpringBoot应用将运行在localhost:8088上面,我们需要对Keycloak的客户端的有效的重定向URI进行配置; ?...:8080/auth # 设置客户端ID resource: mall-tiny-keycloak # 设置为公开客户端,不需要秘钥即可访问 public-client: true
所以今天我要弄明白的是Keycloak中的Realm。 Realm Realm翻译成中文为领域。用来逻辑隔离一些特定空间,有点多租户的感觉,不同的Realm之间互相隔离,有各自的特色配置,互不影响。...我们可以这么定义一个名称为felord.cn的Realm,来管理该应用的角色、资源、和客户端,客户端开发可以专注于业务。...设置Realm管理账户 为前面我初始化的Realmfelord.cn创建独立的管理员账户有两种方式。...另一种方法是在felord.cn领域下建立一个用户,把其客户端realm-management的所有客户端角色赋予给该用户。...扩展 Keycloak Admin Client是通过API操作管理Realm的一个客户端工具,我在上一篇已经介绍过了。结合本篇的一些概念可能你会更加深刻的理解如果操作管理Realm。
.*)$" : "/api/$1" } } 上面包含的客户端配置属性都可以在Keycloak控制台进行配置,见下图: 配置Keycloak客户端属性 也就是说我们需要的json文件和图中的配置项是对应的...比较人性化的是我们不需要自行编写这个json文件,Keycloak提供了下载客户端配置的方法,这里我只使用了必要的配置项: 你可以下载客户端json配置 引入客户端配置 虽然顺利拿到json文件,但是加载这个...json配置却不太顺利,经过我的摸索需要实现一个KeycloakConfigResolver并注入Spring IoC,有下面两种实现方式。...# 客户端名称 resource: springboot-client # 声明这是一个公开的客户端,否则不能在keycloak外部环境使用,会403 public-client: true...总结 Keycloak整合Spring Security的要点这里需要再梳理一下。在原生情况下,客户端的配置、用户的信息、角色信息都由Keycloak负责;客户端只负责角色和资源的映射关系。
登录及身份认证是现代web应用最基本的功能之一,对于企业内部的系统,多个系统往往希望有一套SSO服务对企业用户的登录及身份认证进行统一的管理,提升用户同时使用多个系统的体验,Keycloak正是为此种场景而生...这里先只介绍4个最常用的核心概念: Users: 用户,使用并需要登录系统的对象 Roles: 角色,用来对用户的权限进行管理 Clients: 客户端,需要接入Keycloak并被Keycloak...创建Realm 创建一个新的realm: demo,后续所有的客户端、用户、角色等都在此realm中创建 ? ? ?...创建客户端 创建前端应用客户端 创建一个新的客户端:KeycloakAuthaspnet,Access Type选择confidential ?...关于客户端的访问类型(Access Type) 上面创建的客户端的访问类型分别是confidential,那么为什么分别选择这种类型,实际不同的访问类型有什么区别呢?
5.API Server 通过检查配置中引用的证书来确认 JWT 的签名是否合法。 6.API Server 检查 id_token 是否过期。...7.API Server 确认用户是否有操作资源的权限。 8.鉴权成功之后,API 服务器向 kubectl 返回响应。 9.kubectl 向用户返回结果。...客户端(clients):需要接入 Keycloak 实现用户认证的应用和服务。 用户(users):用户是能够登录到应用系统的实体,拥有相关的属性,例如电子邮件、用户名、地址、电话号码和生日等等。...6.3 创建 Client Client (客户端)是请求 Keycloak 对用户进行身份验证的客户端,在本示例场景中,API Server 相当于一个客户端,负责向 Keycloak 发起身份认证请求...kubectl get namespace --user tom --token= 9.3 方式三:使用 Kubelogin 前面介绍的方式一和方式二有一个缺点,那就是在令牌过期后需要手动获取新的令牌
Splunk 有文章介绍了这个客户端。...现在我们已经有了 LDAP 服务器,通过简单的测试,检查了我们保存在服务之中的数据。接下来就可以安装 KeyCloak 了。...实际上我们无需深入理解上面的内容,因为 OAuth2 Proxy 连接到了 Keycloak 进行实际的认证,并给 Nginx 提供了适用的端点,来检查用户是否登录。...OAuth2 Proxy 有一个 Keycloak Provider,但是这里我们会使用通用的 OIDC Provider。...创建 Keycloak 客户端应用 在 Keycloak 中创建一个新的客户端应用,ID 为 harbor,客户端协议为 openid-connect,并进行如下配置: Access Type:confidential
keycloak中的集群 我们知道,keycloak中有两种模式,一种叫做Standalone,一种叫做domain。...这两种模式的区别只是在于部署文件是否被集中管理,如果部署文件需要一个一个的手动拷贝,那么就是standalone模式。如果是一键化的自动安装,那么就是domain模式。...load balancing负载均衡 因为是集群结构,所以我们后端是有多台服务器的,那么用户通过客户端来访问我们服务的时候,究竟应该定位到哪一台服务器呢?...不管是哪种数据,都可以有集群模式,也就是多台服务器同时读写数据。这样对于共享的数据就涉及到了集群数据更新的问题。...集群数据的更新有两种更新模式: 一种是可靠优先,Active/Active mode,一个节点更新的数据会立马同步到另外一个节点。
领取专属 10元无门槛券
手把手带您无忧上云