Есть ли способ для Б получить доступ к секретам А, не экспортируя их для просмотра всем миром?
Если я не правильно понял вопрос, вы можете использовать квалифицированный экспорт , чтобы убедиться, что вы экспортируете эти пакеты только в определенный (список) модуль.Вы можете сделать это так:
module A {
exports external.class1.secretProvider to B;
exports internal.SharedSecrets to B;
// ... rest of your declarations
}