use of org.wildfly.swarm.undertow.descriptors.WebXmlAsset in project wildfly-swarm by wildfly-swarm.
the class WebXmlAssetTest method testLoginAuthMethod.
@Test
public void testLoginAuthMethod() throws Exception {
WebXmlAsset asset = new WebXmlAsset();
assertThat(asset.getLoginRealm("keycloak")).isNull();
asset.setLoginConfig("keycloak", "myRealm");
String realm = asset.getLoginRealm("keycloak");
assertThat(realm).isNotNull();
assertThat(realm).isNotEmpty();
assertThat(realm).isEqualTo("myRealm");
}
use of org.wildfly.swarm.undertow.descriptors.WebXmlAsset in project wildfly-swarm by wildfly-swarm.
the class WebXmlAssetTest method testSecurityConstraintPermitAll.
@Test
public void testSecurityConstraintPermitAll() throws IOException {
WebXmlAsset asset = new WebXmlAsset();
asset.protect().permitAll();
List<SecurityConstraint> constraints = asset.allConstraints();
assertThat(constraints).hasSize(1);
SecurityConstraint sc = constraints.get(0);
assertThat(sc.isPermitAll()).isEqualTo(true);
InputStreamReader reader = new InputStreamReader(asset.openStream());
BufferedReader buffered = new BufferedReader(reader);
StringBuilder tmp = new StringBuilder();
String line = buffered.readLine();
while (line != null) {
tmp.append(line);
line = buffered.readLine();
}
assertThat(tmp.toString()).contains("security-constraint");
assertThat(tmp.toString()).doesNotContain("auth-constraint");
}
use of org.wildfly.swarm.undertow.descriptors.WebXmlAsset in project wildfly-swarm by wildfly-swarm.
the class WebXmlAssetTest method testUnsetContextParamName.
@Test
public void testUnsetContextParamName() throws Exception {
WebXmlAsset asset = new WebXmlAsset();
assertThat(asset.getContextParam("my-param")).isNull();
}
use of org.wildfly.swarm.undertow.descriptors.WebXmlAsset in project wildfly-swarm by wildfly-swarm.
the class HttpSecurityPreparer method process.
@SuppressWarnings("unchecked")
@Override
public void process() {
if (deploymentConfigs == null || deploymentConfigs.isEmpty()) {
return;
}
// find a matching archive declaration
Optional<String> match = deploymentConfigs.keySet().stream().filter(c -> archive.getName().equals(c)).findFirst();
if (!match.isPresent()) {
// no matching archive
return;
}
Map<String, Object> matchingConfig = (Map<String, Object>) deploymentConfigs.get(match.get());
if (!matchingConfig.containsKey("web")) {
// missing web configuration
return;
}
Map<String, Object> deploymentConfig = (Map<String, Object>) matchingConfig.get("web");
WARArchive war = archive.as(WARArchive.class);
WebXmlAsset webXml = war.findWebXmlAsset();
JBossWebAsset jbossWeb = war.findJbossWebAsset();
// login-config
Map<String, Object> loginConfig = (Map<String, Object>) deploymentConfig.get("login-config");
if (loginConfig != null) {
String authMethod = (String) loginConfig.getOrDefault("auth-method", "NONE");
// Setup login-config
webXml.setLoginConfig(authMethod, "ignored");
// security domain
if (loginConfig.containsKey("security-domain")) {
jbossWeb.setSecurityDomain((String) loginConfig.get("security-domain"));
}
// form login
if (loginConfig.containsKey("form-login-config")) {
Map<String, Object> formLoginConfig = (Map<String, Object>) loginConfig.get("form-login-config");
webXml.setFormLoginConfig("Security Realm", (String) formLoginConfig.get("form-login-page"), (String) formLoginConfig.get("form-error-page"));
}
}
// security constraints
List<Map<String, Object>> securityConstraints = (List<Map<String, Object>>) deploymentConfig.getOrDefault("security-constraints", Collections.EMPTY_LIST);
for (Map<String, Object> sc : securityConstraints) {
SecurityConstraint securityConstraint = webXml.protect((String) sc.getOrDefault("url-pattern", "/*"));
((List<String>) sc.getOrDefault("methods", Collections.emptyList())).forEach(securityConstraint::withMethod);
((List<String>) sc.getOrDefault("roles", Collections.emptyList())).forEach(securityConstraint::withRole);
}
}
Aggregations