Пользовательское разрешение Corda не работает должным образом - PullRequest
0 голосов
/ 04 февраля 2020

Использование Corda 4.3 o / s cordapp-example. Запустил деплоNodes Gradle Задача. Я добавил еще один поток com.example.flow2.ExampleFlow2 для проверки user2. Пользователь может вызвать поток только тогда, когда ему дано разрешение на InvokeRp c .startTrackedFlow, что понятно. Тем не менее, пользователь также может вызвать com.example.flow.ExampleFlow, что не должно происходить. Мой блок безопасности для node.conf приведен ниже. Есть идеи, что не так?

security {
    authService {
        dataSource {
            type=INMEMORY
            users=[
                {
                    password=test
                    permissions=[
                        ALL
                    ]
                    user=user1
                },
                {
                    password=test
                    permissions=[                    
                        "InvokeRpc.wellKnownPartyFromX500Name",
                        "InvokeRpc.startTrackedFlow",
                        "StartFlow.com.example.flow2.ExampleFlow2"
                    ]
                    user=user2
                }
            ]
        }
    }
}

Ответы [ 2 ]

2 голосов
/ 07 апреля 2020

похоже, вы решили проблему.

Ваши разрешения выглядят правильно, и я бы порекомендовал посмотреть на то, что происходило на стороне аутентификации пользователя, как и вы. Я не удивлен, что это оказалось проблемой SSL.

Спасибо за использование корды!

0 голосов
/ 09 апреля 2020

Обновление:

Очевидно, добавление InvokeRpc.startTrackedFlow к вашему RP C полномочий пользователя дает полномочия "суперпользователя" и позволяет вашему пользователю запускать все потоки .
Если вы удалите это разрешение; Ваши ограничения потока будут работать правильно.

Последние комментарии по этому вопросу здесь .

...