http - Micronaut 的 netty 服务器 http 请求缺少标头
问题描述
我正在尝试将自定义身份验证服务与 micronaut 安全性集成在一起,为此我实现了我自己的 AuthenticationProvider 并且它适用于基本身份验证,但是我还需要处理请求中传递的身份验证令牌。
为此,我尝试实现自己的 AuthenticationFetcher 并在 fetchAuthentication 方法中尝试获取自定义身份验证标头,然后对请求进行身份验证。
@Override
public Publisher<Authentication> fetchAuthentication(HttpRequest<?> request) {
if (request.getHeaders().get(authConfiguration.getTokenHeader()) != null) {
我遇到的问题是 netty 的 request.getHeaders() 没有返回发送到网络服务的所有标头(我从浏览器开发者控制台确认)
GET /service/all HTTP/1.1
Accept: application/json, text/plain, */*
Cookie: m=2258:Z3Vlc3Q6Z3Vlc3Q%253D
Accept-Encoding: gzip, deflate
Host: localhost:4200
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1 Safari/605.1.15
Accept-Language: pl-pl
Referer: http://localhost:4200/campaigns
Connection: keep-alive
X-Token: my.token.here
这是我的应用设置
micronaut:
server:
netty:
maxHeaderSize: 1024
worker:
threads: 4
parent:
threads: 4
childOptions:
autoRead: true
application:
name: appName
任何反馈表示赞赏。
解决方案
这是由 cors 配置引起的:
micronaut:
server:
cors:
enabled: true
添加后,我的请求标头已在过滤器链中删除。
推荐阅读
- python - 如何重定向到烧瓶的上一页?
- vue.js - Vue路由器延迟加载不起作用或创建单独的块文件
- sql - 使用 PARTITION BY 对行进行编号以过滤结果
- python - 检查项目是否在字典值中
- google-apps-script - 等待在 AppsScript 中的 BigQuery 中插入?
- reactjs - 使用按钮清除 react-admin 编辑表单中的多个字段
- java - 插入重置游戏循环后游戏崩溃
- python - 如何从列表中随机生成 Python 变量并在函数之间保持其值
- javascript - Vue如何获取div的高度
- ios - 如何制作如下所示的书籍封面阴影