sitelink1 https://github.com/spdx/tools-java 
sitelink2 https://github.com/spdx/tools-python 
sitelink3 https://github.com/spdx/spdx-online-tools 
sitelink4  
extra_vars5  
extra_vars6  

tools-java 는 문서 포맷 검증에 체크섬 생성 및 포맷 변환 기능이 있지만 현재 2.0.1 버전에는 'SBOM NTIA' 체크 기능이 없다.

'SBOM NTIA' 체크 기능은 tools-python 에 있다고 gpt 가 알려주었지만 할루시네이션같다. (github project README.md 를 살펴봐도 관련 내용 없음)

대시 'spdx-online-tools' project 를 찾았고 이것을 이용해 rest api 형식으로 서비스를 호출 할 수 있을 것 같아서 현재 검토중이다. (2025.07.30)

 



SPDX Java Tools 주요 기능 요약

1. SPDX 문서 읽기/쓰기 지원

  • 다양한 SPDX 포맷 지원:

    • Tag/Value

    • RDF/XML

    • JSON

    • YAML

  • SPDX 파일을 Java 객체로 파싱하고, 반대로 객체를 문서로 저장 가능

2. SPDX 문서 유효성 검증

  • SPDX 문서가 사양에 맞는지 자동 검증 (SPDXDocumentVerifier 클래스 등)

  • 잘못된 포맷, 누락된 필드, 잘못된 해시값 등의 오류 검출

3. SPDX 문서 변환

  • SPDX 문서 포맷 간 변환 (예: Tag/Value → RDF/XML, JSON ↔ YAML 등)

  • 변환 시 자동 정렬 및 정합성 유지

4. SPDX 패키지 및 파일 메타데이터 처리

  • SPDX 패키지 생성, 파일 추가, 라이선스 지정, 해시값 계산 등

  • 파일별 라이선스 추정 결과 적용 가능

5. SPDX Checksum 및 검증 코드 생성

  • SHA1, SHA256, MD5 등 해시 알고리즘 지원

  • PackageVerificationCode 자동 생성 (파일 해시 기반)

6. SPDX 라이선스 관련 기능

  • 표준 SPDX 라이선스 식별자 처리 (LicenseInfoFactory)

  • 사용자 정의/비표준 라이선스도 지원


 활용 예시

SPDX 문서 파싱

java
SpdxDocument document = SPDXDocumentFactory.createSpdxDocument("path/to/doc.spdx");

 

파일 해시 생성 및 SPDX 파일 객체 생성

java
SpdxFile file = new SpdxFile("src/Foo.java", checksums, concludedLicense, ...);

 

패키지 검증 코드 생성

java
String verificationCode = PackageVerificationCodeGenerator.generate(pkgFiles);

 

문서 저장

java
document.save("path/to/output.spdx", format); // RDF, tag-value 등 지정

대상 사용자

  • SPDX 기반 SBOM 관리 도구를 개발하는 Java 개발자

  • 빌드 도구(예: Maven, Gradle)에 SPDX 생성을 통합하려는 팀

  • 라이선스/컴플라이언스 자동화 파이프라인 구축자


기타 정보

  • SPDX v2.2.x 사양 기준으로 개발 중

  • GPL-2.0-only 라이선스

  • Maven 라이브러리로 직접 빌드 가능 (pom.xml 포함)

번호 제목 sitelink1 글쓴이 날짜 조회 수
공지 [계속 추가중] SBOM 용어 정의   황제낙엽 2025.04.10 474
공지 [계속 추가중] Keycloak 용어 및 설정 옵션 정의   황제낙엽 2024.02.02 1050
122 fosslight_source_scanner 에서 스캔 결과 License컬럼 : "New license" (실제 값은 있음) https://spdx.org/licenses  황제낙엽 2025.12.03 12
121 사내 개발 프레임워크 또는 내부용 공통 라이브러리에 대한 SBOM 적용 방안 https://spdx.org/licenses  황제낙엽 2025.11.28 17
120 Windows 11 Pro의 OpenSSH 기반 SFTP 서버 전용 사용자 계정 관리   황제낙엽 2025.11.07 24
119 FileZilla Server 에서 기존 TLS 인증서로 SSL 설정 (v1.11.1 기준) https://www.youtube.com/watch?v=z7mzSyymZ9U  황제낙엽 2025.11.05 34
118 win-acme 에서 강제 신규 발급 (같은 도메인이라도 새 order 생성)   황제낙엽 2025.10.18 32
117 NVD (National Vulnerability Database) Data Feeds https://nvd.nist.gov/vuln/data-feeds#divJson20Feeds  황제낙엽 2025.09.23 57
116 ScanCode Toolkit 에서 검출한 라이선스 정보중 'unknown-license-reference' 관련 https://scancode-toolkit.readthedocs.io/...rence.html  황제낙엽 2025.09.19 50
115 [FOSSLight Hub] ./service/template/SPDXRdf_2.2.2.xls (No such file or directory) file https://github.com/fosslight/fosslight/issues/1064  황제낙엽 2025.09.19 57
114 LG 의 Open Source Compliance 활동 https://opensource.lge.com/guide/7  황제낙엽 2025.09.18 87
113 OWASP Dependency-Check https://github.com/dependency-check/DependencyCheck  황제낙엽 2025.09.17 82
112 NVD (National Vulnerability Database) API 키 발급 후 설정하기 https://nvd.nist.gov/developers/request-an-api-key  황제낙엽 2025.09.17 151
111 fosslight_binary_scanner 에서 스캔 결과 exclude 의 의미   황제낙엽 2025.09.16 48
» SPDX(Java Tools) - SPDX 문서의 생성, 파싱, 검증, 조작, 직렬화 https://github.com/spdx/tools-java  황제낙엽 2025.07.30 46
109 FOSSLight 의 Scanner 중 SBOM 산출 가능 Scanner https://github.com/fosslight/fosslight_dependency_scanner  황제낙엽 2025.07.23 70
108 [Gemini] OSS Review Toolkit 의 도움말 번역 https://github.com/oss-review-toolkit/ort  황제낙엽 2025.06.25 43
107 SPDX 를 지원하는 Open Source 목록 https://spdx.dev/tools/open-source-tools/  황제낙엽 2025.06.24 74
106 (Microsoft) sbom-tool generate 명령어 옵션 설명 https://github.com/microsoft/sbom-tool  황제낙엽 2025.06.24 78
105 [Google] OSV-Scanner 의 scan source 의 help 한글 번역   황제낙엽 2025.06.23 34
104 [Gemini] Google 의 OSV-Scanner, OSV-Scalibr, OSV-Scanner V2 https://google.github.io/osv-scanner  황제낙엽 2025.06.23 58
103 소스 파일 내용에서 라이선스 정보를 추출하는 기능이 있는 오픈소스 도구   황제낙엽 2025.06.23 60