refer to : https://www.xuxueli.com/xxl-job/
如何配置Access Token
关于accessToken 顾名思义是一种使用凭证,为了安全着想的。
具体使用场景是在执行器与admin进行通信是使用:
- 执行器注册
- 执行器验证admin的请求是否安全。 关于第二点是在admin向执行器发送请求在请求头中进行设置的.
// com.xxl.job.core.util.XxlJobRemotingUtil#XXL_JOB_ACCESS_TOKEN
public static final String XXL_JOB_ACCESS_TOKEN = "XXL-JOB-ACCESS-TOKEN";
而执行器收到请求后会对accessToken进行比对:
// com.xxl.job.core.server.EmbedServer.EmbedHttpServerHandler#process
private Object process(HttpMethod httpMethod, String uri, String requestData, String accessTokenReq) {
// valid
if (HttpMethod.POST != httpMethod) {
return new ReturnT<String>(ReturnT.FAIL_CODE, "invalid request, HttpMethod not support.");
}
if (uri == null || uri.trim().length() == 0) {
return new ReturnT<String>(ReturnT.FAIL_CODE, "invalid request, uri-mapping empty.");
}
if (accessToken != null
&& accessToken.trim().length() > 0
&& !accessToken.equals(accessTokenReq)) {
return new ReturnT<String>(ReturnT.FAIL_CODE, "The access token is wrong.");
}
// 省略代码...
}
实战配置
- xxl-job-admin的application.properties中,配置accessToken
### xxl-job, access token
#xxl.job.accessToken=default_token
xxl.job.accessToken=weipeng-custom-token
- xxl-job-executor-sample-springboot的application.properties中,配置accessToken
### xxl-job, access token
#xxl.job.accessToken=default_token
xxl.job.accessToken=weipeng-custom-token
这2个地方,配置的accessToken,需要保持一致