首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Quarkus + Swagger UI + Keycloak

Quarkus + Swagger UI + Keycloak
EN

Stack Overflow用户
提问于 2021-09-22 13:37:32
回答 1查看 1.1K关注 0票数 4

我想对Quarkus生成的Swagger UI使用Keycloak身份验证。这是我在application.properties中的配置:

代码语言:javascript
运行
复制
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控制器的注释如下:

代码语言:javascript
运行
复制
@Path("/my-path")
@Authenticated
@SecurityRequirement(name = "Keycloak")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class MyController {

    @GET
    public List<MyObject> listAll() {
       // [...]
    }
}

现在,当我单击Swagger,中的“授权”按钮,而不是被重定向到我的密钥披风登录页面时,我得到了一个弹出窗口,其中包含了所有不同的可用授权:

我不能使用这些,因为我的密钥披风是,不允许直接授予

如何通过重定向实现登录?这有可能吗?

额外的问题:为什么swagger属性在IntelliJ中显示为未使用?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-22 19:21:23

好吧,我找到了一种让它工作的方法,,尽管它有隐式流,还有一个专用的第二个(公共)客户端

夸夸斯application.properties:

代码语言:javascript
运行
复制
# Swagger
quarkus.smallrye-openapi.security-scheme=oauth2-implicit
quarkus.smallrye-openapi.security-scheme-name=Keycloak
quarkus.smallrye-openapi.oauth2-implicit-authorization-url=http://localhost:8888/auth/realms/my-realm/protocol/openid-connect/auth
quarkus.swagger-ui.oauth2-redirect-url=http://localhost:8080/q/swagger-ui/oauth2-redirect.html

需要为oauth2-redirect.html的重定向URL

现在我只需要输入client_id:

然后我被重定向到Keycloak,然后返回Swagger。希望这能帮助任何希望达到同样目标的人

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69285386

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档