gpt4 book ai didi

spring-mvc - 在自定义 AuthenticationProvider 中访问 HttpServletRequest

转载 作者:行者123 更新时间:2023-12-03 13:27:54 24 4
gpt4 key购买 nike

如何在自定义 AuthenticationProvider 中访问 HttpServletRequest。我试过这样做

RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();

HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest();
String username = (String) httpReq.getAttribute("j_username");

或者
RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
HttpServletRequest httpReq = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();

String username = (String) httpReq.getAttribute("j_username");

我的用户名为空

但是 RequestContextHolder.getRequestAttributes();返回 null .

我想引用 requestcontext,将其传入,或者让 Spring 发挥它的魔力,以便我可以引用它。

我还在我的 web.xml 中提供了 RequestContextListener
  <listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

我已经搜索了安全论坛,但仍然没有找到任何东西。

提前致谢。

最佳答案

我刚刚将监听器添加到我的 web.xml 中,RequestContextHolder.getRequestAttributes() 返回 RequestAttributes 而不是 null。

<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

如果要自定义登录表单,为什么不扩展此过滤器: org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter

关于spring-mvc - 在自定义 AuthenticationProvider 中访问 HttpServletRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11348439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com