Polish and rework default authentication method if a Spring Security AuthenticationManager is available
In case a Spring Security AuthenticationManager is found in the app context the auto configuration will change default shell authentication method to auth against Spring Security. In addition shell access will get protected by the specific role configured in SecurityProperties.Management. Certainly this can be overridden by providing shell.auth and shell.auth.spring.roles.
This commit is contained in:
@@ -190,7 +190,6 @@ public class CrshAutoConfigurationTests {
|
||||
this.context = new AnnotationConfigWebApplicationContext();
|
||||
this.context.setEnvironment(env);
|
||||
this.context.setServletContext(new MockServletContext());
|
||||
this.context.register(SecurityConfiguration.class);
|
||||
this.context.register(CrshAutoConfiguration.class);
|
||||
this.context.refresh();
|
||||
|
||||
@@ -295,6 +294,35 @@ public class CrshAutoConfigurationTests {
|
||||
SecurityConfiguration.PASSWORD));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSpringAuthenticationProviderAsDefaultConfiguration() throws Exception {
|
||||
this.context = new AnnotationConfigWebApplicationContext();
|
||||
this.context.setServletContext(new MockServletContext());
|
||||
this.context.register(ManagementServerPropertiesAutoConfiguration.class);
|
||||
this.context.register(SecurityAutoConfiguration.class);
|
||||
this.context.register(SecurityConfiguration.class);
|
||||
this.context.register(CrshAutoConfiguration.class);
|
||||
this.context.refresh();
|
||||
|
||||
PluginLifeCycle lifeCycle = this.context.getBean(PluginLifeCycle.class);
|
||||
|
||||
AuthenticationPlugin<String> authenticationPlugin = null;
|
||||
String authentication = lifeCycle.getConfig().getProperty("crash.auth");
|
||||
assertNotNull(authentication);
|
||||
for (AuthenticationPlugin plugin : lifeCycle.getContext().getPlugins(
|
||||
AuthenticationPlugin.class)) {
|
||||
if (authentication.equals(plugin.getName())) {
|
||||
authenticationPlugin = plugin;
|
||||
break;
|
||||
}
|
||||
}
|
||||
assertTrue(authenticationPlugin.authenticate(SecurityConfiguration.USERNAME,
|
||||
SecurityConfiguration.PASSWORD));
|
||||
|
||||
assertFalse(authenticationPlugin.authenticate(UUID.randomUUID().toString(),
|
||||
SecurityConfiguration.PASSWORD));
|
||||
}
|
||||
|
||||
@Configuration
|
||||
public static class SecurityConfiguration {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user