@Bean @ConditionalOnMissingBean(CrshShellAuthenticationProperties.class) public SpringAuthenticationProperties springAuthenticationProperties() { // In case no management.shell.auth.type property is provided fall back to // Spring Security based authentication and get role to access shell from // ManagementServerProperties. // In case management.shell.auth.type is set to spring and roles are // configured using shell.auth.spring.roles the below default role will be // overridden by ConfigurationProperties. SpringAuthenticationProperties authenticationProperties = new SpringAuthenticationProperties(); if (this.management != null) { List<String> roles = this.management.getSecurity().getRoles(); authenticationProperties .setRoles(roles.toArray(new String[roles.size()])); } return authenticationProperties; }
@Bean @ConditionalOnMissingBean(CrshShellAuthenticationProperties.class) public SpringAuthenticationProperties springAuthenticationProperties() { // In case no shell.auth property is provided fall back to Spring Security // based authentication and get role to access shell from // ManagementServerProperties. // In case shell.auth is set to spring and roles are configured using // shell.auth.spring.roles the below default role will be overridden by // ConfigurationProperties. SpringAuthenticationProperties authenticationProperties = new SpringAuthenticationProperties(); if (this.management != null) { authenticationProperties.setRoles( new String[] { this.management.getSecurity().getRole() }); } return authenticationProperties; }
@Test public void testBindingSpring() { SpringAuthenticationProperties props = load(SpringAuthenticationProperties.class, "management.shell.auth.spring.roles=role1,role2"); Properties p = new Properties(); props.applyToCrshShellConfig(p); assertThat(p.get("crash.auth.spring.roles")).isEqualTo("role1,role2"); }
@Test public void testBindingSpring() { SpringAuthenticationProperties props = new SpringAuthenticationProperties(); RelaxedDataBinder binder = new RelaxedDataBinder(props, "shell.auth.spring"); binder.bind(new MutablePropertyValues( Collections.singletonMap("shell.auth.spring.roles", "role1, role2"))); assertFalse(binder.getBindingResult().hasErrors()); Properties p = new Properties(); props.applyToCrshShellConfig(p); assertEquals("role1, role2", p.get("crash.auth.spring.roles")); }