zoukankan      html  css  js  c++  java
  • Feign设置assessToken

    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月30日
     * @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月30日
     * @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;
        }
    }
  • 相关阅读:
    Hive(八)Hive的Shell操作与压缩存储
    Hive(七)Hive分析窗口函数
    Hive(六)内置函数与高级操作
    Hive(五)数据类型与库表操作以及中文乱码
    Hive(四)Hive的3种连接方式与DbVisualizer连接Hive
    iOS性能调优系列(全)
    iOS性能优化-内存优化
    iOS 25个性能优化/内存优化常用方法
    iOS CoreData版本升级和数据库迁移
    FMDB数据迁移
  • 原文地址:https://www.cnblogs.com/zhaokejin/p/10927340.html
Copyright © 2011-2022 走看看