Личные папки в CKFinder

Я запускаю CKFinder/CKEditor через Apache Tomcat, используя Java и JavaScript. Есть несколько проектов, и проблема в том, что я не могу запретить людям в одном проекте доступ к изображениям, хранящимся для другого проекта. Я хотел бы просто динамически изменять BaseURL, но я не могу этого сделать. Есть ли способ дать каждому пользователю свою собственную папку, к которой они и только они могут получить доступ?


person Beacon80    schedule 19.08.2015    source источник


Ответы (1)


По крайней мере, есть способы динамически изменять пути в CKFinder 2 для Java.

Использование идентификатора, назначенного экземпляру CKFinder

Если вы назначите идентификатор экземпляру CKFinder, этот идентификатор будет передаваться коннектору сервера при каждом запросе. Вы можете использовать его как токен и преобразовать каждый уникальный идентификатор в правильный путь к серверу на стороне сервера. Обязательно используйте длинный/сложный хэш, чтобы пользователи не могли получить доступ к пути, к которому у них не должно быть доступа, легко манипулируя идентификатором.

Преимущество этого подхода заключается в том, что вы можете назначить для каждого экземпляра CKFinder разные baseUrl/baseDir, например, чтобы иметь отдельные папки для изображений для каждой статьи и т. д.

Переменные сеанса

Другой вариант — использовать переменные сеанса. Как только пользователь войдет в систему, сохраните в переменной сеанса правильные переменные baseDir/baseUrl.

Настройка конфигурации CKFinder вне config.xml

Чтобы использовать идентификатор или сеансы, вы должны иметь возможность сообщить CKFinder об их использовании. Для получения более подробной информации о том, как динамически изменять конфигурацию CKFinder в вашем собственном классе, обратитесь к документации: http://docs.cksource.com/CKFinder_2.x/Developers_Guide/Java/Configuration/Extending

person Wiktor Walc    schedule 19.08.2015
comment
Вы знаете, я видел эту страницу дюжину раз в своем поиске, но я не смотрел достаточно внимательно и думал, что она может установить только baseDir/baseURL во время вызова init(). Более пристальный взгляд показал мне именно то, что мне нужно было знать. Спасибо. - person Beacon80; 20.08.2015