diff --git a/profile/README.ko.md b/profile/README.ko.md index 5999768..cc9d4f9 100644 --- a/profile/README.ko.md +++ b/profile/README.ko.md @@ -50,9 +50,9 @@ ai Anthropic · OpenAI · LangChain · pgvector 우리 SaaS에서 먼저 검증하고 Maven Central `kr.devslab` 좌표로 공유합니다. -- 🛡️ **[ssrf-guard](https://github.com/devslab-kr/ssrf-guard)**  [![Maven Central](https://img.shields.io/maven-central/v/kr.devslab/ssrf-guard?label=kr.devslab%3Assrf-guard)](https://central.sonatype.com/artifact/kr.devslab/ssrf-guard) — JVM용 SSRF 방어. 화이트리스트 + IP 우회 차단 (10진수·16진수·8진수·IPv6 난독화) + 리다이렉트 재검증을 9개 HTTP 클라이언트 모듈 (RestClient · RestTemplate · WebClient · Feign · OkHttp · JDK HttpClient · Apache HttpClient 5)에 동시 적용. **`-springai` / `-langchain4j` 모듈은 LLM 에이전트의 툴 URL 검증** — Spring AI `ToolCallback`, LangChain4j `ToolExecutor` 기반 에이전트의 `fetch_url` 류 새 SSRF 표면 대응. GraalVM native-image 힌트와 WebClient용 reactor-netty DNS-time 가드도 포함. +- 🛡️ **[ssrf-guard](https://github.com/devslab-kr/ssrf-guard)**  [![Maven Central](https://img.shields.io/maven-central/v/kr.devslab/ssrf-guard)](https://central.sonatype.com/artifact/kr.devslab/ssrf-guard) — JVM용 SSRF 방어. 화이트리스트 + IP 우회 차단 (10진수·16진수·8진수·IPv6 난독화) + 리다이렉트 재검증을 9개 HTTP 클라이언트 모듈 (RestClient · RestTemplate · WebClient · Feign · OkHttp · JDK HttpClient · Apache HttpClient 5)에 동시 적용. **`-springai` / `-langchain4j` 모듈은 LLM 에이전트의 툴 URL 검증** — Spring AI `ToolCallback`, LangChain4j `ToolExecutor` 기반 에이전트의 `fetch_url` 류 새 SSRF 표면 대응. GraalVM native-image 힌트와 WebClient용 reactor-netty DNS-time 가드도 포함. - 🪶 **[easy-paging-spring-boot-starter](https://github.com/devslab-kr/easy-paging-spring-boot-starter)**  [![Spring Boot 4](https://img.shields.io/maven-central/v/kr.devslab/easy-paging-spring-boot-starter?label=Spring%20Boot%204&versionPrefix=4)](https://central.sonatype.com/artifact/kr.devslab/easy-paging-spring-boot-starter) · [![SB3 maintenance](https://img.shields.io/maven-central/v/kr.devslab/easy-paging-spring-boot-starter?label=SB3%20maintenance&versionPrefix=3)](https://central.sonatype.com/artifact/kr.devslab/easy-paging-spring-boot-starter) — Spring Boot + MyBatis용 어노테이션 기반 페이지네이션. Offset (`@AutoPaginate`)과 cursor/keyset (`@KeysetPaginate`)을 하나의 스타터로. WebFlux + R2DBC용 자매 아티팩트 (`-reactive`)는 wire에서 동일한 JSON 봉투. 라이브러리 메이저가 Spring Boot 메이저와 일치 ([버전 정책](https://github.com/devslab-kr/.github/blob/main/.github/VERSIONING.md#한국어) 참조): `4.x` 라인은 **Spring Boot 4 / Spring Framework 7 / Jackson 3** 대상이며, `3.x` [maintenance 브랜치](https://github.com/devslab-kr/easy-paging-spring-boot-starter/tree/3.x)가 SB 3.3–3.5에 대한 보안 패치를 계속 제공합니다. -- 📜 **[api-log](https://github.com/devslab-kr/api-log)**  [![Maven Central](https://img.shields.io/maven-central/v/kr.devslab/api-log?label=kr.devslab%3Aapi-log)](https://central.sonatype.com/artifact/kr.devslab/api-log) — Spring Boot용 이벤트 드리븐 API 로깅, PostgreSQL JSONB 저장. 멀티모듈 구성: `api-log-core` + 영속성 드라이버 (`-jpa`, `-r2dbc`, `-mybatis`). +- 📜 **[api-log](https://github.com/devslab-kr/api-log)**  [![Maven Central](https://img.shields.io/maven-central/v/kr.devslab/api-log)](https://central.sonatype.com/artifact/kr.devslab/api-log) — Spring Boot용 이벤트 드리븐 API 로깅, PostgreSQL JSONB 저장. 멀티모듈 구성: `api-log-core` + 영속성 드라이버 (`-jpa`, `-r2dbc`, `-mybatis`). - 🧪 **[devslab-examples](https://github.com/devslab-kr/devslab-examples)** — 위 라이브러리 모든 모듈의 실행 가능한 Spring Boot 데모 14개 (easy-paging SB4 4개 + easy-paging SB3 maintenance 4개 + ssrf-guard 6개 — HTTP 클라이언트와 LLM 프레임워크 전반), 이중언어 README. Clone, `./gradlew bootRun`, curl. 스모크 테스트 포함. ``` diff --git a/profile/README.md b/profile/README.md index 961dbe5..756131a 100644 --- a/profile/README.md +++ b/profile/README.md @@ -51,9 +51,9 @@ ai Anthropic · OpenAI · LangChain · pgvector Battle-tested in our own SaaS first, then shared on Maven Central under `kr.devslab`. -- 🛡️ **[ssrf-guard](https://github.com/devslab-kr/ssrf-guard)**  [![Maven Central](https://img.shields.io/maven-central/v/kr.devslab/ssrf-guard?label=kr.devslab%3Assrf-guard)](https://central.sonatype.com/artifact/kr.devslab/ssrf-guard) — SSRF defense for the JVM. Whitelist + IP-bypass hardening (decimal/hex/octal/IPv6 obfuscation) + redirect re-validation across 9 HTTP-client modules (RestClient · RestTemplate · WebClient · Feign · OkHttp · JDK HttpClient · Apache HttpClient 5). Includes **`-springai` and `-langchain4j` for LLM-agent tool URL validation** — the new SSRF surface for `fetch_url`-style tools in Spring AI `ToolCallback` and LangChain4j `ToolExecutor` agents. Plus GraalVM native-image hints and reactor-netty DNS-time guards for WebClient. +- 🛡️ **[ssrf-guard](https://github.com/devslab-kr/ssrf-guard)**  [![Maven Central](https://img.shields.io/maven-central/v/kr.devslab/ssrf-guard)](https://central.sonatype.com/artifact/kr.devslab/ssrf-guard) — SSRF defense for the JVM. Whitelist + IP-bypass hardening (decimal/hex/octal/IPv6 obfuscation) + redirect re-validation across 9 HTTP-client modules (RestClient · RestTemplate · WebClient · Feign · OkHttp · JDK HttpClient · Apache HttpClient 5). Includes **`-springai` and `-langchain4j` for LLM-agent tool URL validation** — the new SSRF surface for `fetch_url`-style tools in Spring AI `ToolCallback` and LangChain4j `ToolExecutor` agents. Plus GraalVM native-image hints and reactor-netty DNS-time guards for WebClient. - 🪶 **[easy-paging-spring-boot-starter](https://github.com/devslab-kr/easy-paging-spring-boot-starter)**  [![Spring Boot 4](https://img.shields.io/maven-central/v/kr.devslab/easy-paging-spring-boot-starter?label=Spring%20Boot%204&versionPrefix=4)](https://central.sonatype.com/artifact/kr.devslab/easy-paging-spring-boot-starter) · [![SB3 maintenance](https://img.shields.io/maven-central/v/kr.devslab/easy-paging-spring-boot-starter?label=SB3%20maintenance&versionPrefix=3)](https://central.sonatype.com/artifact/kr.devslab/easy-paging-spring-boot-starter) — Annotation-driven pagination for Spring Boot + MyBatis. Offset (`@AutoPaginate`) and cursor/keyset (`@KeysetPaginate`) in one starter. Reactive companion artifact (`-reactive`) for WebFlux + R2DBC, identical JSON envelope on the wire. Library major matches Spring Boot major (see [versioning policy](https://github.com/devslab-kr/.github/blob/main/.github/VERSIONING.md)): `4.x` targets **Spring Boot 4 / Spring Framework 7 / Jackson 3**; the `3.x` [maintenance branch](https://github.com/devslab-kr/easy-paging-spring-boot-starter/tree/3.x) keeps SB 3.3–3.5 supported with security patches. -- 📜 **[api-log](https://github.com/devslab-kr/api-log)**  [![Maven Central](https://img.shields.io/maven-central/v/kr.devslab/api-log?label=kr.devslab%3Aapi-log)](https://central.sonatype.com/artifact/kr.devslab/api-log) — Event-driven API logging for Spring Boot, PostgreSQL JSONB storage. Multi-module: `api-log-core` plus persistence drivers (`-jpa`, `-r2dbc`, `-mybatis`). +- 📜 **[api-log](https://github.com/devslab-kr/api-log)**  [![Maven Central](https://img.shields.io/maven-central/v/kr.devslab/api-log)](https://central.sonatype.com/artifact/kr.devslab/api-log) — Event-driven API logging for Spring Boot, PostgreSQL JSONB storage. Multi-module: `api-log-core` plus persistence drivers (`-jpa`, `-r2dbc`, `-mybatis`). - 🧪 **[devslab-examples](https://github.com/devslab-kr/devslab-examples)** — Runnable Spring Boot demos for every library above (14 demos: 4 easy-paging SB4 + 4 easy-paging SB3 maintenance + 6 ssrf-guard across HTTP clients and LLM frameworks; bilingual READMEs). Clone, `./gradlew bootRun`, curl. Smoke tests included. ```