无法使用 Springfox 发送授权承载令牌

2024-01-27

我无法理解为什么“Authorization: Bearer __”没有使用 Springfox 2.5.0 在我的 api 中发送。我有以下配置:

private ApiKey apiKey() {
        return new ApiKey(
                "Authorization", // name: My key - Authorization
                "api_key", // keyname: api_key
                "header");
    }

@Bean
    SecurityConfiguration security() {
        return new SecurityConfiguration(
                null, null, null,
                "Docserver2_fwk", // app name
                "BEARER", // api key value
                ApiKeyVehicle.HEADER, "Authorization", ",");
    }

enter image description here And the curl being sent is:

看来我无法在 springfox (2.5.0) 中发送“授权:不记名令牌”,这可能吗?这是一个已知问题吗?

类似问题:https://github.com/springfox/springfox/issues/1812 https://github.com/springfox/springfox/issues/1812

PS:OpenAPI 3.0允许“承载”格式,示例:https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md#jwt-bearer-sample https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.1.md#jwt-bearer-sample

Thanks.


一个简单的解决方法是输入Bearer而不是在其后粘贴令牌。您最终将得到一个文本框,其中包含:

Bearer <token>

我希望有一种更自动化的方式。但目前看来,文本框中的内容似乎已简单地粘贴到给定标头条目的值部分中。我想前缀的原因Bearer不会自动注入是因为 Swagger 会对用户使用哪种身份验证非常有意见!

@Configuration
@EnableSwagger2
class SwaggerConfig {

    @Bean
    Docket api() {

        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(Predicates.not(PathSelectors.regex("/error.*")))
                .build()
                .securitySchemes(securitySchemes())
    }

    private static ArrayList<? extends SecurityScheme> securitySchemes() {

        return [new ApiKey("Bearer", "Authorization", "header")]
    }
}

REST 端点方法:

@GetMapping("/count")
@ApiOperation(value = "Count the number of entities associated with resource name. This operation does not requires any role." , authorizations = [@Authorization(value = "Bearer")])
def count() {

    count(service)
}

The curl登录前命令:

curl -X GET "http://localhost:8080/category/count" -H "accept: */*"

回复:

{
  "timestamp": "2018-10-29T15:13:02.388+0000",
  "status": 401,
  "error": "Unauthorized",
  "message": "Unauthorized",
  "path": "/category/count"
}

The curl登录后命令:

curl -X GET "http://localhost:8080/category/count" -H "accept: */*" -H "Authorization: Bearer eyJhbGciOiJIUzUxMiJ9..."

回复:

{
  "message": "There are 0 entities",
  "count": 0
}

注意:我的代码是用 Groovy 编写的,如果您使用标准 Java,我相信您可以翻译。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 Springfox 发送授权承载令牌 的相关文章

  • 如何在 Antlr4 中为零参数函数编写语法

    我的函数具有参数语法 如下面的词法分析器和解析器 MyFunctionsLexer g4 lexer grammar MyFunctionsLexer FUNCTION FUNCTION NAME A Za z0 9 DOT COMMA L
  • 打印星号的 ASCII 菱形

    我的程序打印出这样的钻石 但只有当参数或菱形的每一面为4 例如如果我输入6 底部三角形的间距是错误的 我一直在试图找出答案 当参数改变时 底部的三角形不会改变 只有顶部的三角形会改变 它只适用于输入4 public static void
  • 如何将 Mat (opencv) 转换为 INDArray (DL4J)?

    我希望任何人都可以帮助我解决这个任务 我正在处理一些图像分类并尝试将 OpenCv 3 2 0 和 DL4J 结合起来 我知道DL4J也包含Opencv 但我认为它没什么用 谁能帮我 如何转换成 INDArray 我尝试阅读一些问题here
  • Spring 规范 - 谓词的联合

    我需要一个函数来过滤参数并构建查询 我有 4 个参数 因此如果我尝试为每个条件实现查询 我将不得不编写 16 2 4 实施 这不是一个好主意 我尝试通过界面改进我的代码Specification来自 Spring Data JPA 但我无法
  • 来自十六进制代码的 Apache POI XSSFColor

    我想将单元格的前景色设置为十六进制代码中的给定颜色 例如 当我尝试将其设置为红色时 style setFillForegroundColor new XSSFColor Color decode FF0000 getIndexed 无论我在
  • 需要使用 joda 进行灵活的日期时间转换

    我想使用 joda 解析电子邮件中的日期时间字符串 不幸的是我得到了各种不同的格式 例如 Wed 19 Jan 2011 12 52 31 0600 Wed 19 Jan 2011 10 15 34 0800 PST Wed 19 Jan
  • Jackson XML ArrayList 输出具有两个包装器元素

    我在 Jackson 生成的 XML 输出中得到了两个包装器元素 我只想拥有一个 我有一个 Java bean Entity Table name CITIES JacksonXmlRootElement localName City pu
  • 是否可以通过编程方式查找 logback 日志文件?

    自动附加日志文件以支持电子邮件会很有用 我可以以编程方式设置路径 如以编程方式设置 Logback Appender 路径 https stackoverflow com questions 3803184 setting logback
  • 套接字的读写如何同步?

    我们创建一个套接字 在套接字的一侧有一个 服务器 在另一侧有一个 客户端 服务器和客户端都可以向套接字写入和读取 这是我的理解 我不明白以下事情 如果服务器从套接字读取数据 它在套接字中是否只看到客户端写入套接字的内容 我的意思是 如果服务
  • 使用 Guice 优化注册表

    你好 今天思考了一种优化 有一些疑问 语境 我正在使用 Guice 2 进行 Java 开发 在我的网络应用程序中 我有一个转换器注册表 可以即时转换为某种类型 转换器描述如下 public class StringToBoolean im
  • 在另一个模块中使用自定义 gradle 插件模块

    我正在开发一个自定义插件 我希望能够在稍后阶段将其部署到存储库 因此我为其创建了一个独立的模块 在对其进行任何正式的 TDD 之前 我想手动进行某些探索性测试 因此 我创建了一个使用给定插件的演示模块 到目前为止 我发现执行此操作的唯一方法
  • 如何避免 ArrayIndexOutOfBoundsException 或 IndexOutOfBoundsException? [复制]

    这个问题在这里已经有答案了 如果你的问题是我得到了java lang ArrayIndexOutOfBoundsException在我的代码中 我不明白为什么会发生这种情况 这意味着什么以及如何避免它 这应该是最全面的典范 https me
  • Java:如何为山区时间创建 TimeZone 对象?

    必须不禁用夏令时 嗯 在这个清单 http en wikipedia org wiki List of tz database time zones在 zoneinfo 时区名称中 有很多声称是 山地时间 找到最适合您想要的那个 然后使用它
  • 内部存储的安全性如何?

    我需要的 对于 Android 我需要永久保存数据 但也能够编辑 并且显然是读取 它 用户不应访问此数据 它可以包含诸如高分之类的内容 用户不得对其进行编辑 我的问题 我会 并且已经 使用过Internal Storage 但我不确定它实际
  • 流中的非终结符 forEach() ?

    有时 在处理 Java Stream 时 我发现自己需要一个非终端 forEach 来触发副作用但不终止处理 我怀疑我可以用 map item gt f item 之类的方法来做到这一点 其中方法 f 执行副作用并将项目返回到流中 但这似乎
  • 是否可以使用 Java Guava 将函数应用于集合?

    我想使用 Guava 将函数应用于集合 地图等 基本上 我需要调整 a 的行和列的大小Table分别使所有行和列的大小相同 执行如下操作 Table
  • Hamcrest Matchers - 断言列表类型

    问题 我目前正在尝试使用 Hamcrest Matchers 来断言返回的列表类型是特定类型 例如 假设我的服务调用返回以下列表 List
  • 如何重新启动死线程? [复制]

    这个问题在这里已经有答案了 有哪些不同的可能性可以带来死线程回到可运行状态 如果您查看线程生命周期图像 就会发现一旦线程终止 您就无法返回到新位置 So 没有办法将死线程恢复到可运行状态 相反 您应该创建一个新的 Thread 实例
  • org.apache.commons.net.io.CopyStreamException:复制时捕获 IOException

    我正在尝试使用以下方法中的代码将在我的服务器中创建的一些文件复制到 FTP 但奇怪的是我随机地低于错误 我无法弄清楚发生了什么 Exception org apache commons net io CopyStreamException
  • Spring表单ModelAttribute字段验证避免400 Bad Request错误

    我有一个ArticleFormModel包含正常发送的数据html form由 Spring 使用注入 ModelAttribute注释 即 RequestMapping value edit method RequestMethod PO

随机推荐

  • Android:使用贝塞尔曲线进行数字签名

    I am trying two draw digital signature using Bezier as show in above image when i touch and try to draw line then the re
  • 使用 Djoser 和 Django Rest Framework 激活帐户

    我在我的项目中使用 Djoser 进行身份验证 4天多来一直在努力添加电子邮件激活 但似乎未能很好地抓住它 因为文档对我来说有点难以理解 这是我的代码设置 py change auth model to custom model AUTH
  • 简单的多层神经网络实现[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 不久前 我开始了机器学习的冒险 在我学习的最后两年期间 我读了很多书 写了很多机器学习算法的代码 除了神经网络 这超出了我的范围 我对这个
  • HQL 与 SQL/Hibernate netbeans HQL 编辑器

    我正在自学休眠 并且很困惑为什么我不能只编写简单的 SQL 查询 我发现它比普通 SQL 我习惯的 使用起来更混乱 另外 我发现 NetBeans HQL 编辑器非常烦人 对我来说 在 HQL 中生成正确的查询比较困难 然后在 SQL 中生
  • 如何使用 Doxygen 和 Doxygen::Filter::Perl 生成 Perl 子例程的文档?

    我正在尝试弄清楚如何使用Doxygen Filter Perl https metacpan org pod Doxygen Filter Perl生成 Perl 文件的文档 我从一个非常简单的文件开始只是为了看看我是否可以让它工作 tes
  • Angular2 中的类型“{}”不存在属性

    我已经使用 http 调用获取数据 但是 我在编译时显示了上述错误 用户组件 ts this user saveUsers model then data gt if data success true this router naviga
  • 控制器:ctrlfmt 格式错误的控制器字符串“”。必须将 `__name__ 匹配为 __id__` 或 `__name__`

    在 rootes js 中 state main mydata url my data templateUrl app views pages my data html controller mydataCtrl 控制器 controlle
  • 如何关闭被杀死的程序打开的套接字?

    我有一个 Python 应用程序 它打开一个简单的 TCP 套接字来与单独主机上的另一个 Python 应用程序进行通信 有时程序要么出错 要么我直接杀死它 在任何一种情况下 套接字都可能会保持打开状态一段未知的时间 下次我去运行该程序时
  • 使用键/对表与 XML 字段和 XPath 的 SQL Server 性能对比

    我已经看到了关于这个主题的一些问题 但我正在寻找一些关于这个主题的见解性能差异这两种技术之间 例如 假设我正在记录事件日志 该日志将带有特定事件的键 值对的字典集进入系统 我将使用基本数据在事件表中记录一个条目 但随后我需要一种方法来链接其
  • Django 模板,如果项目 id 等于父循环名称,则循环遍历项目

    我正在尝试循环不同的区域 然后显示属于该区域的项目 Zone是一个模型 有一个名称和一个ForeignKey Planche 是一个以 Zone 作为外键的模型 我正在循环区域以显示每个区域 在该循环中 我循环所有 Planches 并且只
  • 如何初始化 struct sockaddr_in 的变量

    当我初始化变量时 我会执行以下操作 int i 0 char myText NULL 那么我该如何初始化struct sockaddr in类型变量 struct sockaddr in addr 如果您想将声明中的所有字段设置为零 无论结
  • 威尔逊评分区间的 Python 实现?

    看完之后如何不按平均评分排序 http www evanmiller org how not to sort by average rating html 我很好奇是否有人有伯努利参数的威尔逊得分置信区间下限的 Python 实现 Redd
  • Quill Editor:基于标签/类别的限制编辑

    我有一个场景 我想为用户提供一个半可编辑的模板 例如 p Name span class editable span p or div p Non editable content p h2 Some editable content h2
  • 如何在 Android 中扫描可用的广播电台?

    我们想要访问 Android 设备附近所有可用的无线电频率 有没有可用的 API 鉴于某些收音机在没有耳机 用作天线 的情况下无法启动 我们是否可以在不连接耳机的情况下扫描频率 我们想要访问 Android 设备附近可用的所有无线电频率 是
  • 无法在 NLB 上加载视图状态

    我们有一个系统 它可以动态创建每次回发的页面控件 并使用浏览器历史记录等处理回发 问题是 在生产服务器 NLB 上的 2 个节点 上 我们随机出现在不同的位置 没有发现任何相关性 加载视图状态失败 控制树可能是不同的错误 然而 我们的临时服
  • 在 Jenkins 中使用可编辑电子邮件扩展添加附件

    我正在 Jenkins 中使用可编辑电子邮件插件来附加电子邮件文件 问题是插件无法找到要附加的文件 我的文件结构是这样的 报告目录工作区 ReportDirectory 包含我要附加的报告 我相信插件的基本目录是工作区 所以我将附件位置指定
  • 是否应该始终将 role="contentinfo" 添加到页脚元素上?

    在 ARIA 演示网站上 role contentinfo 通常添加在footer元素 然而 现代网页设计中的页脚 http www smashingmagazine com 2008 04 08 footers in modern web
  • django中多参数过滤器和链式过滤器的区别

    django 中的多参数过滤器和链式过滤器有什么区别 正如您在生成的 SQL 语句中所看到的 差异并不是某些人可能怀疑的 OR 这就是 WHERE 和 JOIN 的放置方式 示例1 相同的连接表 来自https docs djangopro
  • 使用 Dapper 和 Postgresql - citext 数据类型

    我不确定是否有办法支持这一点 但我无法让 Dapper 将字符串参数值映射到 Postgresql citext 数据类型 因为它似乎使用的是文本类型 特别是 我试图调用一个接受 citext 参数的函数 我得到的错误是 var c Con
  • 无法使用 Springfox 发送授权承载令牌

    我无法理解为什么 Authorization Bearer 没有使用 Springfox 2 5 0 在我的 api 中发送 我有以下配置 private ApiKey apiKey return new ApiKey Authorizat