黄瓜测试,jhipster 和 oauth:找不到 ClientRegistrationRepository bean

Posted

技术标签:

【中文标题】黄瓜测试,jhipster 和 oauth:找不到 ClientRegistrationRepository bean【英文标题】:cucumber test, jhipster and oauth: ClientRegistrationRepository bean not found 【发布时间】:2021-01-10 09:26:45 【问题描述】:

当我将其配置为使用 oauth2 时,我在 khipster 项目中运行 Cucumber 测试时遇到问题(我也可以使用 jhipster 重现它)。

我使用以下配置文件创建项目(我称之为mono.jdl):

application 
  config 
    applicationType monolith
    authenticationType oauth2
    baseName helloworld
    buildTool maven
    packageName com.example.helloworld
    testFrameworks [cucumber]
  
  entities *

我使用命令生成项目:khipster import-jdl mono.jdl

我创建了一个非常简单的 Cucumber 测试。我创建了一个功能文件(src/test/features/kuku/kuku.feature):

Feature: just a test

    Scenario: my scenario
        And one two three

和一个包含步骤的文件(src/test/kotlin/com/example/helloworld/cucumber/stepdefs/KukuStepDefs.kt):

package com.example.helloworld.cucumber.stepdefs

import io.cucumber.java.en.When

class KukuStepDefs : StepDefs() 

    @When("one two three")
    fun magic() 
        println("four five six")
    

我尝试使用命令./mvnw integration-test 运行集成测试。但是,它失败并出现以下错误:

***************************
APPLICATION FAILED TO START
***************************

Description:

Parameter 0 of constructor in com.example.helloworld.web.rest.LogoutResource required a bean of type 'org.springframework.security.oauth2.client.registration.ClientRegistrationRepository' that could not be found.

The following candidates were found but could not be injected:
    - Bean method 'clientRegistrationRepository' in 'OAuth2ClientRegistrationRepositoryConfiguration' not loaded because OAuth2 Clients Configured Condition registered clients is not available


Action:

Consider revisiting the entries above or defining a bean of type 'org.springframework.security.oauth2.client.registration.ClientRegistrationRepository' in your configuration.

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

解决办法是找到CucumberContextConfiguration类。它包含这样的注释:

@ContextConfiguration(classes = [HelloworldApp::class])

我们必须把它改成:

import com.example.helloworld.config.TestSecurityConfiguration
(...)
@ContextConfiguration(classes = [HelloworldApp::class, TestSecurityConfiguration::class])

【讨论】:

以上是关于黄瓜测试,jhipster 和 oauth:找不到 ClientRegistrationRepository bean的主要内容,如果未能解决你的问题,请参考以下文章

yo 在 yarn global add generator-jhipster 后找不到 jhipster

JHipster - OAuth2/OIDC 需要从访问令牌中读取组

NodeJS 错误:找不到模块 './lib/oauth'

Jhipster 获取用户 oauth

使用 JHipster、Spring Security 和 oauth2 控制身份验证重定向

invalid_client:找不到OAuth客户端