日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java切面获取reqiest,怎么在webflux切面中获取请求头.

發布時間:2024/4/17 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java切面获取reqiest,怎么在webflux切面中获取请求头. 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題描述.

萌新在線踩坑....

我需要在切面中獲取當前用戶的請求信息,比如請求頭信息.

但是不能像mvc一樣通過以下方式實現.

@Autowired

private HttpServletRequest request;

ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();

// 獲取 request

HttpServletRequest request = requestAttributes.getRequest();

問題出現的環境背景及自己嘗試過哪些方法

我嘗試過自己創建一個ReactiveRequestContextHolder來獲取

https://segmentfault.com/a/1190000018766412

但是返回是null.

之后

相關代碼

我參考了以上的文章的代碼.

以下是我的代碼(我可能哪里理解錯誤了).

// 攔截器

// 把request對象放入Mono上下文中,key為一個class對象

@Configuration

@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE)

public class ReactiveRequestContextFilter implements WebFilter {

@Override

public Mono filter(ServerWebExchange exchange, WebFilterChain chain) {

ServerHttpRequest request = exchange.getRequest();

return chain.filter(exchange)

.subscriberContext(ctx -> ctx.put(ReactiveRequestContextHolder.CONTEXT_KEY, request));

}

}

// 上下文

// 從Mono中獲取上下文,key為一個class對象

public class ReactiveRequestContextHolder {

public static final Class CONTEXT_KEY = ServerHttpRequest.class;

public static Mono getRequest() {

return Mono.subscriberContext()

// TODO 報錯了 reactor.core.Exceptions$ErrorCallbackNotImplemented: java.util.NoSuchElementException: Context is empty

.map(ctx -> ctx.get(CONTEXT_KEY));

}

}

// TODO 未完成 切面bean

// 過濾含有@test注解的控制層方法,取出名為testHeader的請求頭信息并打印.

@Slf4j

@Aspect

@Component

@AllArgsConstructor

public class SecurityInnerAspect {

// test 的內容被調用后進入切面

@Around("@annotation(test)")

// 不用JoinPoint 用 ProceedingJoinPoint,因為ProceedingJoinPoint可以攔截請求

public Object around(ProceedingJoinPoint point, Inner inner) throws Throwable {

ReactiveRequestContextHolder.getRequest().subscribe(serverHttpRequest -> {

String header = Objects.requireNonNull(serverHttpRequest.getHeaders().get("testHeaderStr")).get(0);

log.info("print testHeader: {}", header);

});

return point.proceed();

}

}

期待的結果

我期待能在切面中取出用戶request對象進行操作.

或能有其他解決方案.

感謝!!

實際看到的錯誤信息

本以為會通過spring的依賴反轉拿到request對象,但是他沒有和mvc一樣的把當前用戶的request對象注冊成bean.也沒有放到當前線程中.

且其他方式不太會用.

so,目前沒有辦法在切面bean中取出request信息

總結

以上是生活随笔為你收集整理的java切面获取reqiest,怎么在webflux切面中获取请求头.的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩电影一区二区三区四区 | 国内偷拍久久 | 亚洲aⅴ乱码精品成人区 | 久久久久久久久久久久97 | 精品成人一区二区 | 国产一级生活片 | 欧美天堂| 十大污视频 | 快射视频网 | 91在线看视频 | 亚洲人视频在线 | 99精品欧美一区二区蜜桃免费 | 日韩一区二区免费播放 | 国产精品无码一区二区无人区多人 | 日本国产一区二区三区 | 少妇高潮网站 | 国产精品88 | 欧美成人第一页 | 黄色一级视频免费 | 一二三区不卡 | 爱爱视频一区二区 | 老公吃小头头视频免费观看 | 91成人黄色| 国产精品久久久久国产a级 国产一区二区在线播放 | 国产性色av| 国产成人精品亚洲精品色欲 | 你懂的在线免费观看 | 蜜乳av一区| 雪花飘电影在线观看免费高清 | 大地资源中文第三页 | 免费搞黄网站 | jizz日本少妇 | 亚洲不卡电影 | 欧美综合第一页 | 老头糟蹋新婚少妇系列小说 | 偷拍亚洲色图 | 看一级黄色片 | 一区二区三区不卡视频在线观看 | 成人91在线观看 | 黄色一级一片免费播放 | 精品xxx| 粉嫩av一区二区 | 干干干日日日 | 毛片一级在线观看 | 肉色超薄丝袜脚交一区二区图片 | 中文久久乱码一区二区 | 日韩精品视频免费在线观看 | 丰满少妇中文字幕 | 日本三级精品 | 亚洲国产精品va在线看黑人 | 国产一区二区三区免费看 | 97超碰超碰 | 三级自拍视频 | 又色又爽又黄18网站 | 亚洲视频一区在线 | 久久久久久片 | 日本一区二区在线免费观看 | 久久久亚洲 | 性一交一乱一区二区洋洋av | 双乳被四个男人吃奶h文 | 性激情视频 | www精品国产 | 91香蕉视频在线 | 久久888| 国产一区二区三区在线播放无 | 精品一区电影 | 一起艹在线观看 | 亚洲电影影音先锋 | 丝袜制服影音先锋 | 99re这里只有精品66 | 噜噜噜久久,亚洲精品国产品 | 自慰无码一区二区三区 | 久久久96| 淫欲av| 182tv福利视频 | 中文字幕在线2018 | 天天干国产 | 最好看的日本字幕mv视频大全 | 亚洲av无码国产精品久久不卡 | 国产精品第七页 | 国产又粗又长又大视频 | 九九爱爱视频 | 91免费 看片 | 日韩成人免费视频 | 国产高清一区二区 | 色播开心网 | 五月婷婷在线视频 | 免费男女乱淫真视频免费播放 | 国产在线色视频 | av自拍一区| 久久久综合网 | 亚洲不卡在线 | 美腿丝袜亚洲综合 | 国产片免费| 另类亚洲色图 | 中文字幕一区二区视频 | 91视频论坛 | 青青草免费公开视频 | 久久传媒|