-
-
Notifications
You must be signed in to change notification settings - Fork 340
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Use Thymeleaf layout lib to use header and content pages
- Introduce runtime environment to move it away from html
- Loading branch information
Showing
27 changed files
with
293 additions
and
104 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
49 changes: 49 additions & 0 deletions
49
src/main/java/org/owasp/wrongsecrets/AllControllerAdvice.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
package org.owasp.wrongsecrets; | ||
|
||
import org.owasp.wrongsecrets.challenges.Challenge; | ||
import org.owasp.wrongsecrets.challenges.ChallengeUI; | ||
import org.springframework.beans.factory.annotation.Value; | ||
import org.springframework.context.annotation.Bean; | ||
import org.springframework.ui.Model; | ||
import org.springframework.web.bind.annotation.ControllerAdvice; | ||
import org.springframework.web.bind.annotation.ModelAttribute; | ||
|
||
import java.util.List; | ||
|
||
/** | ||
* Make sure shared model properties are always set for each controller. So for example `challenges` should be present | ||
* in the model instead of adding it in all endpoint we can use this advice to let Spring do this for us. | ||
*/ | ||
@ControllerAdvice | ||
public class AllControllerAdvice { | ||
|
||
private final List<ChallengeUI> challenges; | ||
private final String version; | ||
private RuntimeEnvironment runtimeEnvironment; | ||
|
||
public AllControllerAdvice(List<Challenge> challenges, @Value("${APP_VERSION}") String version, RuntimeEnvironment runtimeEnvironment) { | ||
this.challenges = ChallengeUI.toUI(challenges, runtimeEnvironment); | ||
this.version = version; | ||
this.runtimeEnvironment = runtimeEnvironment; | ||
} | ||
|
||
@ModelAttribute | ||
public void addChallenges(Model model) { | ||
model.addAttribute("challenges", challenges); | ||
} | ||
|
||
@ModelAttribute | ||
public void addVersion(Model model) { | ||
model.addAttribute("version", version); | ||
} | ||
|
||
@ModelAttribute | ||
public void addRuntimeEnviroment(Model model) { | ||
model.addAttribute("environment", runtimeEnvironment); | ||
} | ||
|
||
@Bean | ||
public List<ChallengeUI> uiChallenges() { | ||
return challenges; | ||
} | ||
} |
39 changes: 10 additions & 29 deletions
39
src/main/java/org/owasp/wrongsecrets/IndexController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,44 +1,25 @@ | ||
package org.owasp.wrongsecrets; | ||
|
||
import lombok.extern.slf4j.Slf4j; | ||
import org.owasp.wrongsecrets.challenges.Challenge; | ||
import org.owasp.wrongsecrets.challenges.ChallengeUI; | ||
import org.springframework.beans.factory.annotation.Value; | ||
import org.springframework.stereotype.Controller; | ||
import org.springframework.ui.Model; | ||
import org.springframework.web.bind.annotation.GetMapping; | ||
|
||
import java.util.List; | ||
|
||
@Controller | ||
@Slf4j | ||
public class IndexController { | ||
|
||
private final String k8sEnvironment; | ||
private final String version; | ||
private final List<ChallengeUI> challenges; | ||
|
||
public IndexController(@Value("${K8S_ENV}") String k8sEnvironment, @Value("${APP_VERSION}") String version, List<Challenge> challenges) { | ||
this.k8sEnvironment = k8sEnvironment; | ||
this.version = version; | ||
this.challenges = ChallengeUI.toUI(challenges, k8sEnvironment); | ||
} | ||
|
||
@GetMapping("/") | ||
public String index(Model model) { | ||
model.addAttribute("page", "index"); | ||
model.addAttribute("challenges", challenges); | ||
model.addAttribute("version", version); | ||
model.addAttribute("environment", k8sEnvironment); | ||
if ("gcp".equals(k8sEnvironment) || "aws".equals(k8sEnvironment)) { | ||
model.addAttribute("cloud", "enabled"); | ||
} | ||
if ("k8s-with-vault".equals(k8sEnvironment) || "gcp".equals(k8sEnvironment) || "aws".equals(k8sEnvironment)) { | ||
model.addAttribute("vault", "enabled"); | ||
} | ||
if (k8sEnvironment.contains("k8s") || "gcp".equals(k8sEnvironment) || "aws".equals(k8sEnvironment)) { | ||
model.addAttribute("k8s", "enabled"); | ||
} | ||
return "index"; | ||
// if ("gcp".equals(k8sEnvironment) || "aws".equals(k8sEnvironment)) { | ||
// model.addAttribute("cloud", "enabled"); | ||
// } | ||
// if ("k8s-with-vault".equals(k8sEnvironment) || "gcp".equals(k8sEnvironment) || "aws".equals(k8sEnvironment)) { | ||
// model.addAttribute("vault", "enabled"); | ||
// } | ||
// if (k8sEnvironment.contains("k8s") || "gcp".equals(k8sEnvironment) || "aws".equals(k8sEnvironment)) { | ||
// model.addAttribute("k8s", "enabled"); | ||
// } | ||
return "welcome"; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
42 changes: 42 additions & 0 deletions
42
src/main/java/org/owasp/wrongsecrets/RuntimeEnvironment.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
package org.owasp.wrongsecrets; | ||
|
||
import org.owasp.wrongsecrets.challenges.Challenge; | ||
import org.springframework.beans.factory.annotation.Autowired; | ||
import org.springframework.beans.factory.annotation.Value; | ||
import org.springframework.stereotype.Component; | ||
|
||
import java.util.Arrays; | ||
|
||
@Component | ||
public class RuntimeEnvironment { | ||
|
||
public enum Environment { | ||
DOCKER("Docker"), GCP("gcp"), AWS("aws"), VAULT("k8s-with-vault"), K8S("k8s"); | ||
|
||
private final String id; | ||
|
||
Environment(String id) { | ||
this.id = id; | ||
} | ||
|
||
static Environment fromId(String id) { | ||
return Arrays.asList(Environment.values()).stream().filter(e -> e.id.equals(id)).findAny().get(); | ||
} | ||
} | ||
|
||
private final Environment runtimeEnvironment; | ||
|
||
@Autowired | ||
public RuntimeEnvironment(@Value("${K8S_ENV}") String currentRuntimeEnvironment) { | ||
this.runtimeEnvironment = Environment.fromId(currentRuntimeEnvironment); | ||
} | ||
|
||
public RuntimeEnvironment(Environment runtimeEnvironment) { | ||
this.runtimeEnvironment = runtimeEnvironment; | ||
} | ||
|
||
public boolean environmentIsFitFor(Challenge challenge) { | ||
return challenge.supportedRuntimeEnvironments().contains(runtimeEnvironment); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -22,4 +22,6 @@ public InMemoryScoreCard scoreCard() { | |
return new InMemoryScoreCard(11); | ||
} | ||
|
||
|
||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.