springboot操作cookie

news/2024/5/18 16:39:47 标签: cookie, springboot

在响应中添加cookie


@RequestMapping(value="/casLogin", method= RequestMethod.GET)
public CommonResult<String> casLogin(HttpServletResponse response, @RequestParam String accessToken, @RequestParam String refreshToken) {
        try {
            Cookie accessTokenCookie = new Cookie("access_token", accessToken); //创建Cookie对象,指定名字和值
            Cookie refreshTokenCookie = new Cookie("access_token_Refresh", refreshToken); //创建Cookie对象,指定名字和值
            response.addCookie(accessTokenCookie); //在响应中添加Cookie对象
            response.addCookie(refreshTokenCookie); //在响应中添加Cookie对象
            return CommonResult.success("登录成功!");
        } catch (Exception e) {
            return CommonResult.failed(e.getMessage());
        }
}

从请求中获取cookie

@RequestMapping(value="/casLoginOut", method= RequestMethod.GET)
public CommonResult<String> casLoginOut(HttpServletResponse response, HttpServletRequest request) {
    try {

        String access_token = "";
        Cookie[] cookies = request.getCookies();
        for (int i = 0; i < cookies.length; i++) {
            Cookie cookie = cookies[i];
            if (cookie.getName().equals("access_token")) {
                access_token = cookie.getValue();
            }
        }
        RestTemplate client = new RestTemplate();

        //截取网关ip和port
        String gateWay = StringUtils.substringBeforeLast(gateWayHost, "/");
        StringBuilder sb = new StringBuilder(gateWay);
        sb.append("/logout");
        sb.append("?Authorization=");
        sb.append(access_token);

        String template = client.getForObject(sb.toString(), String.class);
        JSONObject jsonObject = JSONObject.parseObject(template);
        Integer statusCode = (Integer)jsonObject.getJSONObject("meta").get("statusCode");
        Boolean success = (Boolean)jsonObject.getJSONObject("meta").get("success");
        if (statusCode == 200 && success) {
            Cookie access = new Cookie("access_token", ""); //创建Cookie对象,指定名字和值
            Cookie refreshTokenCookie = new Cookie("access_token_Refresh", ""); //创建Cookie对象,指定名字和值

            access.setMaxAge(0); //另有效时间为0则系统会自动删除过期的cookie
            refreshTokenCookie.setMaxAge(0); //另有效时间为0则系统会自动删除过期的cookie
            response.addCookie(access);
            response.addCookie(refreshTokenCookie);
            return CommonResult.success("退出登录成功!");
        }
        logger.error("网关退出登录失败!");
        return CommonResult.failed("退出登录失败!");

    } catch (Exception e) {
        logger.error(e.getMessage());
        return CommonResult.failed("退出登录失败!");
    }
}

http://www.niftyadmin.cn/n/1756331.html

相关文章

maven私服仓库搭建、上传或者拉取jar包

maven私服仓库搭建 参考&#xff1a;https://www.cnblogs.com/wuwei928/p/10338307.html 一、使用Docker安装Nexus docker pull sonatype/nexus3 mkdir -p /data/nexus-data chown -R 200 /data/nexus-data docker run -tid -p 8081:8081 --name nexus -e NEXUS_CONTEXTnexu…

springboot+flyway使用

github地址 https://github.com/yanjingfan/sakura-boot-demo/tree/master/web flyway 用途&#xff1a;初始化数据库&#xff0c;支持数据库脚本的版本管理 第一步&#xff1a;springboot已经集成了flyway&#xff0c;加入依赖时并不需要添加版本号 <!-- 添加 flyway …

重复添加字段,索引的sql脚本

解决痛点&#xff1a;解决重复执行的sql脚本&#xff0c;添加字段或者索引sql&#xff0c;会报错的问题 添加字段 DELIMITER // CREATE PROCEDURE alter_mail_contactor() BEGINIF NOT EXISTS(SELECT COLUMN_NAME FROM information_schema.COLUMNS WHERE TABLE_SCHEMA DATABAS…

spring boot微服务设置开机自启动

痛点&#xff1a;一般微服务依赖于其他中间件&#xff0c;例如&#xff0c;需要先启动数据库&#xff0c;redis&#xff0c;mq等等&#xff0c;这就涉及到了一个服务启动的先后顺序。目前&#xff0c;单个微服务的部署&#xff0c;我没看到有什么好的方案可以解决。除非使用镜像…

jpa+queryDSL使用Projections的一些坑点

不熟悉的花十分钟看看入门的&#xff0c;也无妨 jpaqueryDSL入门 踩坑经历&#xff1a; 需求&#xff1a; 连表查询时&#xff0c;使用Projections对象&#xff0c;按需选择返回字段组装成一个VO对象 坑点&#xff1a; 返回的字段有Integer对象&#xff0c;如id字段; 也有St…

树莓派镜像安装 + 设置 + 镜像批量化操作-无需显示器(一)

简介 使用的是树莓派3B进行的树莓派镜像操作, 使用的系统是2023-05-03版本的64bit字符界面树莓派OS(最初的系统大小是1.95G), 格式化工具SD Card Formatter&#xff0c; 镜像烧写/读取工具Win32DiskImager&#xff0c;使用到网线(直接连接路由器), SD卡读卡器, SDCard等硬件。…

activeMQ重启后,消费者不能正常消费消息

这里只讨论topic模式的 吐槽&#xff1a;这个世界上竟然还有人在使用activeMQ的&#xff0c;这是我没想到的&#xff0c;根本不会用&#xff0c;要不是服务出问题了&#xff0c;测试环境瞎几把乱点&#xff0c;终于搞明白了一丢丢 1.首先可进入mq的管理页面(ip:8161)&#xf…

springboot添加第三方jar包

1&#xff1a;第一步&#xff0c;找到第三方jar包的位置。 上面是连接weblogic的一个jar包&#xff0c;保存在E:\j2ee\weblogic文件夹下。 2&#xff1a;cmd命令进入E:\j2ee\weblogic&#xff0c;执行命令&#xff1a; mvn install:install-file -DgroupIdcom.weblogic -Darti…