Spring Boot jwt安全性使用Angular 10将cookie设置为HttpOnly从客户端返回null,但可与邮递员一起使用

问题描述

问题是,当我收到/authenticate请求时,我生成JWT token,将其设置为HttpOnly,然后将cookie添加HttpServletResponse要访问检查Cookie以确定用户是否应查看结果的其他端点,这些Cookie在HttpservletRequest中为空。主要问题是,当我在邮递员中执行相同操作时,一切正常。

此处提供API代码

/authenticate代码段:

    final String jwt = jwtUtilService.generatetoken(userDetails);
    Cookie cookie = new Cookie("token","Bearer-" + jwt);
    cookie.setPath("/");
    cookie.setHttpOnly(true);
    res.addCookie(cookie);
    return ResponseEntity.ok(new AuthenticationResponse("success"));

dofilter链:

    String jwtToken = null;
    Cookie[] cookies = request.getCookies();
    if (cookies != null && cookies.length > 0){
        for (Cookie cookie : cookies){
            if (cookie.getName().equals("token")){
                jwtToken = cookie.getValue();
                break;
            }
        }
    }

在这里,当我通过null发送请求时,cookies是Angular

这是图像示例:

邮递员/authenticate Cookie:

Postman Response

/hello之后请求邮递员/authenticate的Cookie:

Cookes on Postman

/hello上有Angular请求(从Angular发送)后,/authenticate上的Cookie:

Cookies Angular

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...