В этой документации Spring Security MVC Test описано, как тестировать защищенные ресурсы с помощью Spring Security. Я выполнил все шаги, но доступ к защищенному ressource по-прежнему возвращает код ошибки 401 (несанкционированный).Весенний тест безопасности возвращается 401 (неавторизованный)
Вот мой тестовый класс
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
@WebAppConfiguration
@SpringBootTest
@TestPropertySource(locations = "classpath:test.properties")
public class UserControllerTest {
@Autowired
private WebApplicationContext context;
private MockMvc mockMvc;
@Before
public void setup() throws Exception {
this.mockMvc = MockMvcBuilders.webAppContextSetup(context)
.defaultRequest(
get("/api/users/1")
.with(user("[email protected]").password("test"))
.with(httpBasic("sc68", "adminpass"))
)
.apply(springSecurity())
.build();
}
@Test
public void testUnprotectedResource() throws Exception {
mockMvc.perform(get("/api/articles"))
.andExpect(status().isOk());
}
@Test
public void testProtectedResource() throws Exception {
mockMvc.perform(get("/api/users/1"))
.andExpect(status().isOk());
}
}
Мой ResourceServerConfiguration:
@Throws(Exception::class)
override fun configure(http: HttpSecurity) {
http.authorizeRequests()
.antMatchers("/api/users/register").permitAll()
.antMatchers("/api/articles").permitAll()
.anyRequest().authenticated().and()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and( )
.csrf().disable()
}
Если вы хотите взглянуть на весь проект, который вы можете найти его here. Я уже пробовал разные тестовые ролики и все, описанные в учебнике, но я не могу найти решение, как получить аутентифицированного пользователя во время тестов.
У меня есть базовая аутентификация в моем AuthorizationServerConfigurerAdapter. Из моего приложения Angular я могу получить свой AccessToken через этот URL-адрес: http: // localhost: 8081/oauth/token? Grant_type=password&client_id=sc68&[email protected]&password=test " – Deutro