Administrator
发布于 2023-01-15 / 58 阅读
0
0

Xxl-Job Best Practise

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.");
            }
			
			// 省略代码...
			
}

实战配置

  1. xxl-job-admin的application.properties中,配置accessToken
### xxl-job, access token
#xxl.job.accessToken=default_token
xxl.job.accessToken=weipeng-custom-token
  1. 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,需要保持一致


评论