Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 38 additions & 6 deletions docs/.vuepress/components/ELSTechnology.vue
Original file line number Diff line number Diff line change
Expand Up @@ -97,98 +97,122 @@ const techData = [
{
name: "Dom4j",
versions: "1.6.1",
link: "./java-libraries/",
},
{
name: "SnakeYAML",
versions: "1.23 | 1.26 | 1.29 | 1.30 | 1.33",
link: "./java-libraries/",
},
{
name: "Google Guava",
versions: "20.0 | 30.1-jre | 31.1-jre",
link: "./java-libraries/",
},
{
name: "Apache Hadoop",
versions: "2.7.3, 2.7.1",
versions: "2.7.1, 2.7.3",
link: "./apache-hadoop/",
},
{
name: "Apache Struts",
versions: "1.3.5 | 2.5.33",
link: "./apache-struts/",
},
{
name: "Apache Spark",
versions: "2.4.8",
link: "./apache-spark/",
},
{
name: "Okio",
versions: "2.8.0",
link: "./java-libraries/",
},
{
name: "Apache Commons BeanUtils",
versions: "1.9.4",
link: "./java-libraries/",
},
{
name: "Apache Commons HttpClient",
versions: "3.1",
link: "./java-librariest/",
},
{
name: "Apache CXF",
versions: "3.5.9",
link: "./java-libraries/",
},
{
name: "DNSJava",
versions: "2.1.7",
link: "./java-libraries/",
},
{
name: "el-spec",
versions: "3.0.0",
link: "./java-libraries/",
},
{
name: "Apache Hive",
versions: "2.3.9",
link: "./java-libraries/",
},
{
name: "Apache Kafka",
versions: "3.2.3",
link: "./apache-kafka/",
},
{
name: "Jackson",
versions: "1.9.13",
link: "./jackson/",
},
{
name: "Logback",
versions: "1.2.13",
link: "./java-libraries/",
},
{
name: "Netty",
versions: "4.1.115.Final | 4.1.63.Final",
link: "./java-libraries/",
},
{
name: "Nimbus JOSE + JWT",
versions: "9.22 | 9.24.4",
link: "./java-libraries/",
},
{
name: "Querydsl",
versions: "5.1.0",
link: "./java-libraries/",
},
{
name: "Plexus Utils",
versions: "1.5.8",
link: "./java-libraries/",
},
{
name: "PostgreSQL",
versions: "42.5.0 | 42.2.16",
versions: "42.2.16 | 42.5.0",
link: "./postgresql/",
},
{
name: "Protobuf",
versions: "2.5.0"
,link: "./protobuf/",
},
{
name: "Reload4j",
versions: "1.2.17",
link: "./java-libraries/",
},
{
name: "Snappy Java",
versions: "1.1.8.4",
link: "./java-libraries/",
},
{
name: "Apache Tomcat",
Expand All @@ -197,34 +221,42 @@ const techData = [
{
name: "Apache Thrift",
versions: "0.9.3",
link: "./java-libraries/",
},
{
name: "Thymeleaf",
versions: "3.0.15.RELEASE",
link: "./java-libraries/",
},
{
name: "Apache Velocity Engine",
versions: "1.7",
link: "./java-libraries/",
},
{
name: "Woodstox",
versions: "5.0.3",
link: "./java-libraries/",
},
{
name: "XMLUnit",
versions: "2.9.1 | 2.9.0"
},
{
name: "Apache Santuario XML Security For Java",
versions: "2.0.10 | 2.3.1",
,link: "./java-libraries/",
},
{
name: "Apache Commons IO",
versions: "2.7",
link: "./java-libraries/",
},
{
name: "Apache Commons Lang",
versions: "2.4 | 2.6 | 3.4 | 3.10 | 3.12.0",
link: "./apache-commons-lang/",
},
{
name: "Apache Santuario XML Security For Java",
versions: "2.0.10 | 2.3.1",
link: "./java-libraries/",
},
],
},
Expand Down
36 changes: 36 additions & 0 deletions docs/.vuepress/config-client/sidebar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,42 @@ export default {
path: '/els-for-runtimes-and-libraries/openjdk/',
icon: '/images/openjdk-logo.png',
},
{
path: '/els-for-runtimes-and-libraries/apache-hadoop/',
icon: '/images/apache.webp',
},
{
path: '/els-for-runtimes-and-libraries/apache-struts/',
icon: '/images/apache.webp',
},
{
path: '/els-for-runtimes-and-libraries/apache-spark/',
icon: '/images/apache-spark.webp',
},
{
path: '/els-for-runtimes-and-libraries/apache-kafka/',
icon: '/images/apache-kafka.webp',
},
{
path: '/els-for-runtimes-and-libraries/postgresql/',
icon: '/images/postgresql.webp',
},
{
path: '/els-for-runtimes-and-libraries/protobuf/',
icon: '/images/java.png',
},
{
path: '/els-for-runtimes-and-libraries/jackson/',
icon: '/images/jackson.webp',
},
{
path: '/els-for-runtimes-and-libraries/apache-commons-lang/',
icon: '/images/apache.webp',
},
{
path: '/els-for-runtimes-and-libraries/java-libraries/',
icon: '/images/java.png',
},
{
title: 'Python',
type: 'section-header',
Expand Down
Binary file added docs/.vuepress/public/images/apache-hadoop.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.vuepress/public/images/apache-kafka.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.vuepress/public/images/apache-spark.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.vuepress/public/images/apache-struts.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.vuepress/public/images/apache.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.vuepress/public/images/jackson.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/.vuepress/public/images/postgresql.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
160 changes: 160 additions & 0 deletions docs/els-for-runtimes-and-libraries/apache-commons-lang/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
# Apache Commons Lang

TuxCare's Endless Lifecycle Support (ELS) for Apache Commons Lang provides security patches, and selected bug fixes, that are integral to the stable operation of applications using Commons Lang.

## Supported Versions

* Apache Commons Lang 2.4, 2.6, 3.4, 3.10, 3.12.0

## Connection to ELS for Apache Commons Lang Repository

This guide outlines the steps needed to integrate the TuxCare ELS for Apache Commons Lang repository into your Java application. The repository provides trusted Java libraries that can be easily integrated into your **Maven** and **Gradle** projects.

### Step 1: Get user credentials

You need username and password in order to use TuxCare ELS Apache Commons Lang repository. Anonymous access is disabled. To receive username and password please contact [sales@tuxcare.com](mailto:sales@tuxcare.com).

### Step 2: Configure Registry

1. Navigate to the directory depending on your operating system.
* Windows
```text
Maven: C:\Users\{username}\.m2
Gradle: C:\Users\{username}\.gradle
```
* macOS
```text
Maven: /Users/{username}/.m2
Gradle: /Users/{username}/.gradle
```
* Linux
```text
Maven: /home/{username}/.m2
Gradle: /home/{username}/.gradle
```

2. Add the TuxCare repository and plugin repository to your build configuration.

:::tip
For Maven, you may choose any valid `<id>` value instead of `tuxcare-registry`, but the same value must be used in both `settings.xml` and `pom.xml`.
:::

<CodeTabs :tabs="[
{ title: 'Maven (~/.m2/settings.xml)', content: mavencreds },
{ title: 'Gradle (~/.gradle/gradle.properties)', content: gradlecreds }
]" />

Here `USERNAME` and `PASSWORD` are your credentials mentioned in the [Step 1](#step-1-get-user-credentials).

### Step 3: Update Build Configuration

Add the TuxCare Apache Commons Lang repository and plugins to your build configuration:

<CodeTabs :tabs="[
{ title: 'Maven (pom.xml)', content: mavenrepo },
{ title: 'Gradle (build.gradle)', content: gradlerepo }
]" />

* To fully switch from the official Apache Commons Lang repository, replace it with the TuxCare repository.
* To keep both, add TuxCare after the official one.

Example Maven and Gradle projects are available on GitHub. Remember to set the required environment variables.
* [Maven](https://github.com/cloudlinux/securechain-java/tree/main/examples/maven)
* [Gradle](https://github.com/cloudlinux/securechain-java/tree/main/examples/gradle)

### Step 4: Update Dependencies

Replace the Apache Commons Lang dependencies in your build file with the TuxCare-maintained versions to cover both direct and transitive dependencies.

You can find a specific artifact version in your TuxCare account on [Nexus](https://nexus.repo.tuxcare.com/repository/els_spring/) (anonymous access is restricted).

<CodeTabs :tabs="[
{ title: 'Maven (pom.xml)', content: mavendeps },
{ title: 'Gradle (build.gradle)', content: gradledeps }
]" />

### Step 5: Verify and Build

1. To confirm the TuxCare Apache Commons Lang repository is set up correctly, use your build tool to list the project's dependencies. It shows both direct and transitive dependencies in the classpath.

<CodeTabs :tabs="[
{ title: 'Maven', content: `mvn dependency:tree -Dverbose` },
{ title: 'Gradle', content: `./gradlew dependencies --configuration runtimeClasspath` }
]" />

2. After reviewing the dependencies, include any library from the repository into your project and then run a build:

<CodeTabs :tabs="[
{ title: 'Maven', content: `mvn clean install` },
{ title: 'Gradle', content: `./gradlew build` }
]" />

The build tool you're using should be able to identify and resolve dependencies from the TuxCare ELS for Apache Commons Lang repository.

### Conclusion

You've successfully integrated the TuxCare ELS for Apache Commons Lang repository into your project. You can now benefit from the secure and vetted Apache Commons Lang libraries it provides.

## Vulnerability Exploitability eXchange (VEX)

VEX is a machine-readable format that tells you if a known vulnerability is actually exploitable in your product. It reduces false positives, helps prioritize real risks.

TuxCare provides VEX for Apache Commons Lang ELS versions: [security.tuxcare.com/vex/cyclonedx/els_lang_java/commons-lang/](https://security.tuxcare.com/vex/cyclonedx/els_lang_java/commons-lang/).

## How to Upgrade to a Newer Version of TuxCare Packages

If you have already installed a package with a `tuxcare.1` suffix and want to upgrade to a newer release (for example, `tuxcare.3`), you need to update version strings in your Maven or Gradle build file.

<script setup>
const mavencreds =
`<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0">
<servers>
<server>
<id>tuxcare-registry</id>
<username>USERNAME</username>
<password>PASSWORD</password>
</server>
</servers>
</settings>`

const gradlecreds =
`tuxcare_registry_url=https://nexus.repo.tuxcare.com/repository/els_spring/
+tuxcare_registry_user=USERNAME
+tuxcare_registry_password=PASSWORD`

const mavenrepo =
`<repositories>
<repository>
<id>tuxcare-registry</id>
<url>https://nexus.repo.tuxcare.com/repository/els_spring/</url>
</repository>
</repositories>`

const gradlerepo =
`repositories {
maven {
url = uri(providers.gradleProperty("tuxcare_registry_url").get())
credentials {
username = providers.gradleProperty("tuxcare_registry_user").get()
password = providers.gradleProperty("tuxcare_registry_password").get()
}
authentication { basic(BasicAuthentication) }
}
mavenCentral()
}`

const mavendeps =
`<dependencies>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6-tuxcare.1</version>
</dependency>
</dependencies>`

const gradledeps =
`dependencies {
implementation("commons-lang:commons-lang:2.6-tuxcare.1")
}`
</script>
Loading