SpringSecurity+SpringSocial 实现QQ登入(二)

上节我们已经把基本代码写完,接着就是通过配置将其串联起来

配置文件编写

由于SpringBoot 1 跟SpringBoot2 有区别此处使用SpringBoot2

QQAutoConfig


SocialConfig

ImoocSpringSocialConfigurer

QQOAuth2Template

public class QQOAuth2Template extends OAuth2Template {private Logger logger = LoggerFactory.getLogger(getClass());public QQOAuth2Template(String clientId, String clientSecret, String authorizeUrl, String accessTokenUrl) {super(clientId, clientSecret, authorizeUrl, accessTokenUrl);setUseParametersForClientAuthentication(true);}@Overrideprotected RestTemplate getRestTemplate() {RestTemplate template = super.getRestTemplate();//添加处理 text/html的  (qq数据请求的处理区)template.getMessageConverters().add(new StringHttpMessageConverter(Charset.forName("utf-8")));return template;}/*** 覆盖此方法默认是对json数据进行处理成map* 但是qq不是这样的* @param accessTokenUrl* @param parameters* @return*/@Overrideprotected AccessGrant postForAccessGrant(String accessTokenUrl, MultiValueMap<String, String> parameters) {String result = getRestTemplate().postForObject(accessTokenUrl, parameters, String.class);logger.info("获取Access Token 的响应结果" + result);//access_token=F679F117539B5042872183269AF866E5&expires_in=7776000&refresh_token=8038A2C14FF2529A412D01D56A6BC7F8String[] items = StringUtils.splitByWholeSeparatorPreserveAllTokens(result, "&");String access = StringUtils.substringAfter(items[0],"=");String accessToken = StringUtils.substringAfterLast(items[0],"=");Long expiresIn = new Long(StringUtils.substringAfterLast(items[1],"="));String refreshToken = StringUtils.substringAfterLast(items[2],"=");return createAccessGrant(accessToken,null,refreshToken,expiresIn,null);}
}

SpringSecurity+SpringSocial 实现QQ登入(二)相关推荐

  1. 43.【Java 实现验证码获取 C++实现密码加密和删除和QQ登入系统】

    Java实现验证码信息 (一).简要概述: 1.思路分析 2.代码展示: 3.效果展示: (二).密码加密C++操作 1.基本思路和解析: 2.代码展示: (三).QQ登入系统: 1.建设QQ登入系统 ...

  2. 利用java知识做一个模拟qq登入模拟界面

    qq模拟登入界面 一.设计概述 1.使用java所学知识,做一个qq登入模拟界面,如图所示. QQ登录界面整体可以看做一个容器窗口,使用JFrame容器来实现,从登录界面的布局效果和显示内容可以看出, ...

  3. 25.【 C/C++ QQ登入系统 (人生中第一个趋形系统)】

    QQ登入系统 (一).建设QQ登入系统的背景. (二).基本头文件 代码展示: 效果展示: (三).总结 (一).建设QQ登入系统的背景. 因为自己有一颗对系统非常敏感的心,所以在本人大一下学期也就是 ...

  4. win10家庭版 QQ2021和TIM QQ登入后马上提示恢复上次意外关闭信息,然后就卡死奔溃闪退。

    #问题描述 win10家庭版 QQ2021和TIM QQ登入后马上提示恢复上次意外关闭信息,然后就卡死奔溃闪退. #解决方案 开始卸载重装也不行 安装TiM也一样会发生,最后删除找到错误报告提示的c盘 ...

  5. webview 上打开QQ客户端,QQ登入后自动打开添加QQ群的方法

    webview 上打开QQ客户端,QQ登入后自动打开添加QQ群的方法..怎么做..求指导

  6. javaweb应用网站实现第三方QQ登入过程

    腾讯开发文档入口 今天实现了web应用第三方QQ登入,由于我当时只看了开发文档中实现登入的流程,没有看SDK中的demo,所以SDK中的工具我没有用到.其实只要知道流程,完全可以不借助它的SDK也能实 ...

  7. (5.17)QQ登入视图

    //  ViewController.h //  qq登入器 // //  Created by pg on 14-5-17. //  Copyright (c) 2014年 mqd. All rig ...

  8. 仿QQ登入界面增加反应

    上次,咋们做了一个仿QQ登入界面,现在咋们的目标就是让这个界面上的组件有所反应. 这个交互功能需要监听器这个方法来实现. 监听器的实现三步骤 1.事件源:当前动作所发生的组件. 2.监听器:动作方法监 ...

  9. java仿qq gui_Java仿QQ登入页面

    1.[代码][Java]代码 package com.myqq.frame; import java.awt.BorderLayout; import java.awt.Color; import j ...

最新文章

  1. java 基本变量类型_Java自学-基本变量类型
  2. 关于Python中的self
  3. rxjs里mapTo operators的用法
  4. 原生js实现简单的焦点图效果
  5. PHP代码20个实用技巧(转)
  6. java运输_JAVA-基础-方法
  7. 14.图像透视——人类视觉,平行线测验,其他模型,乐趣与角度_4
  8. 【转】博客美化(5)为博客或系统添加一个强大的评论系统
  9. [转]ETL随笔(二)
  10. 自动移动鼠标避免锁屏
  11. 中国500强企业是如何构建电子签章系统的?
  12. jupyter报错EnvironmentLocationNotFound: Not a conda environment: /root/anaconda3/envs/anaconda3
  13. Global Round 16D2. Seating Arrangements (hard version)(模拟,贪心)
  14. python 操作鼠标和键盘
  15. HDU4598 Difference(差分约束)
  16. 一文搞懂CAN FD总线
  17. github实用的搜索小技巧
  18. switch 语句的参数类型
  19. win10怎么更改账户名称_如何自定义WIN10登陆界面的用户名?
  20. vue-cli使用ESLint记录

热门文章

  1. 手机五款黑科技式APP 不用不知道
  2. 单片机LED指示灯限流电阻一般470Ω以上尽量大于1KΩ的原因分析
  3. Redis中jedis与lettuce区别
  4. AXI4_Stream入门(2): 接口与信号
  5. CSS 绝对定位 div 水平居中(两种)
  6. i7 13700hx参数 酷睿i713700hx性能怎么样 相当于什么水平
  7. 《浪潮之巅》笔记之一
  8. java面向对象的设计思想,java设计形式之面向对象的思想(think in OO(Object Oriented))...
  9. 用自己的域名做短网址,到底有什么好处?
  10. 你是想要怎么样的结局!