@@ -90,14 +90,6 @@ public ManagementClientOptions() {
9090 tokenProvider = new ManagementTokenProvider (this );
9191 }
9292
93- /**
94- * 管理端 签名生成
95- **/
96- private final ISignatureComposer composer ;
97-
98- {
99- composer = SignatureComposer .getComposer ();
100- }
10193
10294 @ Override
10395 public String doRequest (String url , String method , Map <String , String > headers , Object body ) {
@@ -106,7 +98,7 @@ public String doRequest(String url, String method, Map<String, String> headers,
10698 }
10799 // put 签名所需的头部
108100 headers .put ("x-authing-lang" , getLang ().getValue ());
109- headers .put ("x-authing-sdk-version" , "authing-java-sdk:3.1.0 " );
101+ headers .put ("x-authing-sdk-version" , "authing-java-sdk:3.1.4 " );
110102 headers .put ("x-authing-signature-method" , SignatureEnum .X_AUTHING_SIGNATURE_METHOD .getValue ());
111103 headers .put ("x-authing-signature-nonce" , CommonUtils .createRandomString (RANDOM_STRING_LENGTH ));
112104 headers .put ("x-authing-signature-version" , SignatureEnum .X_AUTHING_SIGNATURE_VERSION .getValue ());
@@ -115,62 +107,16 @@ public String doRequest(String url, String method, Map<String, String> headers,
115107 headers .put ("x-authing-tenant-id" , tenantId );
116108 }
117109 headers .put ("date" , String .valueOf (new Date ().getTime ()));
118- //生成签名
119- String stringToSign = null ;
120- try {
121- stringToSign = composer .composeStringToSign (method , url , headers , objectToMap (body ));
122- } catch (IllegalAccessException e ) {
123- throw new RuntimeException (e );
124- }
125110 //生成 Authorization
126- headers .put ("Authorization" , composer .getAuthorization (accessKeyId , accessKeySecret , stringToSign ));
111+ headers .put ("Authorization" , this .tokenProvider .getAccessToken ());
112+ headers .put ("x-authing-userpool-id" , this .tokenProvider .getUserPoolId ());
127113 if (CollectionUtil .isNotEmpty (getHeaders ())) {
128114 headers .putAll (getHeaders ());
129115 }
130116 //发送请求
131117 return HttpUtils .request (getHost () + url , method , body , headers , getTimeout ());
132118 }
133119
134- private boolean isObject (Object obj ) {
135- return !(obj instanceof String || obj instanceof Integer || obj instanceof Enum || obj instanceof Double ||
136- obj instanceof Float || obj instanceof Boolean );
137- }
138-
139- private Map <String , String > objectToMap (Object object ) throws IllegalAccessException {
140- if (object instanceof Map ) {
141- return (Map ) object ;
142- }
143- Map <String , String > map = new HashMap <>();
144- Field [] fields = object .getClass ().getDeclaredFields ();
145- for (Field field : fields ) {
146- field .setAccessible (true );
147- Object obj = field .get (object );
148- if (obj != null ) {
149- // 如果是对象类型,转成 JSON 字符串
150- if (isObject (obj )) {
151- if (obj instanceof List && CollectionUtil .isNotEmpty ((List <?>) obj )) {
152- Object arr = ((List <?>) obj ).get (0 );
153- if (arr instanceof Enum ) {
154- map .put (field .getName (), JsonUtils .serialize (obj ).replaceAll ("\" " , "" ).replaceAll ("," , ", " ));
155- } else {
156- map .put (field .getName (), JsonUtils .serialize (obj ));
157- }
158- } else {
159- map .put (field .getName (), JsonUtils .serialize (obj ));
160- }
161- }
162- else {
163- if (obj instanceof Enum ) {
164- map .put (field .getName (), JsonUtils .serialize (obj ).replaceAll ("\" " , "" ));
165- } else {
166- map .put (field .getName (), obj .toString ());
167- }
168- }
169- }
170- }
171- return map ;
172- }
173-
174120 public String getAccessKeyId () {
175121 return accessKeyId ;
176122 }
@@ -255,10 +201,10 @@ private void checkLoginStatus() {
255201 return ;
256202 }
257203 // token 失效, 登录
258- doLogin ();
204+ refreshManagementToken ();
259205 }
260206
261- private void doLogin () {
207+ private void refreshManagementToken () {
262208 Map <String , Object > body = new HashMap <>();
263209 body .put ("accessKeyId" , options .getAccessKeyId ());
264210 body .put ("accessKeySecret" , options .getAccessKeySecret ());
0 commit comments