Spring Boot 2.2.5. Как получить параметр PathVariable внутри Spring Filter - PullRequest
0 голосов
/ 27 мая 2020

Проблема, которую я хочу решить. Мне нужно применить специфицированный c logi c ко всем спокойным конечным точкам, где URL-адрес принадлежит указанному c суб-пути: скажем, «/ api / employee / {id}». Это означает, что все ссылки, начинающиеся с этого пути, должны применять logi c на основе идентификатора сотрудника, который я пытаюсь применить непосредственно в фильтре Spring Boot, чтобы избежать распространения logi c повсюду.

Проблема, с которой я столкнулся. Я могу получить параметры запроса из ServletRequest, но переменные пути недоступны в фильтре.

Есть идеи, как это можно проанализировать?

Было бы очень признательно :)

1 Ответ

1 голос
/ 27 мая 2020

Переменные пути - это просто URI. Вы не можете позвонить getRequestURI()

Из документов:

java.lang.String getRequestURI()

Returns the part of this request's URL from the protocol name up to the query string in the first line of the HTTP request. The web container does not decode this String. For example:

First line of HTTP request  Returned Value

POST /some/path.html HTTP/1.1       /some/path.html

GET http://foo.bar/a.html HTTP/1.0      /a.html

HEAD /xyz?a=b HTTP/1.1      /xyz

https://docs.oracle.com/javaee/7/api/javax/servlet/http/HttpServletRequest.html#getRequestURI -

...