Leaflet, OSM: безопасный сервер листов - PullRequest
0 голосов
/ 25 мая 2018

У меня есть свой собственный сервер OSM, а затем бэкэнд Tomcat для моего веб-приложения.

Я использую листовку для загрузки плиток следующим образом: http://MAP_SERVER_IP/tiles/{z}/{x}/{y}.png

Но я хочу, чтобы запрос былсделал что-то вроде: http://APP_SERVER/webapp/validation_servlet?z,x,y

Таким образом, 'validation_servlet' может проверить запрос и затем сделать ответ в качестве содержимого реального URL: http://MAP_SERVER_IP/tiles/{z}/{x}/{y}.png

Я попытался с помощью перенаправления,но кажется, что листовка не следует перенаправлениям.

Этот код является ответом validation_servlet:

<html><head><meta http-equiv="refresh" content="0; url=http://MAP_SERVER_IP/tiles/'+trim(&x)+'/'+trim(&y)+'/'+trim(&z)+'.png" /></head></html>

Где & x, & y и & z - параметры, полученные из запроса листовки.Этот URL отлично работает в браузере, и перенаправление выполняется.Но из листовки это не так.

Кроме того, я не хочу, чтобы APP_SERVER загружал плитку, чтобы затем обслуживать ее.

Цель состоит в том, чтобы «защитить» доступ к моему серверу плиток.Таким образом, реальный URL плитки никогда не должен быть виден.

Любые идеи ???

Заранее спасибо!

1 Ответ

0 голосов
/ 28 мая 2018

Просто определите свой L.TileLayer как:

var tiles = L.tileLayer('http://APP_SERVER/webapp/validation_servlet?{z},{x},{y}');
tiles.addTo(map);

Вы также указываете:

Цель - «защитить» доступ к моему серверу плиток.Таким образом, настоящий URL-адрес плитки никогда не должен отображаться.

[...]

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

Обратите внимание, что эти две цели не достижимы вместе.Либо вы проксируете плитку (выбирая ее из APP_SERVER и скрывая ее источник), либо перенаправляете на плитку (сохраняя APP_SERVER некоторую пропускную способность и ресурсы, но отправляя окончательный URL-адрес плитки в браузер).

...