【发布时间】:2021-11-15 23:44:36
【问题描述】:
我想对 Quarkus 生成的 Swagger UI 使用我的 Keycloak 身份验证。 这是我在 application.properties 中的配置:
quarkus.swagger-ui.oauth2-redirect-url=http://localhost:8080/q/swagger-ui/oauth2-redirect.html
quarkus.smallrye-openapi.security-scheme=oidc
quarkus.smallrye-openapi.security-scheme-name=Keycloak
quarkus.smallrye-openapi.oidc-open-id-connect-url=http://localhost:8888/auth/realms/myrealm/.well-known/openid-configuration
quarkus.swagger-ui.oauth2-redirect-url=http://localhost:8080/q/swagger-ui
我的 REST 控制器是这样注释的:
@Path("/my-path")
@Authenticated
@SecurityRequirement(name = "Keycloak")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class MyController {
@GET
public List<MyObject> listAll() {
// [...]
}
}
现在,当我单击 Swagger 中的“授权”按钮时,不会被重定向到我的 Keycloak 登录页面,而是会弹出一个包含所有不同可用授权的弹出窗口:
我无法使用其中任何一个,因为我的 Keycloak不允许直接授予。
如何实现重定向登录?这甚至可能吗?
额外问题:为什么在 IntelliJ 中 swagger 属性显示为未使用?
【问题讨论】:
标签: swagger openid-connect quarkus