• Feign设置assessToken


    首先继承接口RequestInterceptor实现apply方法

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.security.oauth2.client.OAuth2RestTemplate;
     
    import feign.RequestInterceptor;
    import feign.RequestTemplate;
     
    /**
     * 
     *用于解决fegin无法传递授权信息
     * @author 	cicoding
     * @date 	2018年5月26日
     * @Copyright 
     *
     * <pre>
     * =================Modify Record=================
     * Modifier			date				Content
     * cicoding		2019年5月26日			 新增
     *
     * </pre>
     */
    @Configuration
    public class FeignRequestInterceptor implements RequestInterceptor {
        private final Logger logger = LoggerFactory.getLogger(getClass());
     
        private static final String AUTHORIZATION_HEADER = "Authorization";
     
        private static final String BEARER_TOKEN_TYPE = "Bearer";
     
        @Autowired
        private OAuth2RestTemplate oAuth2RestTemplate;
     
        @Override
        public void apply(RequestTemplate requestTemplate) {
            String accessToken = WebContextUtil.getAccessToken();
            if(accessToken == null){
                accessToken =oAuth2RestTemplate.getAccessToken().getValue();
            }
            logger.debug("RequestInterceptorConfig accessToken :" +accessToken);
            requestTemplate.header(AUTHORIZATION_HEADER,
                    String.format("%s %s",
                            BEARER_TOKEN_TYPE,
                            accessToken));
        }
    }
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.security.oauth2.client.DefaultOAuth2RequestAuthenticator;
    import org.springframework.security.oauth2.client.OAuth2RestTemplate;
    import org.springframework.security.oauth2.client.token.grant.client.ClientCredentialsResourceDetails;
     
    /**
     * 
     *用于解决fegin无法传递授权信息
     * @author 	cicoding
     * @date 	2018年5月26日
     * @Copyright 
     *
     * <pre>
     * =================Modify Record=================
     * Modifier			date				Content
     * cicoding			2019年5月26日		新增
     *
     * </pre>
     */
    @Configuration
    public class OAuth2RestTemplateConfiguration {
        @Bean
        public OAuth2RestTemplate oauth2RestTemplate() {
            ClientCredentialsResourceDetails resourceDetails = new ClientCredentialsResourceDetails();
            resourceDetails.setClientId("webapp");
            resourceDetails.setClientSecret("webapp");
            resourceDetails.setId("service-user");
            resourceDetails.setAccessTokenUri("http://127.0.0.1:9060/oauth/token");
            OAuth2RestTemplate oAuth2RestTemplate = new OAuth2RestTemplate(resourceDetails);
            oAuth2RestTemplate.setAuthenticator(new DefaultOAuth2RequestAuthenticator());
            return oAuth2RestTemplate;
        }
    }
    

    FeignRequestInterceptor 和OAuth2RestTemplateConfiguration 类!

  • 相关阅读:
    微信小程序动态更改样式
    ionic toggle点击返回true/false支持自定义
    ionic 页面传递参数
    ionic 搜索双向数据绑定失效
    关于select的默认样式问题
    nn
    MVC api json 格式
    iis 500 解决方法
    关于qquu8 的主页修改
    CentOS6.5下MAC
  • 原文地址:https://www.cnblogs.com/zhaokejin/p/15626397.html
Copyright © 2020-2023  润新知