Проверка интеграции адаптера Keycloak завершилась ошибкой. Необходимо установить 'realm' в конфигурации - PullRequest
0 голосов
/ 19 января 2019

Я использую Keycloak 4.4.0 Final, ниже структура проекта enter image description here

Parent A pom Содержит все зависимости.Управление ниже - это psedocode

<dependencyManagement>
<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-core</artifactId>
    <version>${keycloak.version}</version>
</dependency>
<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-adapter-core</artifactId>
    <version>${keycloak.version}</version>
</dependency>
<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-adapter-spi</artifactId>
    <version>${keycloak.version}</version>
</dependency>
<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-server-spi</artifactId>
    <version>${keycloak.version}</version>
</dependency>
<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-server-spi-private</artifactId>
    <version>${keycloak.version}</version>
</dependency>
<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-model-jpa</artifactId>
    <version>${keycloak.version}</version>
</dependency>
<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-servlet-filter-adapter</artifactId>
    <version>${keycloak.version}</version>
    <exclusions>
        <exclusion>
            <groupId>org.keycloak</groupId>
            <artifactId>keycloak-core</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.keycloak</groupId>
            <artifactId>keycloak-adapter-core</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.keycloak</groupId>
            <artifactId>keycloak-adapter-spi</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </exclusion>
        <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
        </exclusion>
        <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </exclusion>
        <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk15on</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-legacy-spring-boot-starter</artifactId>
    <version>${keycloak.version}</version>
</dependency>
<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-wildfly-adapter-dist</artifactId>
    <version>${keycloak.version}</version>
    <type>zip</type>
</dependency>
</dependencyManagement>

и в Child B я добавляю зависимости

<dependencies>
    <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-adapter-core</artifactId>
    </dependency>
    <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-core</artifactId>
    </dependency>
    <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-adapter-spi</artifactId>
    </dependency>
</dependencies>
<dependencyManagement>
    <dependency>
        <groupId>org.keycloak.bom</groupId>
        <artifactId>keycloak-adapter-bom</artifactId>
        <version>${keycloak.version}</version>
        <type>pom</type>
        <scope>import</scope>
     </dependency>
</dependencyManagement>

Интеграционный тест в дочернем дочернем элементе D терпит неудачу, выдавая исключение «java.lang.RuntimeException: необходимо установить« realm »в конфигурации». Удивительно, если я добавлю зависимость keycloak-legacy-spring-boot-starter к тесту Child B pom без исключения. Без изменений в тестовом коде.

@ActiveProfiles(profiles = "Development")
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT,
        classes = FacebookTestConfiguration.class)
public class FacebookGreetingClientShouldTest {   
    @Autowired
    private TestRestTemplate testRestTemplate;

    FacebookGreetingClient greetingClient;

    FacebookChannelConfiguration facebookChannelConfiguration;

    @Autowired
    MockFacebookServer facebookServer;

    @Before
    public void setUp() {
        facebookChannelConfiguration = new FacebookChannelConfiguration();
        Deencapsulation.setField(facebookChannelConfiguration, "url", "/facebookTest");
        Deencapsulation.setField(facebookChannelConfiguration, "valid", true);
        FacebookToken fbAccessToken = new FacebookToken();
        fbAccessToken.setSecureValue("abcdfghf");
        facebookChannelConfiguration.setAccessToken(fbAccessToken);
        facebookChannelConfiguration.setGreeting("greeting");
        Deencapsulation.setField(facebookChannelConfiguration, "fbClient",
                testRestTemplate.getRestTemplate());
    }
    @After
    public void destroy() {
        facebookServer.data.clear();
    } 
    @Test
    public void greetingsTest() throws Exception { 
        try {
            greetingClient = new FacebookGreetingClient(facebookChannelConfiguration);
            greetingClient.run();
            Assert.assertEquals(2, facebookServer.data.size());             Assert.assertTrue(facebookServer.data.get(0).toString().contains("get_started"));             Assert.assertTrue(facebookServer.data.get(1).toString().contains("greeting"));
        } catch (Exception e) {
            Assert.fail();
            e.printStackTrace();
        } 
    } 
}

ПРИМЕЧАНИЕ: странное поведение, если я удаляю зависимости keycloak-legacy-spring-boot-starter из Parent A pom dependencyManagement и добавляю их в Child B pom dependencyManagement, тесты пройдены, ошибок и исключений нет. Без изменений в тестовом коде Может ли кто-нибудь помочь мне.

Исключение: java.lang.RuntimeException: java.lang.RuntimeException: необходимо установить 'realm' в конфигурации, когда зависимости childcloak-legacy-spring-boot-starter добавлены в Child B

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...