Разрешить ядро ​​SOLR только для одного пользователя - PullRequest
1 голос
/ 05 апреля 2019

Я не могу найти информацию о том, как разрешить доступ к конкретному ядру SOLR только для одного пользователя.Я использую SOLR7.Вот что у меня есть:

security.json

{
  "authentication": {
    "blockUnknown": true,
    "class": "solr.BasicAuthPlugin",
    "credentials": {
      "test_admin": "xxx",
      "infographics": "xxx",
      "test_user": "xxx"
    },
    "": {
      "v": 0
    }
  },
  "authorization": {
    "class": "solr.RuleBasedAuthorizationPlugin",
    "permissions": [
      {
        "name": "all",
        "role": "admin",
        "index": 1
      },
      {
        "name": "update",
        "role": "general",
        "index": 2
      },
      {
        "name": "read",
        "role": [
          "general",
          "infographics",
          "test_user"
        ],
        "index": 3
      },
      {
        "name": "collection-admin-read",
        "role": "general",
        "index": 4
      },
      {
        "name": "core-admin-read",
        "role": "general",
        "index": 5
      },
      {
        "name": "core-specific-permission",
        "collection": "test-core",
        "role": "test_user",
        "before": 3,
        "index": 6
      }
    ],
    "user-role": {
      "test_admin": [
        "admin",
        "general"
      ],
      "infographics": "infographics",
      "test_user": "test_user"
    },
    "": {
      "v": 0
    }
  }
}

Я добавил разрешение для коллекции "test-core":

  {
    "name": "core-specific-permission",
    "collection": "test-core",
    "role": "test_user",
    "before": 3,
    "index": 6
  }

Iаутентифицироваться с test_user при вызове: /solr/test-core/select?q=*:*, это прекрасно работает, но также может получить доступ к другим ядрам, например: /solr/other-core/select?q=*:*.

Если я удалю test_user из разрешения на чтение:

      {
        "name": "read",
        "role": [
          "general",
          "infographics"
        ],
        "index": 3
      },

, то я не смогу запросить ядро.Получение 403. Для test_user я бы хотел разрешить доступ только к этому ядру /solr/test-core/select?q=*:* и ничего больше.Есть идеи, как мне этого добиться?

...