{"adoption": {"forks": 258, "observed_at": "2026-08-28T04:05:32.924958+00:00", "stars": 1763}, "canonical_url": "https://ross.abutalabs.com/products/hello-java-sec", "card": {"archived": false, "artifact_type": "application", "description": "☕️ Java Security，安全编码和代码审计", "domain": ["security", "penetration-testing", "developer-tools", "education", "web-development"], "enriched": true, "function": ["security", "penetration-testing", "vulnerability-scanning", "testing"], "health_score": 36, "homepage": null, "language": "Java", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["j3ers3/Hello-Java-Sec"], "name": "j3ers3/Hello-Java-Sec", "platform": ["jvm", "self-hosted"], "pushed_at": "2025-03-07T06:16:56+00:00", "repo": "j3ers3/Hello-Java-Sec", "stars": 1763, "tags": ["java-security", "code-audit", "vulnerable-app", "security-training", "deliberately-vulnerable", "spring-boot", "owasp", "vulnerability-lab", "education", "docker", "web-server"], "topics": ["java-sec", "java-vul", "code-audit"], "urls": [], "use_cases": ["practice exploiting java web vulnerabilities in a safe lab", "learn how sql injection and xss work in java spring boot", "train developers on secure coding in java", "test code audit skills against realistic java vulnerabilities", "set up a deliberately vulnerable app with docker for security training", "demonstrate log4shell and fast deserialization attacks", "study secure vs vulnerable code side by side"], "what_it_is": "A deliberately vulnerable Java Spring Boot application demonstrating common web vulnerabilities (SQLi, XSS, RCE, deserialization, SSTI, SSRF, XXE, Log4shell, JWT flaws, and more) alongside secure coding examples. It is designed as a training platform for security and development teams to learn vulnerability principles and practice code auditing.", "when_to_avoid": ["you need a production-ready secure application - this is intentionally vulnerable", "you need a vulnerability scanner or automated audit tool - this is a training app, not a tool", "you require a maintained, licensed codebase for commercial use - it has no license"], "when_to_choose": ["you need a hands-on vulnerable Java target for security training or CTF practice", "you want to teach developers secure coding with real vulnerable vs fixed code examples", "you are practicing code auditing on Java Spring Boot applications"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/hello-java-sec", "repo": "j3ers3/Hello-Java-Sec", "role": "main", "score": 27}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.924958+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:26:46.486476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0de1ac005cea822947034cdec7ddd7702b353cf84014582271c783cb0780c1de", "fetched_at": "2026-08-28T04:05:32.924958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/j3ers3/Hello-Java-Sec"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.924958+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:26:46.486476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0de1ac005cea822947034cdec7ddd7702b353cf84014582271c783cb0780c1de", "fetched_at": "2026-08-28T04:05:32.924958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/j3ers3/Hello-Java-Sec"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:26:46.486476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0de1ac005cea822947034cdec7ddd7702b353cf84014582271c783cb0780c1de", "fetched_at": "2026-08-28T04:05:32.924958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/j3ers3/Hello-Java-Sec"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.924958+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.924958+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.924958+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:26:46.486476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0de1ac005cea822947034cdec7ddd7702b353cf84014582271c783cb0780c1de", "fetched_at": "2026-08-28T04:05:32.924958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/j3ers3/Hello-Java-Sec"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.924958+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.924958+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:26:46.486476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0de1ac005cea822947034cdec7ddd7702b353cf84014582271c783cb0780c1de", "fetched_at": "2026-08-28T04:05:32.924958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/j3ers3/Hello-Java-Sec"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.924958+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.924958+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.924958+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:26:46.486476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0de1ac005cea822947034cdec7ddd7702b353cf84014582271c783cb0780c1de", "fetched_at": "2026-08-28T04:05:32.924958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/j3ers3/Hello-Java-Sec"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.924958+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.924958+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:26:46.486476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0de1ac005cea822947034cdec7ddd7702b353cf84014582271c783cb0780c1de", "fetched_at": "2026-08-28T04:05:32.924958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/j3ers3/Hello-Java-Sec"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:26:46.486476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0de1ac005cea822947034cdec7ddd7702b353cf84014582271c783cb0780c1de", "fetched_at": "2026-08-28T04:05:32.924958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/j3ers3/Hello-Java-Sec"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:26:46.486476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0de1ac005cea822947034cdec7ddd7702b353cf84014582271c783cb0780c1de", "fetched_at": "2026-08-28T04:05:32.924958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/j3ers3/Hello-Java-Sec"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:26:46.486476+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0de1ac005cea822947034cdec7ddd7702b353cf84014582271c783cb0780c1de", "fetched_at": "2026-08-28T04:05:32.924958+00:00", "kind": "readme", "missing": false, "url": "https://github.com/j3ers3/Hello-Java-Sec"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 10, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1886, "days_push": 544, "days_rel": 644, "gap_med": null, "n_releases_24m": 1}, "score": 27, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}