Commit 9cacff85 authored by 杨锐's avatar 杨锐

OkHttpClient auth add token.

parent bfc6acef
package cn.quantgroup.tech.brave.configuration; package cn.quantgroup.tech.brave.configuration;
import cn.quantgroup.tech.brave.interceptor.*; import cn.quantgroup.tech.brave.interceptor.*;
import cn.quantgroup.tech.brave.interceptor.impl.HttpClientAuthRequestInterceptor; import cn.quantgroup.tech.brave.interceptor.impl.*;
import cn.quantgroup.tech.brave.interceptor.impl.HttpClientNoAuthRequestInterceptor;
import cn.quantgroup.tech.brave.interceptor.impl.RestTemplateAuthRequestInterceptor;
import cn.quantgroup.tech.brave.interceptor.impl.RestTemplateNoAuthRequestInterceptor;
import cn.quantgroup.tech.brave.job.TokenJob; import cn.quantgroup.tech.brave.job.TokenJob;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
...@@ -23,6 +20,12 @@ public class AuthAutoConfiguration { ...@@ -23,6 +20,12 @@ public class AuthAutoConfiguration {
return new HttpClientNoAuthRequestInterceptor(); return new HttpClientNoAuthRequestInterceptor();
} }
@Bean
@ConditionalOnMissingBean(OkHttpClientInterceptor.class)
public OkHttpClientInterceptor okHttpClientInterceptor() {
return new OkHttpClientNoAuthInterceptor();
}
@Bean @Bean
@ConditionalOnMissingBean(RestTemplateRequestInterceptor.class) @ConditionalOnMissingBean(RestTemplateRequestInterceptor.class)
public RestTemplateRequestInterceptor restTemplateRequestInterceptor() { public RestTemplateRequestInterceptor restTemplateRequestInterceptor() {
...@@ -39,6 +42,11 @@ public class AuthAutoConfiguration { ...@@ -39,6 +42,11 @@ public class AuthAutoConfiguration {
return new HttpClientAuthRequestInterceptor(); return new HttpClientAuthRequestInterceptor();
} }
@Bean
public OkHttpClientInterceptor okHttpClientInterceptor() {
return new OkHttpClientAuthInterceptor();
}
@Bean @Bean
public RestTemplateRequestInterceptor restTemplateRequestInterceptor() { public RestTemplateRequestInterceptor restTemplateRequestInterceptor() {
return new RestTemplateAuthRequestInterceptor(); return new RestTemplateAuthRequestInterceptor();
......
package cn.quantgroup.tech.brave.interceptor;
import okhttp3.Interceptor;
public interface OkHttpClientInterceptor extends Interceptor {
}
package cn.quantgroup.tech.brave.interceptor.impl;
import cn.quantgroup.tech.brave.handler.TokenHandler;
import cn.quantgroup.tech.brave.interceptor.OkHttpClientInterceptor;
import cn.quantgroup.tech.brave.interceptor.RequestInterceptor;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
public class OkHttpClientAuthInterceptor extends RequestInterceptor implements OkHttpClientInterceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
Request.Builder requestBuilder = request.newBuilder();
requestBuilder.addHeader(AUTH, TokenHandler.getToken());
return chain.proceed(requestBuilder.build());
}
}
package cn.quantgroup.tech.brave.interceptor.impl;
import cn.quantgroup.tech.brave.interceptor.OkHttpClientInterceptor;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;
public class OkHttpClientNoAuthInterceptor implements OkHttpClientInterceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
Request.Builder requestBuilder = request.newBuilder();
return chain.proceed(requestBuilder.build());
}
}
...@@ -33,7 +33,6 @@ public class TokenJob { ...@@ -33,7 +33,6 @@ public class TokenJob {
private static final String CREDENTIAL = "credential"; private static final String CREDENTIAL = "credential";
private static final int SUCCESS = 200; private static final int SUCCESS = 200;
public static String token;
@Value("${quant.auth.clientId}") @Value("${quant.auth.clientId}")
private String clientId; private String clientId;
......
package cn.quantgroup.tech.brave.service.impl; package cn.quantgroup.tech.brave.service.impl;
import cn.quantgroup.tech.brave.interceptor.OkHttpClientInterceptor;
import cn.quantgroup.tech.brave.service.ITechOkHttpClient; import cn.quantgroup.tech.brave.service.ITechOkHttpClient;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import javax.annotation.Resource;
/** /**
* @author zhangheng * @author zhangheng
* create on 2018.05.17 * create on 2018.05.17
*/ */
@Slf4j @Slf4j
public class TechOkHttpClientNoTrace implements ITechOkHttpClient{ public class TechOkHttpClientNoTrace implements ITechOkHttpClient {
@Resource
private OkHttpClientInterceptor okHttpClientInterceptor;
@Override @Override
public OkHttpClient.Builder createOkHttpClientBuilder() { public OkHttpClient.Builder createOkHttpClientBuilder() {
log.info("构建OkHttpClient.Builder"); log.info("构建OkHttpClient.Builder");
return new OkHttpClient.Builder(); return new OkHttpClient.Builder().addNetworkInterceptor(okHttpClientInterceptor);
} }
} }
...@@ -3,11 +3,14 @@ package cn.quantgroup.tech.brave.service.impl; ...@@ -3,11 +3,14 @@ package cn.quantgroup.tech.brave.service.impl;
import brave.Tracing; import brave.Tracing;
import brave.http.HttpTracing; import brave.http.HttpTracing;
import brave.okhttp3.TracingInterceptor; import brave.okhttp3.TracingInterceptor;
import cn.quantgroup.tech.brave.interceptor.OkHttpClientInterceptor;
import cn.quantgroup.tech.brave.service.ITechOkHttpClient; import cn.quantgroup.tech.brave.service.ITechOkHttpClient;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import okhttp3.Dispatcher; import okhttp3.Dispatcher;
import okhttp3.OkHttpClient; import okhttp3.OkHttpClient;
import javax.annotation.Resource;
/** /**
* @author zhangheng * @author zhangheng
* create on 2018.05.17 * create on 2018.05.17
...@@ -20,12 +23,16 @@ public class TechOkHttpClientTrace implements ITechOkHttpClient{ ...@@ -20,12 +23,16 @@ public class TechOkHttpClientTrace implements ITechOkHttpClient{
this.tracing = tracing; this.tracing = tracing;
} }
@Resource
private OkHttpClientInterceptor okHttpClientInterceptor;
@Override @Override
public OkHttpClient.Builder createOkHttpClientBuilder() { public OkHttpClient.Builder createOkHttpClientBuilder() {
log.info("构建brave-OkHttpClient.Builder"); log.info("构建brave-OkHttpClient.Builder");
HttpTracing httpTracing = HttpTracing.create(tracing); HttpTracing httpTracing = HttpTracing.create(tracing);
return new OkHttpClient.Builder() return new OkHttpClient.Builder()
.dispatcher(new Dispatcher(httpTracing.tracing().currentTraceContext().executorService(new Dispatcher().executorService()))) .dispatcher(new Dispatcher(httpTracing.tracing().currentTraceContext().executorService(new Dispatcher().executorService())))
.addNetworkInterceptor(TracingInterceptor.create(httpTracing)); .addNetworkInterceptor(TracingInterceptor.create(httpTracing))
.addNetworkInterceptor(okHttpClientInterceptor);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment