• 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());

    }

  • 相关阅读:
    ip、ifconfig 和 route命令
    子网掩码、前缀长度、IP地址数的换算
    ubuntu安装pacman
    linux动态链接库的生成与使用
    给nimble 设置代理 解决中国国内nimble安装nim库的问题
    区块链原理汇总
    信息系统架构与国产替代
    docker中安装vim
    IDEA拖不动文件
    文件上传
  • 原文地址:https://www.cnblogs.com/kingsy/p/6375880.html
Copyright © 2020-2023  润新知