|
|
|
|
@ -59,7 +59,9 @@ import java.util.List;
@@ -59,7 +59,9 @@ import java.util.List;
|
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat; |
|
|
|
|
import static org.assertj.core.api.ThrowableAssert.catchThrowable; |
|
|
|
|
import static org.mockito.ArgumentMatchers.any; |
|
|
|
|
import static org.mockito.Mockito.*; |
|
|
|
|
import static org.mockito.Mockito.atLeastOnce; |
|
|
|
|
import static org.mockito.Mockito.mock; |
|
|
|
|
import static org.mockito.Mockito.verify; |
|
|
|
|
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestBuilders.formLogin; |
|
|
|
|
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; |
|
|
|
|
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header; |
|
|
|
|
@ -175,6 +177,62 @@ public class WebSecurityConfigurerAdapterTests {
@@ -175,6 +177,62 @@ public class WebSecurityConfigurerAdapterTests {
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void loadConfigWhenInMemoryConfigureProtectedThenPasswordUpgraded() throws Exception { |
|
|
|
|
this.spring.register(InMemoryConfigureProtectedConfig.class).autowire(); |
|
|
|
|
|
|
|
|
|
this.mockMvc.perform(formLogin()) |
|
|
|
|
.andExpect(status().is3xxRedirection()); |
|
|
|
|
|
|
|
|
|
UserDetailsService uds = this.spring.getContext() |
|
|
|
|
.getBean(UserDetailsService.class); |
|
|
|
|
assertThat(uds.loadUserByUsername("user").getPassword()).startsWith("{bcrypt}"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@EnableWebSecurity |
|
|
|
|
static class InMemoryConfigureProtectedConfig extends WebSecurityConfigurerAdapter { |
|
|
|
|
@Override |
|
|
|
|
protected void configure(AuthenticationManagerBuilder auth) throws Exception { |
|
|
|
|
auth |
|
|
|
|
.inMemoryAuthentication() |
|
|
|
|
.withUser(PasswordEncodedUser.user()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
@Bean |
|
|
|
|
public UserDetailsService userDetailsServiceBean() throws Exception { |
|
|
|
|
return super.userDetailsServiceBean(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void loadConfigWhenInMemoryConfigureGlobalThenPasswordUpgraded() throws Exception { |
|
|
|
|
this.spring.register(InMemoryConfigureGlobalConfig.class).autowire(); |
|
|
|
|
|
|
|
|
|
this.mockMvc.perform(formLogin()) |
|
|
|
|
.andExpect(status().is3xxRedirection()); |
|
|
|
|
|
|
|
|
|
UserDetailsService uds = this.spring.getContext() |
|
|
|
|
.getBean(UserDetailsService.class); |
|
|
|
|
assertThat(uds.loadUserByUsername("user").getPassword()).startsWith("{bcrypt}"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@EnableWebSecurity |
|
|
|
|
static class InMemoryConfigureGlobalConfig extends WebSecurityConfigurerAdapter { |
|
|
|
|
@Autowired |
|
|
|
|
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { |
|
|
|
|
auth |
|
|
|
|
.inMemoryAuthentication() |
|
|
|
|
.withUser(PasswordEncodedUser.user()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
@Bean |
|
|
|
|
public UserDetailsService userDetailsServiceBean() throws Exception { |
|
|
|
|
return super.userDetailsServiceBean(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void loadConfigWhenCustomContentNegotiationStrategyBeanThenOverridesDefault() throws Exception { |
|
|
|
|
OverrideContentNegotiationStrategySharedObjectConfig.CONTENT_NEGOTIATION_STRATEGY_BEAN = mock(ContentNegotiationStrategy.class); |
|
|
|
|
|