Обработчик ресурсов в обход безопасности Springboot - PullRequest
0 голосов
/ 11 января 2020

У меня есть приложение springboot, для которого требуется специальный обработчик ресурсов, в котором он хранит и извлекает файлы, помимо файла по умолчанию, который я получил и запустил с этим;

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry

    .addResourceHandler("/data/**")
    .addResourceLocations(resourceLocation)

    .setCachePeriod(864000)
      .resourceChain(true)
      .addResolver(new PathResourceResolver())
      ;


}

Мое приложение имеет несколько прав доступа, которые должен иметь доступ к определенным частям расположения ресурса данных, например. / data / keys / ** должен быть доступен только администратору ADMINISTRATOR, / data / client / ** только клиенту, / data / public / ** всем.

я попытался выполнить эту функцию с помощью этой части кода:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.antMatcher("/data/**").authorizeRequests()
            // ADMIN file restriction
            .anyRequest().authenticated()
}

(я проверяю безопасность здесь на всех данных / **)

Теперь с этим кодом любой запрос к / data / ** matcher не аутентифицирован, и любой может получить к нему доступ независимо от того, что я делаю. Но каким-то образом я могу применить безопасность к обработчику ресурсов по умолчанию, и он прекрасно работает, если я пытаюсь ограничить.

Кто-нибудь знает, как обойти эту проблему?

Заранее большое спасибо!

ОБНОВЛЕНИЕ

После некоторого расследования и попытки Из опций с разными типами файлов и прав доступа я заметил, что в этом может быть ошибка. Я играл с этими расширениями файла .txt. html и файл без расширения. НАПРИМЕР.

  1. Открыл новый браузер, попытался загрузить test.txt и test1 ---> Доступ запрещен

  2. Войдите в систему с правами, отличными от ADMINISTRATOR, попытался загрузить test.txt и test1 ----> Запрещено

  3. Вы вошли как ADMINISTRATOR, скачали оба

  4. Вышли из системы

  5. Пробная загрузка без учетных данных test.txt ---> Доступ запрещен; test1 ----> Загружено

  6. Выполнено вход с правами, отличными от ADMINISTRATOR test.txt ---> Запрещено; test1 ----> Загружено

Я думаю, что есть ошибка с файлами без каких-либо расширений, кто-нибудь имел подобный опыт или знает, почему это происходит? Спасибо

...