Поиск поддержки Spring REST по resourceid, который начинается с period / resources / {resourceid} - PullRequest
0 голосов
/ 17 сентября 2018

Я работаю над REST API, который выполняет поиск по resourceid, а resourceid начинается с.или или //.Я могу обрабатывать случаи, когда он начинается с / или содержит / но не ресурсы, с которых начинаются идентификаторы.Например: /resources/.ABC-A Я ищу некоторые решения о том, как обрабатывать дела, чей идентификатор ресурса начинается с.

1 Ответ

0 голосов
/ 17 сентября 2018

Не уверен, . разрешено в начале пути.Согласно RFC 3896:

Сегменты пути "."и "..", также известный как точечные сегменты, определены для относительной ссылки в иерархии имен путей.Они предназначены для использования в начале ссылки на относительный путь (раздел 4.2) для указания относительного положения в иерархическом дереве имен.Это похоже на их роль в структурах файловых каталогов некоторых операционных систем для указания текущего каталога и родительского каталога соответственно.Однако, в отличие от файловой системы, эти точечные сегменты интерпретируются только в пределах иерархии путей URI и удаляются как часть процесса разрешения (раздел 5.2).

Также, предостережение, когдаиспользуя . в ваших путях: по умолчанию Spring будет пытаться использовать путь для определения типа контента:

https://spring.io/blog/2013/05/11/content-negotiation-using-spring-mvc

Пример: путь, заканчивающийся на .au, можно интерпретировать какзапрос на application/audio, для которого вы, вероятно, не установили обработчик.

Чтобы отключить это поведение, вы должны установить favorPathExtension=false на ContentNegotiationConfigurer.

...