Итак, у меня есть куча вложенных маршрутов в контроллере. Я хочу убедиться, что приложение выдает ошибку, если конкретный вложенный маршрут не существует. Прямо сейчас, если вложенный уровень больше 2, приложение возвращает null
вместо того, чтобы выдать ошибку, сообщающую, что маршрут не может быть найден.
Пример:
@RestController
@RequestMapping(value="v1/")
public class EmployeeController {
@Autowired
EmployeeRepository employeeRepository;
// Get Token Info
@RequestMapping(value = "read/tokenInfo", method = RequestMethod.GET)
public Token getTokenInfo(@AuthenticationPrincipal Token token) {
return token;
}
// List of all employees.
@GetMapping(path = "read/list")
public List<Employee> getAllEmployees() {
return employeeRepository.findAll();
}
В приведенном выше коде, скажем, для маршрута v1/read/tokenInfo
имеет 3 сегмента - v1, читатьи tokenInfo. Если бы я набрал неверный маршрут и попробовал что-то вроде - v1/read/tokeninfosss
вместо того, чтобы показать ошибку, он возвращает 200OK с сообщением null
.
ответ: ![response](https://i.stack.imgur.com/13sWX.png)
Однако, если на маршруте было только 2 уровня - следующим образом -
@RestController
@RequestMapping(value="v1/")
public class EmployeeController {
@Autowired
EmployeeRepository employeeRepository;
// Get Token Info
@RequestMapping(value = "tokenInfo", method = RequestMethod.GET)
public Token getTokenInfo(@AuthenticationPrincipal Token token) {
return token;
}
А теперь, если я позвоню - v1/tokenInfosss
, выдает ошибку - 404 ошибка: ![404 error](https://i.stack.imgur.com/nA8ss.png)
Я также настроил безопасность следующим образом -
@Override
protected void configure(HttpSecurity http) throws Exception {
http.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.authorizeRequests()
.antMatchers("/local/**").permitAll()
.antMatchers("/v1/read/**").hasAuthority("Display")
.antMatchers("/v1/modify/**").hasAuthority("Update")
.anyRequest().authenticated()
.and()
.oauth2ResourceServer()
.jwt()
.jwtAuthenticationConverter(getJwtAuthenticationConverter());
}
Любая идея, какнастроить эту ошибку 404?