SimpleExample - Source
Source code for SimpleExample
Verzeichnis-Struktur
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| SimpleExample
├── src
│ ├── main
│ │ └── java
│ │ └── ch
│ │ └── itninja
│ │ └── labs
│ │ ├── secrets
│ │ │ └── Basic.java
│ │ └── Main.java
│ └── test
│ └── java
│ └── ch
│ └── itninja
│ └── labs
│ ├── secrets
│ │ └── BasicTest.java
│ └── util
│ └── ItNinjaOutput.java
├── .env
├── .gitignore
├── pom.xml
└── README.md
|
Dateien in SimpleExample
.env
1
2
3
4
| # This file contains the required environment variables! To use it, rename it to '.env'.
# Always make sure that the '.env' file containing sensitive information is never committed to a Git repository!
SAMPLE_API_KEY=mein_geheimnis
|
.gitignore
pom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
| <project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ch.itninja</groupId>
<artifactId>itninja-labs-01-security</artifactId>
<version>1.0.0</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>
<dependencies>
<!-- dotenv -->
<dependency>
<groupId>io.github.cdimascio</groupId>
<artifactId>dotenv-java</artifactId>
<version>3.0.0</version>
</dependency>
<!-- JUnit 5 -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.10.2</version>
<scope>test</scope>
</dependency>
<!-- jBCrypt -->
<dependency>
<groupId>org.mindrot</groupId>
<artifactId>jbcrypt</artifactId>
<version>0.4</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<release>17</release>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- Testausführung -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.2.5</version>
</plugin>
</plugins>
</build>
</project>
|
README.md
Not able to display content!
src\main\java\ch\itninja\labs
Main.java
1
2
3
4
5
6
7
8
9
10
11
12
13
| package ch.itninja.labs;
import ch.itninja.labs.secrets.Basic;
/**
* Entry point for the It-Ninja basic secret example.
*/
public class Main {
public static void main(String[] args) {
String secret = Basic.getSecret();
System.out.println("Das Geheimnis ist: '" + secret + "'");
}
}
|
secrets
Basic.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| package ch.itninja.labs.secrets;
import io.github.cdimascio.dotenv.Dotenv;
import java.util.MissingResourceException;
public class Basic {
private static final String API_KEY_NAME = "SAMPLE_API_KEY";
private Basic() {
// Prevent instantiation
}
public static String getSecret (){
Dotenv dotenv = Dotenv.configure()
.ignoreIfMissing()
.load();
String apiKey = dotenv.get(API_KEY_NAME);
if (apiKey == null) {
throw new MissingResourceException(
"API key not set. Please check your .env file or environment variables.",
API_KEY_NAME,
null
);
}
return apiKey;
}
}
|
src\test\java\ch\itninja\labs\secrets
BasicTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| package ch.itninja.labs.secrets;
import ch.itninja.labs.util.ItNinjaOutput;
import org.junit.jupiter.api.Test;
import org.mindrot.jbcrypt.BCrypt;
import static org.junit.jupiter.api.Assertions.assertTrue;
class BasicTest {
@Test
void givenBasicExample_whenCalled_thenReturnSecret() {
// GIVEN
String output = "Das Geheimnis ist: ";
String hash = "$2a$10$HidiMxXZdm1KEIT1nqGoHeiQoiruQd0VrL8I6yz6L.DucmcKjXp2.";
// WHEN
String secret = Basic.getSecret();
// THEN
assertTrue(BCrypt.checkpw(secret, hash));
ItNinjaOutput.PrintItNinjaOutput("Basic", "", output + "'" + secret + "'");
}
}
|
src\test\java\ch\itninja\labs\util
ItNinjaOutput.java
1
2
3
4
5
6
7
8
9
10
11
12
| package ch.itninja.labs.util;
public class ItNinjaOutput {
public static void PrintItNinjaOutput(String lab, String input, String output) {
System.out.println("<itninja input lab=\""+lab+"\">");
System.out.println(input);
System.out.println("</itninja>");
System.out.println("<itninja output lab=\""+lab+"\">");
System.out.println(output);
System.out.println("</itninja>");
}
}
|
Zuletzt geändert July 17, 2025:
Fix prettier (781a4eb64)