Add support for disabling crash commands

fixes #587 and #588
This commit is contained in:
Christian Dupuis
2014-05-06 13:32:29 +02:00
parent e5b6d7c756
commit 126fedc14a
4 changed files with 83 additions and 17 deletions

View File

@@ -132,7 +132,8 @@ public class CrshAutoConfigurationTests {
PluginLifeCycle lifeCycle = this.context.getBean(PluginLifeCycle.class);
assertEquals("~/.ssh/id.pem", lifeCycle.getConfig().getProperty("crash.ssh.keypath"));
assertEquals("~/.ssh/id.pem",
lifeCycle.getConfig().getProperty("crash.ssh.keypath"));
}
@Test
@@ -162,6 +163,24 @@ public class CrshAutoConfigurationTests {
assertEquals(1, count);
}
@Test
public void testDisabledCommandResolution() {
this.context = new AnnotationConfigWebApplicationContext();
this.context.register(CrshAutoConfiguration.class);
this.context.refresh();
PluginLifeCycle lifeCycle = this.context.getBean(PluginLifeCycle.class);
int count = 0;
Iterator<Resource> resources = lifeCycle.getContext()
.loadResources("jdbc.groovy", ResourceKind.COMMAND).iterator();
while (resources.hasNext()) {
count++;
resources.next();
}
assertEquals(0, count);
}
@Test
public void testAuthenticationProvidersAreInstalled() {
this.context = new AnnotationConfigWebApplicationContext();
@@ -210,7 +229,8 @@ public class CrshAutoConfigurationTests {
PluginLifeCycle lifeCycle = this.context.getBean(PluginLifeCycle.class);
assertEquals("jaas", lifeCycle.getConfig().get("crash.auth"));
assertEquals("my-test-domain", lifeCycle.getConfig().get("crash.auth.jaas.domain"));
assertEquals("my-test-domain", lifeCycle.getConfig()
.get("crash.auth.jaas.domain"));
}
@Test
@@ -258,7 +278,8 @@ public class CrshAutoConfigurationTests {
}
assertNotNull(authenticationPlugin);
assertTrue(authenticationPlugin.authenticate("user", "password"));
assertFalse(authenticationPlugin.authenticate(UUID.randomUUID().toString(), "password"));
assertFalse(authenticationPlugin.authenticate(UUID.randomUUID().toString(),
"password"));
}
@Test
@@ -284,9 +305,11 @@ public class CrshAutoConfigurationTests {
break;
}
}
assertTrue(authenticationPlugin.authenticate(SecurityConfiguration.USERNAME, SecurityConfiguration.PASSWORD));
assertTrue(authenticationPlugin.authenticate(SecurityConfiguration.USERNAME,
SecurityConfiguration.PASSWORD));
assertFalse(authenticationPlugin.authenticate(UUID.randomUUID().toString(), SecurityConfiguration.PASSWORD));
assertFalse(authenticationPlugin.authenticate(UUID.randomUUID().toString(),
SecurityConfiguration.PASSWORD));
}
@Test
@@ -311,9 +334,11 @@ public class CrshAutoConfigurationTests {
break;
}
}
assertTrue(authenticationPlugin.authenticate(SecurityConfiguration.USERNAME, SecurityConfiguration.PASSWORD));
assertTrue(authenticationPlugin.authenticate(SecurityConfiguration.USERNAME,
SecurityConfiguration.PASSWORD));
assertFalse(authenticationPlugin.authenticate(UUID.randomUUID().toString(), SecurityConfiguration.PASSWORD));
assertFalse(authenticationPlugin.authenticate(UUID.randomUUID().toString(),
SecurityConfiguration.PASSWORD));
}
@Configuration

View File

@@ -121,6 +121,19 @@ public class ShellPropertiesTests {
props.getDisabledPlugins());
}
@Test
public void testBindingDisabledCommands() {
ShellProperties props = new ShellProperties();
RelaxedDataBinder binder = new RelaxedDataBinder(props, "shell");
binder.setConversionService(new DefaultConversionService());
binder.bind(new MutablePropertyValues(Collections.singletonMap(
"shell.disabled_commands", "pattern1, pattern2")));
assertFalse(binder.getBindingResult().hasErrors());
assertEquals(2, props.getDisabledCommands().length);
assertArrayEquals(new String[] { "pattern1", "pattern2" },
props.getDisabledCommands());
}
@Test
public void testBindingSsh() {
ShellProperties props = new ShellProperties();