zoukankan      html  css  js  c++  java
  • Spring-Security-OAuth2调用微信API

    class WeixinClientCredentialsAccessTokenProvider extends ClientCredentialsAccessTokenProvider {

    public WeixinClientCredentialsAccessTokenProvider() {

    List<HttpMessageConverter<?>> converters = new ArrayList<HttpMessageConverter<?>>();

    converters.add(new MappingJackson2HttpMessageConverter());

    this.setMessageConverters(converters);

    this.setTokenRequestEnhancer(new RequestEnhancer() {

    @Override

    public void enhance(AccessTokenRequest request, OAuth2ProtectedResourceDetails resource,

     

    MultiValueMap<String, String> form, HttpHeaders headers) {

    form.set("appid", resource.getClientId());

    form.set("secret", resource.getClientSecret());

    form.set("grant_type", "client_credential");

    }

    });

    }

     

    }

    OAuth2ClientContext context = new DefaultOAuth2ClientContext();

    ClientCredentialsResourceDetails resource = new ClientCredentialsResourceDetails();

    resource.setClientId("xxxxxxxxx");

    resource.setClientSecret("xxxxxxxxxxxxxxx");

    resource.setAccessTokenUri("https://api.weixin.qq.com/cgi-bin/token");

    resource.setAuthenticationScheme(AuthenticationScheme.form);

    OAuth2RestTemplate restTemplate = new OAuth2RestTemplate(resource, context);

    restTemplate.setAccessTokenProvider(new WeixinClientCredentialsAccessTokenProvider());

    restTemplate.setRetryBadAccessTokens(true);

    ResponseEntity<Object> response = restTemplate.getForEntity("https://api.weixin.qq.com/cgi-bin/user/get", Object.class);

    if (response.getStatusCode() == HttpStatus.OK) {

    System.out.println(response.getBody());

    }

  • 相关阅读:
    Collection接口
    10linux基础-Centos7系统进程管理
    09linux基础-文档归档和压缩
    05Linux基础-vim编辑器和恢复ext4下误删除的文件
    04linux系统基础-文件的基本管理和XFS文件系统备份恢复
    03Linux基础-linux基本命令操作
    02Linux基础-linux的基础操作
    01Linux基础-环境搭建
    3、函数
    1、Python基础二
  • 原文地址:https://www.cnblogs.com/kingsy/p/6375880.html
Copyright © 2011-2022 走看看