Контроллер будет автоматически заполнять принципала аутентификации, когда вы делаете запрос с аутентифицированным пользователем.
Например, если вы используете базовую аутентификацию HTTP для защиты вашей конечной точки, тогда субъект будет заполняться из Authorization
заголовок.Тело вашего запроса остается неизменным независимо от того, извлекаете ли вы принципал или нет.
Простой способ протестировать ваш контроллер - использовать поддержку, предоставляемую Spring Security.
Если вы используете MockMvc
, один из вариантов - использовать постпроцессор для вызова вашей конечной точки с различными типамипользователи.
this.mvc.perform(post("/api/access/submit")
.content("...")
.with(user("user").roles("USER")))
.andExpect(status().isUnauthorized());
this.mvc.perform(post("/api/access/submit")
.content("...")
.with(user("admin").roles("ADMIN")))
.andExpect(status().isOk());
Подробнее о поддержке тестирования Spring Security можно узнать из документации здесь .