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

OkHttpClient auth add token.

parent bfc6acef
package cn.quantgroup.tech.brave.configuration;
import cn.quantgroup.tech.brave.interceptor.*;
import cn.quantgroup.tech.brave.interceptor.impl.HttpClientAuthRequestInterceptor;
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.interceptor.impl.*;
import cn.quantgroup.tech.brave.job.TokenJob;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
......@@ -23,6 +20,12 @@ public class AuthAutoConfiguration {
return new HttpClientNoAuthRequestInterceptor();
}
@Bean
@ConditionalOnMissingBean(OkHttpClientInterceptor.class)
public OkHttpClientInterceptor okHttpClientInterceptor() {
return new OkHttpClientNoAuthInterceptor();
}
@Bean
@ConditionalOnMissingBean(RestTemplateRequestInterceptor.class)
public RestTemplateRequestInterceptor restTemplateRequestInterceptor() {
......@@ -39,6 +42,11 @@ public class AuthAutoConfiguration {
return new HttpClientAuthRequestInterceptor();
}
@Bean
public OkHttpClientInterceptor okHttpClientInterceptor() {
return new OkHttpClientAuthInterceptor();
}
@Bean
public RestTemplateRequestInterceptor restTemplateRequestInterceptor() {
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 {
private static final String CREDENTIAL = "credential";
private static final int SUCCESS = 200;
public static String token;
@Value("${quant.auth.clientId}")
private String clientId;
......
package cn.quantgroup.tech.brave.service.impl;
import cn.quantgroup.tech.brave.interceptor.OkHttpClientInterceptor;
import cn.quantgroup.tech.brave.service.ITechOkHttpClient;
import lombok.extern.slf4j.Slf4j;
import okhttp3.OkHttpClient;
import javax.annotation.Resource;
/**
* @author zhangheng
* create on 2018.05.17
*/
@Slf4j
public class TechOkHttpClientNoTrace implements ITechOkHttpClient{
public class TechOkHttpClientNoTrace implements ITechOkHttpClient {
@Resource
private OkHttpClientInterceptor okHttpClientInterceptor;
@Override
public OkHttpClient.Builder createOkHttpClientBuilder() {
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;
import brave.Tracing;
import brave.http.HttpTracing;
import brave.okhttp3.TracingInterceptor;
import cn.quantgroup.tech.brave.interceptor.OkHttpClientInterceptor;
import cn.quantgroup.tech.brave.service.ITechOkHttpClient;
import lombok.extern.slf4j.Slf4j;
import okhttp3.Dispatcher;
import okhttp3.OkHttpClient;
import javax.annotation.Resource;
/**
* @author zhangheng
* create on 2018.05.17
......@@ -20,12 +23,16 @@ public class TechOkHttpClientTrace implements ITechOkHttpClient{
this.tracing = tracing;
}
@Resource
private OkHttpClientInterceptor okHttpClientInterceptor;
@Override
public OkHttpClient.Builder createOkHttpClientBuilder() {
log.info("构建brave-OkHttpClient.Builder");
HttpTracing httpTracing = HttpTracing.create(tracing);
return new OkHttpClient.Builder()
.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