Ограничить доступ CURL Йены Фусеки только к localhost - PullRequest
0 голосов
/ 03 октября 2018

Я завершаю работу над RDF-сервером.Требования к проекту: 1) Triple Store, который можно запросить онлайн.2) два RDF, которые должны генерироваться еженедельно;(на основе импорта новых данных) 3) Генерация и импорт этих RDF происходит автоматически.

Вот что я сделал до сих пор: я установил Tomcat на тестовый сервер и Jena Fuseki;Насколько я знаю, я настроил его, используя файлы web.xml, shiro.ini и config.ttl.

Файлы RDF автоматически генерируются в Python и запускаются в конце импорта новых данных.Этот скрипт запускается на сервере (localhost) и использует RDFLIB для генерации файла;затем я использую CURL, чтобы удалить старый набор данных и импортировать новый.

Когда я перехожу на другой компьютер и захожу в хранилище Triplestore через http://192.168.0.12:8080/fuseki, я могу запросить данные, но (как и предполагалось) можетне обновлять и не удалять тройное содержимое .... Однако, проходя через CURL, я могу удаленно удалять и загружать новые графики (фактически предоставляя кому-либо возможность сделать это на моем сервере)

CURL -X POST -H content-type:application/rdf+xml -T /path/to/my/file/triples.xml -G http://192.168.0.12:8080/fuseki/mygraph --data-urlencode graph = http://192.168.0.12:8080/fuseki/mygraph/mydataset

ЯЗастрял в ничьей здесь, почему localhostfilter работает при посещении через графический интерфейс, а не для CURL?Я забыл фильтр / опцию безопасности?Существуют ли лучшие способы автоматического выполнения еженедельного обновления?

Для чего стоит мой файл config.ttl содержит только конфигурацию, связанную с тайм-аутом сценария.Вот мой shiro.ini файл:

[main]
# Development
ssl.enabled = false

plainMatcher=org.apache.shiro.authc.credential.SimpleCredentialsMatcher
#iniRealm=org.apache.shiro.realm.text.IniRealm
iniRealm.credentialsMatcher = $plainMatcher

localhostFilter=org.apache.jena.fuseki.authz.LocalhostFilter

[users]
# Implicitly adds "iniRealm =  org.apache.shiro.realm.text.IniRealm"
admin=Change_On_Production!

[roles]

[urls]
## Control functions open to anyone
/$/status = anon
/$/ping   = anon
/**/query = anon
/**/data** = authcBasic,user[admin]
/**/update** = authcBasic,user[admin]
/**/upload** = authcBasic,user[admin]
/**/manage** = authcBasic,user[admin]

## and the rest are restricted to localhost.
#/$/** = anon

/**/update** = localhostFilter
/**/upload** = localhostFilter
/**/manage** = localhostFilter
/**/data** = localhostFilter
/**/get** = localhostFilter

# Everything else
/**=anon
...