Реализовать ограничение прав на доступ к объектам в Geoserve

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
Konstantin Tokar
Активный участник
Сообщения: 178
Зарегистрирован: 16 июл 2008, 09:56
Репутация: 1
Откуда: Москва

Реализовать ограничение прав на доступ к объектам в Geoserve

Сообщение Konstantin Tokar »

А как на Geoserver, к примеру, реализовать ограничение прав на доступ к объектам? Например, у меня есть таблицы point, users, users_points_right - последняя с правами пользователей на точки. Как выбрать только те точки, доступ к которым разрешён для текущего пользователя web сервиса? Мне кажется, это правильней сделать в каком-то промежуточом скрипте-прокси между пользователем и WMS сервером. Есть ли какие-то стандартные способы строить такие прокси, может быть к geoserver можно дописать какой-то плагин?

Откуда взялся такой вопрос: ограничение прав можно было бы сделать, воспользовавшись встроенными средствами фильтрации данных - CQL, например (см. статью http://gis-lab.info/qa/wms-filter.html), но это неправильно - на стороне клиента такие вставки делать нельзя. Можно было бы перехватить запрос к серверу и добавить в CQL нужное ограничение - примерно так делает MapGuide. Мне кажется, добавление своего фильтрующего слоя в обработке WMS (и других) запросов правильный путь, но как лучше это сделать - непонятно.
Последний раз редактировалось Konstantin Tokar 09 фев 2011, 12:47, всего редактировалось 2 раза.
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: Серверы WMS и фильтрация данных

Сообщение Mavka »

:-\
Последний раз редактировалось Mavka 09 фев 2011, 12:59, всего редактировалось 1 раз.
лангольеры под окном жрали время ом-ном-ном
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: ограничение прав на доступ

Сообщение Mavka »

Если судить по заголовку, то для этого в GeoServer есть своя система ACL. А если по тексту вопроса - все гораздо запутаннее и ноги растут из БД. Напишите подробнее как вы сами видите решение задачи.

Не заметил вашу правку...

1. Система ACL в GeoServer. Рассчитана на то, что в программе создается множество слоев отдельно для каждого пользователя (или группы). Т.е. создается несколько подключений к БД от имени разных пользователей. При обращении к GeoServer пользователь получает список слоев и возможность работы с ними только в рамках своих прав.

2. Можно попытаться пробросить авторизацию в БД. Например, в UMN MapServer в файле настроек указать изменяемую строку подключения к БД:

Код: Выделить всё

CONNECTION "host=localhost dbname=my_dbase user=%user% password=%pass%" 
в строке запроса к серверу WMS передавать параметры

Код: Выделить всё

...&user=vasya&pass=secret
лангольеры под окном жрали время ом-ном-ном
Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: Реализовать ограничение прав на доступ к объектам в Geos

Сообщение Дмитрий Барышников »

А вот здесь (http://apps.geomajas.org/showcase/) все сделано "из коробки"
Ограничения по географии, по таблицам, записям и даже полям.
Посмотрите примерчики в разделе "security"
Konstantin Tokar
Активный участник
Сообщения: 178
Зарегистрирован: 16 июл 2008, 09:56
Репутация: 1
Откуда: Москва

Re: Реализовать ограничение прав на доступ к объектам в Geos

Сообщение Konstantin Tokar »

Bishop писал(а):А вот здесь (http://apps.geomajas.org/showcase/) все сделано "из коробки"
Ограничения по географии, по таблицам, записям и даже полям.
Посмотрите примерчики в разделе "security"
Посмотрел... Конкретно разделы, посвящённые Security, представлены в шаблонном виде - ничего не делают, и в документации отсутствуют с пометкой TODO. Вообще проект молодой. и чтобы с ним работать надо яву хорошо знать.
Konstantin Tokar
Активный участник
Сообщения: 178
Зарегистрирован: 16 июл 2008, 09:56
Репутация: 1
Откуда: Москва

Re: ограничение прав на доступ

Сообщение Konstantin Tokar »

Mavka писал(а):2. Можно попытаться пробросить авторизацию в БД. Например, в UMN MapServer в файле настроек указать изменяемую строку подключения к БД:

Код: Выделить всё

CONNECTION "host=localhost dbname=my_dbase user=%user% password=%pass%" 
в строке запроса к серверу WMS передавать параметры

Код: Выделить всё

...&user=vasya&pass=secret
Авторизация - это то, что делается один раз, после используется какая-то реализация security token с помощью сессий. Что , к примеру, может понадобиться: "показать объекты пользователя и его друзей". Нужно либо на стороне сервера реализовать плагин для таких фильтров, либо придумать как до запроса к серверу преобразовать запрос от клиента, чтобы он содержал нужные фильтры. Простор для творчества есть.
Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей