重定向网址没有我发送的令牌

时间:2018-09-11 22:46:21

标签: java spring spring-boot spring-security

帖子是否始终使用重定向来响应请求。如果是这样,如何确保响应头也转发到重定向的URL?目前,我在发送的响应标头中设置了JWT令牌,但重定向的url不包含该令牌。有人可以告诉我如何确保获得JWT令牌,以便可以在以后的请求中使用它。

        var ___zoom;
        var ___lat;
        var ___long;
        var ___basemap;

        var ___type;
        var ___url;
        var ___title;
        var ___opacity;



        if ( location.search.match(/zoom=([^&]*)/i) )
        {
             ___zoom = location.search.match(/zoom=([^&]*)/i)[1];
         }

        if ( location.search.match(/lat=([^&]*)/i) )
        {
           ___lat = location.search.match(/lat=([^&]*)/i)[1];
        }

        if (location.search.match(/long=([^&]*)/i))
        {
            ___long = location.search.match(/long=([^&]*)/i)[1];
        }

        if (location.search.match(/basemap=([^&]*)/i))
        {
            ___basemap = location.search.match(/basemap=([^&]*)/i)[1];
        }

        if (location.search.match(/type=([^&]*)/i))
        {
            ___type = location.search.match(/type=([^&]*)/i)[1];
        }

       if (location.search.match(/url=([^&]*)/i))
        {
            ___url = location.search.match(/url=([^&]*)/i)[1];
        }


        if (location.search.match(/title=([^&]*)/i))
        {
            ___title = location.search.match(/title=([^&]*)/i)[1];
        }

        if (location.search.match(/opacity=([^&]*)/i))
        {
            ___opacity = location.search.match(/opacity=([^&]*)/i)[1];
        }


        //console.log(location.search.match(/zoom=([^&]*)/i)[0]);   //    'zoom=17'
        //console.log(location.search.match(/zoom=([^&]*)/i)[1]);   //     '17'
        console.log(___zoom); 
        console.log(___lat); 
        console.log(___long); 
        console.log(___basemap); 

        console.log(___type); 
        console.log(___url); 
        console.log(___title); 
        console.log(___opacity); 

With JWT token before redirect

After Redirect- Without JWT

1 个答案:

答案 0 :(得分:0)

如果您对super.onAuthenticationSuccess(request, response, authentication);行有把握,那很可能是罪魁祸首。

我认为您的课程类似于extends AbstractAuthenticationTargetUrlRequestHandler implements AuthenticationSuccessHandler {

如果深入研究,您会在handle类的AbstractAuthenticationTargetUrlRequestHandler方法内找到,该方法具有以下内容:

redirectStrategy.sendRedirect(request, response, targetUrl);,它将在您的浏览器中以302状态重定向。

如果您了解此问题,则无法将其放在标题中。还有其他方法:您可以从前端进行AJAX调用,或者在标头中返回带有JWT的JSON或不使用sendRedirect进行转发。

可能您正在转发请求(RequestDispatcher.forward() vs HttpServletResponse.sendRedirect()