自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

成长的足迹

见证个人成长,分享技术经验

  • 博客(416)
  • 资源 (2)
  • 收藏
  • 关注

原创 JWT详解

JWT (Json Web Token)是符合RFC 7519标准的、能够以URL安全的方式交换压缩的JSON对象。相对于使用XML格式的SAML,JWT使用JSON格式,数据压缩效率更高。相对于SWT只能使用对称加密的签名,JWT使用公钥/私钥和X.509证书更安全。JWT主要用于认证,使得服务端能够直接验证用户身份而无需存储会话数据,是无状态应用的理想选择。

2026-05-11 17:15:00 288

原创 Kiro CLI调用MCP servers

Model Context Protocol (MCP)是一个开源标准,让AI应用(如Kiro CLI)能够访问外部系统的数据或工具。MCP servers大致可以分为本地MCP servers和远程MCP servers。本地MCP servers需要首先在本地安装,然后注册。远程MCP servers直接注册。

2026-04-30 23:15:00 241

原创 自动化Pipeline中的Kiro CLI详解

Kiro chat提供了一种称为“Headless mode”的运行模式。这是一种无交互方式运行Kiro CLI,可以在自动化Pipeline和脚本中运行Kiro CLI以实现自动化的code review,troubleshoot等。

2026-04-30 17:21:35 246

原创 Kiro Agent的Hooks详解

Agent Hooks

2026-04-29 17:22:04 259

原创 Kiro Agent的Skills详解

该文件包含必要的元数据,如name, description等,以及一些具体instructions,以指导AI Agent实现具体的任务。Skills可以为AI Agent提供真正执行具体任务所需的过程知识和context,AI Agent可以根据需要随时加载Skills,从而拥有相关的领域知识、可稳定重复的工作流程等。相对于MCP,Skills是一种轻量级的、标准化的AI Agent扩展包,定义具体的领域知识和流程以扩展AI Agent的功能。

2026-04-28 17:35:31 339

原创 Kiro的定制Agent详解

默认情况下使用kiro_default,想获取更多关于Kiro的帮助信息可以切换到kiro_help,做项目需求、规划、设计和实现时使用kiro_planner。当然,我们也可以根据项目开发的实际情况创建自己的Agents,通过一组配置为项目定制Kiro的行为,避免重复的访问授权和冗余的Context设置。

2026-04-27 20:00:00 664

原创 Kiro的Steering文件详解

1. 定义基础性的公共Steeringproduct.md定义产品的实现目标、目标用户、关键特性和业务目标。tech.md说明选择的软件框架、类库、开发工具和技术条件,规范后续的开发实现。说明文件结构、命名规范、导入模式和架构,确保后续生成的代码规范一致。给AI coding Agents使用的README文件,包括build/test的常见命令、代码风格指导、测试指导和安全性考虑等。2. 定义项目相关的具体Steering。

2026-04-24 18:04:40 526

原创 Kiro CLI的context详解

resources": [在建立Kiro CLI chat会话时,Agent的resources设置将被加载到会话的context。

2026-04-23 23:15:00 847

原创 Kiro CLI的chat及settings简介

Global的Kiro CLI settings保存在~/.kiro/settings/cli.json文件中。Workspace的Kiro CLI settings保存在当前工作空间的.kiro/settings/cli.json文件中。Session的Kiro CLI settings仅在当前的Kiro chat对话中有效,没有持久化保存。通常,在终端执行上述命令,设置的Kiro CLI settings保存在~/.kiro/settings/cli.json文件中。

2026-04-23 18:45:00 476

原创 Kiro CLI的Windows安装及认证

Windows下Kiro CLI的安装与认证

2026-04-21 18:15:00 151

原创 Amazon Q Developer与Kiro

Amazon Q Developer与Kiro的简介

2026-04-20 16:32:09 87

原创 Google Maven Replacer Plugin插件详解

在Maven项目的构建过程中,对于Maven标准预定义变量,或者<properties>中定义的变量,都可以被实际的值替换。但是,如果要在构建的过程中替换文件中的任何指定字符串(这里成为tokens),就需要使用Google为Maven提供的replacer插件。Google的replacer插件原名为maven-replacer-plugin,2012年以后,为了遵循Mave...

2019-12-28 00:02:39 6447 1

原创 Apache Maven Resources Plugin插件详解

Apache Maven Resources Plugin是Apache Maven团队提供的官方核心插件,能够将Maven项目中的各种资源文件复制到指定的输出目录中。1. 在Maven项目中的资源可以分为两类main资源,指位于src/main/resources路径下的资源文件 test资源,指位于src/test/resources路径下的资源文件2.Apache Maven ...

2019-12-20 23:04:14 11305 2

原创 Java运行时的shutdown hook

Hook作为一种回调方式,广泛应用于软件中。从Java 1.3开始,JVM的Runtime也提供了hook的机制,即shutdown hook。提供给出shutdown hook,在退出JVM的时候,能够执行shutdown hook中定义的必要操作。1. Runtime的Shutdown Hook的特性可以注册多个hook,每个都是一个独立的线程 如果有多个Hook,Hook线程之...

2019-11-24 22:14:00 1988

原创 CPython的命令行与python文件的执行

在Windows系统中,下载并安装了Python解析器后,就可以运行Python文件了。可以使用任何编辑器,编写并保存Python文件。Python运行时提供了多种执行Python文件的方法。1. 编写并保存Python文件myfoo.py如下(没有入口__main__函数):def hello(): print("Xiangbin HAN")打开cmd,cd到文件所在目...

2019-10-24 23:30:26 1805

原创 Java 7的javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake异常分析

Java7通过httpsURLConnection建立HTTPS连接,异常如下:javax.net.ssl.SSLHandshakeException: Caused by: Remote host closed connection during handshake Caused by: SSL peer shut down incorrectly解决方案似乎是明显的,客户端需要提高版本...

2019-09-24 17:29:53 7129

原创 Docker容器启动时的第一个进程的设置总结

实际生产中,Docker容器创建(或启动)时,默认即启动必要的服务进程,这种用法非常常见。容器中默认即启动的服务往往作为容器的第一个进程启动。如docker run命令创建Tomcat容器时即启动容器中的Tomcat服务。Docker提供了有多种方式实现该特性。1.执行一个带参数的命令创建容器时,如果希望默认即执行一个带参数的命令mycommand myparam,利用Dockerfile...

2019-08-01 00:06:11 6029

原创 SELinux检查与Apache HTTP服务器的文件访问典型错配案例及解决

在CentOS 7.5配置Apache HTTP服务器后,看到如下错误:Permission denied查看Apache HTTP服务器的错误日志/var/log/httpd/error_log如下:[Wed May 06 23:00:54 2019] [error] [client 127.0.0.1] (13) Permission denied: access to /www...

2019-07-16 00:14:49 858

原创 SELinux检查与Nginx的反向代理的典型错配案例及解决

在CentOS 7.5配置并启动Nginx后,却总是看到如下异常Permission denied查看Nginx的错误日志如下:[root@mylocal ~]# grep Permission /var/log/nginx/error.log2019/05/30 03:51:21 [crit] 4331#0: *6 " connect() to 127.0.0.1:8080/re...

2019-07-08 23:12:49 2357

原创 Linux资源的SELinux context详解

Linux操作系统中的每个资源(如进程、文件描述符、文件、网络等),也被称为SELinux对象,都拥有一个特别的security label,也被称为SELinux label,或SELinux context,以表示该对象能够执行的permissions和operations。这是一个标识符,从Linux系统的细节中抽象出,只聚焦于系统资源的安全属性。通过使用SELinux context,就可...

2019-06-30 23:45:55 6360 1

原创 SELinux的运行模式与安全策略详解

1. SELinux在Linux系统中的运行状态可以划分为如下3种运行模式(run modes)enforcing默认模式,SELinux会根据安全策略对到达的访问请求进行检查。permissiveSELinux假装在进行安全策略的检查,甚至会将access denial写入日志文件,但实际不会拒绝任何访问请求。这种模式适合开发调试阶段。disabled强烈不建议这种模式。...

2019-06-26 23:43:33 2453

原创 RHEL/CentOS 7中的SELinux概述

Security Enhanced Linux (SELinux)是一个访问控制服务,基于安全策略加强对系统资源的访问控制。在系统安全的基础上,解决“May <subject> do <action> to <object>”的访问控制问题。SELinux是一个Linux内核的扩展模块,通过LSM(Linux Security Module)框架在链接时被加...

2019-06-21 00:05:22 1301

原创 RHEL/CentOS 7中的iptables.service与firewalld.service概述

在RHEL/CentOS 7中,曾经的iptables.service/ip6tables.service已经被firewalld.service所替代。但两者在本质上是一致的,都是通过iptables工具操作Linux kernel的netfilter,实现对IP数据包的过滤。两者只是在实现上有如下不同:iptables/ip6tables的配置默认存储到/etc/sysconfig/ipt...

2019-06-17 22:36:37 3811 1

原创 RHEL/CentOS 7中的网络暨network.service与NetworkManager.service详解

在RHEL/CentOS 6及以前的版本中,网络功能是通过一系列网络相关的脚本文件实现,如/etc/init.d/network文件,及如下/sbin/if*文件等。[root@myserver ~]# ll /sbin/if*-rwxr-xr-x. 1 root root 3056 Apr 11 2018 /sbin/ifcfg-rwxr-xr-x. 1 root root 820...

2019-06-13 21:39:37 16046

原创 Docker daemon及容器实例的DNS配置详解

Linux系统中,DNS解析器是一组C库的进程,用以访问DNS服务器。DNS解析器通过/etc/resolv.conf配置文件给出要访问的DNS服务器,配置文件修改后立刻生效,但系统重启后/etc/resolv.conf配置文件的内容回滚到初始状态。1. Docker daemon的DNS配置Docker daemon的配置有两种方式,一种是通过/etc/docker/daemon.jso...

2019-06-05 23:48:08 15847 2

原创 RHEL/CentOS 7中通过systemd service持久化网络命名空间

对于Linux系统中创建的定制的网络命名空间,目前没有理想的方法使其持久化,即能够在Linux系统启动时应用定制的网络命名空间的配置。本文创建了一个systemd service,通过在Linux系统启动时执行其ExecStart脚本,从而实现了每次Linux系统启动时对定制的网络命名空间的配置。创建一个systemd service的过程如下:1. 定义一个可执行的脚本文件,用以配置网络...

2019-06-04 23:44:11 1089

原创 RHEL/CentOS 7的systemd target及其中的multi-user.target

在RHEL/CentOS 6中,使用SysV init和Upstart,通过预定义一组Runlevels(从0到6)表示不同的执行模式。[root@myhost app]# ll /etc/rc.d/total 4drwxr-xr-x. 2 root root 148 May 28 05:40 init.d-rwxr-xr-x. 1 root root 503 May 27 11:29...

2019-06-03 23:18:35 14325

原创 RHEL/CentOS 7的systemd及其systemctl命令概述

systemd是Linux的系统服务管理器,也是默认的初始化系统,并且向后兼容SysV初始化系统的init脚本,能够在启动Linux系统的时候并发启动系统服务。systemd的配置文件/etc/systemd/system.conf。systemd提出了units的概念,一个unit代表着一种systemd管理的系统资源。每个unit都是通过unit配置文件定义的。一个unit的类型是由其un...

2019-05-31 00:23:12 2361 1

原创 RHEL/CentOS 7中Nginx的systemd service

在线安装预构建的Nginx,默认会创建Nginx的systemd服务,对应的服务文件是/usr/lib/systemd/system/nginx.service。文件内容如下:[Unit]Description=The NGINX HTTP and reverse proxy serverAfter=syslog.target network.target remote-fs.targe...

2019-05-27 23:28:01 1644

原创 RHEL/CentOS 7的kernel tunables及其sysctl命令概述

众所周知,Linux kernel是单体的设计(非微内核的设计),但是在编译时加入了大量可选的、附加的模块modules。这样,在启动Linux kernel时,就可以通过kmod动态选择加载不同的模块(modules),而且模块还可以设置不同的参数。1. Linux kernel通过tunables设置Linux系统的启动行为,对应/proc/sys路径下的虚拟文件系统。根据Linux ...

2019-05-26 21:12:29 4015

原创 RHEL/CentOS 7的FirewallD及其firewall-cmd命令概述

FirewallD是RHEL/CentOS 7+的一个防火墙服务的守护进程,对应系统的firewalld.service。其与iproute2软件包的iptables/ip6tables的关系如下,实质上都是通过iptables模块配置内核的netfilter模块:在RHEL/CentOS 7中,iptables.service/ip6tables.service已经被firewalld....

2019-05-14 23:10:35 2902

原创 Docker容器实例通过非默认的网络命名空间访问外部网络

Docker为所有容器实例建立了独立的网络命名空间中,并通过docker0桥接到宿主机的默认网络命名空间。如果容器实例要通过宿主机上的一个定制网络命名空间oam,而非宿主机的默认网络命名空间,访问外部网络,示意图如下所示。对于上述图示,Docker宿主机上的配置比较复杂,大致可以归纳为如下几步。1.创建并配置虚拟网卡veth0/veth1的IPs;2.配置默认网络命名空间...

2019-05-06 00:32:16 770

原创 NAT及跨网络命名空间的网络地址转换

NAT (Network Address Translation)即网络地址转换,最初的目的是在路由器上,修改IP报文头中的源地址(source address)或目标地址(destination address),以转发报文。通过NAT,实现了私有子网中与公共网络的连接,也间接延续了IPv4的生命,推迟了IPv6的到来。1. NAT可以分为如下几类1) Source NAT (SNAT)...

2019-05-01 00:00:20 1295

原创 虚拟网络设备及其在Linux网络命名空间中的应用

Linux的网络命名空间用以隔离Linux主机上的不同的网络环境。但是有时候,我们又需要从一个网络命名空间中访问另一个网络命名空间中的网络,这就需要用到虚拟网络设备。虚拟网络设备(Virtual Network Device)是一种抽象的网络设备,类似网络管道,用以在不同的网络命名空间之间建立传输隧道,也可以用以创建网桥以连接到多个其他网络命名空间。虚拟网络设备在Linux中的实现就是veth...

2019-04-29 23:43:31 730

原创 Linux内核的网络命名空间的概念及常用命令

命名空间(namespace)的概念已经非常常见了,通常用以区分不同范畴内的各种资源。在Linux内核中,命名空间用以隔离多种Linux内核的资源,如进程、进程间通信、网络、挂载路径等。通过Linux命名空间,能够把Linux有限的内核资源(进程号、通信资源、网络资源等)合理分配给各个用户的进程,而不互相干扰。Linux的网络命名空间(network namespace)用以在一个Linux主...

2019-04-29 23:29:23 2140

原创 基于iptables的Docker网络隔离与通信详解

Docker提供了bridge, host, overlay等多种网络。同一个Docker宿主机上同时存在多个不同类型的网络。位于不同网络中的容器,彼此之间是无法通信的。Docker容器的跨网络隔离与通信,是借助了iptables的机制。我们知道,iptables的filter表中默认划分为IPNUT, FORWARD和OUTPUT共3个链,详情请参考 iptables及其过滤规则。Docke...

2019-03-27 17:26:04 21274 8

原创 iptables及其过滤规则

1. iptables是Linux内核的一个模块,用以管理对网络设备(网卡)的访问,如路由过滤、端口转发、NAT等,root用户可以通过iptables配置操作系统的路由表。在当前的主流Linux发布系统中,都默认安装了iptables。为了适应IPv6,事实上iptables用以管理IPv4数据包的过滤和地址转换,ip6tables用以管理IPv6数据包的过滤和地址转换。后文将其统一称为ip...

2019-03-19 00:01:07 5511

原创 OpenStack的Telemetry Data Collection服务概述

Telemetry项目是OpenStack的一个独立项目,专门用于采集其他服务的数据,用于计量。Telemetry提供了若干个软件组件,形成若干个服务的集合。服务之间通过OpenStack的消息总线互相通信。服务采集的数据可以发布给不同的存储或分析系统,默认发送给Gnocchi数据库。1. Telemetry功能轮询OpenStack服务,以计量服务的数据 监控服务的通知,以收集服务的事...

2019-02-28 23:34:02 1401

原创 Docker容器实例的网络与通信

一个Docker容器实例,无论使用哪个类型的网络驱动器(包括定制的网络插件),从容器内部来说网络都是透明的,即不区分自己是在哪种类型的网络中。而只知道自己的网络信息,如IP, Gateway, iptalbes, DNS等。默认创建的容器实例,不会对网络外暴露任何端口,只能供同属一个网络中的其他容器实例访问。创建容器时,可以通过-p|--publish暴露指定端口,如-p 8080:80表示将...

2019-02-18 22:21:16 1050

原创 TestNG中在一个suite标签中的多个test标签之间共享中间数据的方法

在TestNG的一个测试suite中,可能存在多个&lt;test&gt;,那么在不同的&lt;test&gt;标签内部的测试类,其之间如何共享动态中间数据呢?比如在一个&lt;test&gt;中的一个测试类Producer中,一个测试方法产生了中间数据groupIds;而在后续另一个&lt;test&gt;中的一个测试类Consumer中,一个测试方法要访问这个中间数据。测试套件如下:...

2019-02-14 22:21:09 3203 1

A PPT template

A PPT template

2025-08-15

logisim 3.9.0

logisim 3.9.0

2025-08-15

digital-7 (mono italic).ttf

A file of ttf

2021-07-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除