【问题标题】:Can I get the request parameter at authentication time with spring security?我可以使用spring security在身份验证时获取请求参数吗?
【发布时间】:2019-06-10 15:15:35
【问题描述】:

我开发了一个具有安全性和 JWT 的 java spring 服务器。 在开发过程中,我得到了标题中的问题,因为我应该知道认证时的参数值。 除非它,我应该发送 JWT 作为参数。

认证时能否在不影响控制器中获取参数的情况下获取请求参数?

没错,我想比较一下 JWT 负载和一些数据。

【问题讨论】:

    标签: java spring web jwt


    【解决方案1】:

    当然。 Spring Security 是基于标准的 Servlet Filter 设计的,该过滤器由一系列FilterChain 组成,用于处理 HTTP 请求。链中的每个过滤器都负责做特定的事情,例如身份验证、授权、会话管理、CSRF 保护、异常处理等......

    因此,这意味着您可以实现过滤器并使用HttpServletRequest API 来获取请求参数以验证 JWT,例如:

    httpServletRequest.getHeader("xxxx");
    httpServletRequest.getParameter("xxxxx");
    

    【讨论】:

    • 我确实在我的代码中使用了httpServletRequest.getParameter("xxxxx");。但是,它会在控制器中产生错误java.lang.IllegalStateException: getWriter() has already been called for this response。我不想影响我的控制器....
    • 不知道为什么它说getWriter(),因为我们只调用与请求相关的只读API,不知道为什么它需要处理与“写入”相关的事情......
    猜你喜欢
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    • 2021-05-04
    • 2012-11-23
    • 2011-11-14
    • 2017-05-10
    • 2011-03-22
    • 1970-01-01
    相关资源
    最近更新 更多