From b6c38729d318b13fcf23aec6ee8db8e0947d0430 Mon Sep 17 00:00:00 2001 From: hwf453 Date: Thu, 19 Oct 2023 16:26:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=89=E7=BB=B4=E7=99=BB=E5=BD=95=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/rehome/zhdcoa/Contans.java | 2 +- .../activity/ActivityFactoryWorkerInfo.java | 6 +- .../zhdcoa/ui/activity/AscFragment.java | 24 ++++ .../zhdcoa/ui/activity/AxzFragment.java | 14 ++ .../zhdcoa/ui/activity/LoginActivity.kt | 46 +----- .../zhdcoa/ui/activity/UpdatePwdActivity.java | 14 +- .../zhdcoa/ui/activity/XscFragment.java | 55 ++++++++ .../zhdcoa/ui/activity/XxzjhFragment.java | 60 +++++++- .../utils/AuthenticationLoginAIUtils.java | 132 +++++++++++++----- .../utils/AuthenticationLoginUtils.java | 17 ++- .../com/rehome/zhdcoa/utils/RSAUtils.java | 3 +- 11 files changed, 284 insertions(+), 89 deletions(-) diff --git a/app/src/main/java/com/rehome/zhdcoa/Contans.java b/app/src/main/java/com/rehome/zhdcoa/Contans.java index 5289192..1aecd43 100644 --- a/app/src/main/java/com/rehome/zhdcoa/Contans.java +++ b/app/src/main/java/com/rehome/zhdcoa/Contans.java @@ -487,7 +487,7 @@ public class Contans { //AI三维可视化平台token public final static String AUTHENTICATIONLOGINTOKENAI = "AUTHENTICATIONLOGINTOKENAI"; //AI三维登录 - public final static String AUTHENTICATIONLOGINAI3D = "login/login_do"; + public final static String AUTHENTICATIONLOGINAI3D = "login/login_app"; //当前厂内人员数量 public final static String INFO_STATISTICS = "client/index/info_statistics"; //当前厂内人员数量v1 diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryWorkerInfo.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryWorkerInfo.java index 036c8cb..7da88b0 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryWorkerInfo.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryWorkerInfo.java @@ -150,9 +150,9 @@ public class ActivityFactoryWorkerInfo extends BaseActivity { String account = Contans.SP.AI_ACCOUNT; //String strPrivateEncode=RSAAndroid.encryptByPrivateKeyForSpiltStr(Contans.SP.AI_PWD,RSAAndroid.privateRsaKeyLocal); String strPublicDecode = RSAAndroid.decryptByPublicKeyForSpiltStr(Contans.SP.AI_PWD_ENCODE, RSAAndroid.publicRsaKeyLocal); - showLog("-----------"); - showLog(account); - showLog(strPublicDecode); +// showLog("-----------"); +// showLog(account); +// showLog(strPublicDecode); AuthenticationLoginAIUtils.authenticationAILogin(ActivityFactoryWorkerInfo.this, account, strPublicDecode, new OnAuthenticationLoginListener() { @Override diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/AscFragment.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/AscFragment.java index 8723820..7bbe3a2 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/AscFragment.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/AscFragment.java @@ -306,6 +306,12 @@ public class AscFragment extends BaseFragment { selectCount++; Request request = NoHttp.createStringRequest(Contans.IP + Contans.AJHSC, RequestMethod.POST); request.setDefineRequestBodyForJson(UiUtlis.encoder(json)); + if(App.getInstance().getUserInfo()!=null&&App.getInstance().getUserInfo().getToken()!=null){ + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + request.addHeader("Authorization", credential); + showLog(request.url()); + } queue.add(0, request, new HttpResponseListener<>(getActivity(), request, callback, false, false, "")); //NohttpUtils.getInstance().add(getActivity(), 0, request, callback, false, false, "上传中..."); @@ -319,6 +325,12 @@ public class AscFragment extends BaseFragment { "&areacode=" + UiUtlis.encoder(ajhxcjs.getAreacode()) + "&jsr=" + UiUtlis.encoder(App.getInstance().getUserInfo().getManid()), RequestMethod.POST); request1.add(Contans.FILEPS, new FileBinary(new File(ajhxcjs.getFile()))); + if(App.getInstance().getUserInfo()!=null&&App.getInstance().getUserInfo().getToken()!=null){ + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + request1.addHeader("Authorization", credential); + showLog(request1.url()); + } queue.add(1, request1, new HttpResponseListener<>(getActivity(), request1, callback, false, false, "")); //NohttpUtils.getInstance().add(getActivity(), 1, request1, callback, false, false, ""); } @@ -332,6 +344,12 @@ public class AscFragment extends BaseFragment { Logger.json(json1); json1 = new String(json1.getBytes(), StandardCharsets.UTF_8); request2.setDefineRequestBodyForJson(UiUtlis.encoder(json1)); + if(App.getInstance().getUserInfo()!=null&&App.getInstance().getUserInfo().getToken()!=null){ + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + request2.addHeader("Authorization", credential); + showLog(request2.url()); + } queue.add(2, request2, new HttpResponseListener<>(getActivity(), request2, callback, false, false, "")); //NohttpUtils.getInstance().add(getActivity(), 2, request2, callback, false, false, "上传中..."); } @@ -342,6 +360,12 @@ public class AscFragment extends BaseFragment { selectCount++; Request yhpctp = NoHttp.createStringRequest(Contans.IP + Contans.YHPCTP + "?guid=" + tp.getGuid(), RequestMethod.POST); yhpctp.add(Contans.FILEPS, new FileBinary(new File(tp.getPath()))); + if(App.getInstance().getUserInfo()!=null&&App.getInstance().getUserInfo().getToken()!=null){ + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + yhpctp.addHeader("Authorization", credential); + showLog(yhpctp.url()); + } queue.add(3, yhpctp, new HttpResponseListener<>(getActivity(), yhpctp, callback, false, false, "")); } } diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/AxzFragment.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/AxzFragment.java index 46a87d1..9ea6644 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/AxzFragment.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/AxzFragment.java @@ -8,6 +8,8 @@ import android.widget.Button; import android.widget.CheckBox; import android.widget.ListView; import android.widget.TextView; + +import com.rehome.zhdcoa.App; import com.rehome.zhdcoa.Contans; import com.rehome.zhdcoa.DBModel.Ajhjh; import com.rehome.zhdcoa.DBModel.AjhjhList; @@ -177,6 +179,12 @@ public class AxzFragment extends BaseFragment { private void requestData() { Request request = NoHttp.createStringRequest(Contans.IP + Contans.AJHJHLIST); request.add("BZMC", UiUtlis.encoder((String) SPUtils.get(context, Contans.BZBH, ""))); + if(App.getInstance().getUserInfo()!=null&&App.getInstance().getUserInfo().getToken()!=null){ + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + request.addHeader("Authorization", credential); + showLog(request.url()); + } queue.add(0, request, new HttpResponseListener<>(getActivity(), request, callback, true, true, "加载中...")); } @@ -184,6 +192,12 @@ public class AxzFragment extends BaseFragment { requestCount++; Request request = NoHttp.createStringRequest(Contans.IP + Contans.AJHXZRW); request.add("jhid", UiUtlis.encoder(jhid)); + if(App.getInstance().getUserInfo()!=null&&App.getInstance().getUserInfo().getToken()!=null){ + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + request.addHeader("Authorization", credential); + showLog(request.url()); + } queue.add(1, request, new HttpResponseListener(getActivity(), request, callback, false, false, "")); } diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt index b2d61be..2d20571 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/LoginActivity.kt @@ -150,49 +150,9 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() { if (BuildConfig.LOG_ERROR) { -// 管理员 -// binding.etUsername.setText("ZHPS_Admin") -// binding.etPassword.setText("Rehome.zhps@2020") -// -// binding.etUsername.setText("310665") -// binding.etPassword.setText("ABcd.123") - - -// -// //生产岗位测试帐号 -// binding.etUsername.setText("00467309") -// binding.etPassword.setText("Abc*00467309") -// -// //马 -// binding.etUsername.setText("310482") -// binding.etPassword.setText("Maying0509?") -// -// //程宇翔 -// binding.etUsername.setText("310673") -// binding.etPassword.setText("Abcd@1234") - //李耿 -// binding.etUsername.setText("310261") -// binding.etPassword.setText("#LIgeng770731") - //古舒敏 -// binding.etUsername.setText("310585") -// binding.etPassword.setText("Lama520+_*") - - //陈嘉 -// binding.etUsername.setText("310408") -// binding.etPassword.setText("zhpCJ1981+") - //郑大兴 -// binding.etUsername.setText("310300") -// binding.etPassword.setText("Zdx@333333") - //孙世虎 -// binding.etUsername.setText("310264") -// binding.etPassword.setText("Sun@310264") -// //燔烨 -// binding.etUsername.setText("310699") -// binding.etPassword.setText("2p5y99YG&") - //binding.etPassword.setText("ZHps@2468") - //陈坚标 -// binding.etUsername.setText("310063") -// binding.etPassword.setText("ZHPs@040909") + // 管理员 + binding.etUsername.setText("ZHPS_Admin") + binding.etPassword.setText("Rehome.zhps@996") } diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/UpdatePwdActivity.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/UpdatePwdActivity.java index 83f6558..533b576 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/UpdatePwdActivity.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/UpdatePwdActivity.java @@ -49,6 +49,9 @@ public class UpdatePwdActivity extends BaseActivity { @Override public void initView() { findView(); + + etFormerPwd.setText("Rehome.zhps@996"); + initToolbar("修改密码", "修改", new View.OnClickListener() { @Override public void onClick(View v) { @@ -103,7 +106,11 @@ public class UpdatePwdActivity extends BaseActivity { private void updatePwd() { - RequestBody body = RequestBody.create(MediaType.parse("application/json"), createJson()); + String json = createJson(); + + showLog(json); + + RequestBody body = RequestBody.create(MediaType.parse("application/json"),json); HttpUtils.getApi().updataPwd(body).enqueue(new BaseCallBack(context) { @Override public void onSuccess(Call call, Response response) { @@ -116,6 +123,11 @@ public class UpdatePwdActivity extends BaseActivity { toastviewbymyself.makeText(context, bean.getRows().get(0).getMsg(), Toast.LENGTH_LONG).show(); SPUtils.put(context, Contans.SP.PASS_WORD, RSAUtils.encryptBASE64StrLocal(Objects.requireNonNull(etNewPwd.getText()).toString())); SPUtils.put(context, Contans.SP.OLD_PWD, RSAUtils.encryptBASE64StrLocal(Objects.requireNonNull(etNewPwd.getText()).toString())); + SPUtils.put( + context, + Contans.SP.AF_PASS_WORD, + RSAUtils.encryptBASE64StrLocal(Objects.requireNonNull(etNewPwd.getText()).toString()) + ); finish(); } else { toastviewbymyself.makeText(context, bean.getRows().get(0).getMsg(), Toast.LENGTH_LONG).show(); diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/XscFragment.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/XscFragment.java index ccb7218..2cfe89f 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/XscFragment.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/XscFragment.java @@ -2,13 +2,16 @@ package com.rehome.zhdcoa.ui.activity; import android.content.DialogInterface; import android.os.Bundle; + import androidx.appcompat.app.AlertDialog; + import android.view.View; import android.widget.AdapterView; import android.widget.Button; import android.widget.CheckBox; import android.widget.ListView; import android.widget.TextView; + import com.orhanobut.logger.Logger; import com.rehome.zhdcoa.Contans; import com.rehome.zhdcoa.DBModel.LyXcjsInfo; @@ -39,14 +42,18 @@ import com.yolanda.nohttp.RequestMethod; import com.yolanda.nohttp.rest.Request; import com.yolanda.nohttp.rest.RequestQueue; import com.yolanda.nohttp.rest.Response; + import org.litepal.crud.DataSupport; + import java.io.File; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; + import static org.litepal.crud.DataSupport.where; + import com.rehome.zhdcoa.App; /** @@ -591,6 +598,14 @@ public class XscFragment extends BaseFragment { Logger.v(xf); Request request = NoHttp.createStringRequest(Contans.IP + Contans.XFDJJHSC + "?cjscr=" + UiUtlis.encoder(App.getInstance().getUserInfo().getManid()), RequestMethod.POST); request.setDefineRequestBodyForJson(UiUtlis.encoder(xf)); + if (App.getInstance().getUserInfo() != null && App.getInstance().getUserInfo().getToken() != null) { + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + request.addHeader("Authorization", credential); + showLog(request.url()); +// showLog(credential); +// showLog(new Gson().toJson(request.headers())); + } queue.add(0, request, new HttpResponseListener<>(getActivity(), request, callback, false, false, "加载中...")); //NohttpUtils.getInstance().add(getActivity(), 0, request, callback, false, false, "上传中..."); List xcjss = DataSupport.findAll(XfXcjsInfo.class); @@ -604,6 +619,14 @@ public class XscFragment extends BaseFragment { "&djr=" + UiUtlis.encoder(info.getDjr()) + "&xfid=" + UiUtlis.encoder(info.getXfid()), RequestMethod.POST); xcjs.add(Contans.FILEPS, new FileBinary(new File(info.getPath()))); + if (App.getInstance().getUserInfo() != null && App.getInstance().getUserInfo().getToken() != null) { + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + xcjs.addHeader("Authorization", credential); + showLog(xcjs.url()); +// showLog(credential); +// showLog(new Gson().toJson(request.headers())); + } queue.add(1, xcjs, new HttpResponseListener<>(getActivity(), xcjs, callback, false, false, "加载中...")); } //NohttpUtils.getInstance().add(getActivity(), 1, xcjs, callback, false, false, "上传中..."); @@ -614,6 +637,14 @@ public class XscFragment extends BaseFragment { Logger.v(ba); Request baxc = NoHttp.createStringRequest(Contans.IP + Contans.BAXCJHSC + "?cjscr=" + UiUtlis.encoder(App.getInstance().getUserInfo().getManid()), RequestMethod.POST); baxc.setDefineRequestBodyForJson(UiUtlis.encoder(ba)); + if(App.getInstance().getUserInfo()!=null&&App.getInstance().getUserInfo().getToken()!=null){ + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + baxc.addHeader("Authorization", credential); + showLog(baxc.url()); +// showLog(credential); +// showLog(new Gson().toJson(request.headers())); + } queue.add(2, baxc, new HttpResponseListener<>(getActivity(), baxc, callback, false, false, "加载中...")); //NohttpUtils.getInstance().add(getActivity(), 2, baxc, callback, false, false, "上传中..."); @@ -627,6 +658,14 @@ public class XscFragment extends BaseFragment { Request yhpc = NoHttp.createStringRequest(Contans.IP + Contans.YHPC + "?cjscr=" + UiUtlis.encoder(App.getInstance().getUserInfo().getManid()), RequestMethod.POST); String json1 = "{\"Rows\":" + GsonUtils.GsonString(info) + ",\"Total\": " + info.size() + "}"; yhpc.setDefineRequestBodyForJson(json1); + if(App.getInstance().getUserInfo()!=null&&App.getInstance().getUserInfo().getToken()!=null){ + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + yhpc.addHeader("Authorization", credential); + showLog(yhpc.url()); +// showLog(credential); +// showLog(new Gson().toJson(request.headers())); + } queue.add(3, yhpc, new HttpResponseListener<>(getActivity(), yhpc, callback, false, false, "加载中...")); //NohttpUtils.getInstance().add(getActivity(), 3, yhpc, callback, false, false, ""); } @@ -634,6 +673,14 @@ public class XscFragment extends BaseFragment { requestCount++; Request lyxc = NoHttp.createStringRequest(Contans.IP + Contans.LYXCSC + "?cjscr=" + UiUtlis.encoder(App.getInstance().getUserInfo().getManid()), RequestMethod.POST); lyxc.setDefineRequestBodyForJson(UiUtlis.encoder(ly)); + if(App.getInstance().getUserInfo()!=null&&App.getInstance().getUserInfo().getToken()!=null){ + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + lyxc.addHeader("Authorization", credential); + showLog(lyxc.url()); +// showLog(credential); +// showLog(new Gson().toJson(request.headers())); + } queue.add(4, lyxc, new HttpResponseListener<>(getActivity(), lyxc, callback, false, false, "加载中...")); //NohttpUtils.getInstance().add(getActivity(), 4, lyxc, callback, false, false, "上传中..."); @@ -645,6 +692,14 @@ public class XscFragment extends BaseFragment { "&jhid=" + UiUtlis.encoder(lyinfo.getJhid()) + "&filename=" + UiUtlis.encoder(lyinfo.getFilename()) + "&djr=" + UiUtlis.encoder(lyinfo.getDjr()) + "&xfid=" + UiUtlis.encoder(lyinfo.getXfid()), RequestMethod.POST); xcjs.add(Contans.FILEPS, new FileBinary(new File(lyinfo.getPath()))); + if(App.getInstance().getUserInfo()!=null&&App.getInstance().getUserInfo().getToken()!=null){ + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + xcjs.addHeader("Authorization", credential); + showLog(xcjs.url()); +// showLog(credential); +// showLog(new Gson().toJson(request.headers())); + } queue.add(5, xcjs, new HttpResponseListener<>(getActivity(), xcjs, callback, false, false, "加载中...")); //NohttpUtils.getInstance().add(getActivity(), 5, xcjs, callback, false, false, "上传中..."); } diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/XxzjhFragment.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/XxzjhFragment.java index c29bb2c..eda86c4 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/XxzjhFragment.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/XxzjhFragment.java @@ -9,6 +9,7 @@ import android.widget.CheckBox; import android.widget.ListView; import android.widget.TextView; import com.orhanobut.logger.Logger; +import com.rehome.zhdcoa.App; import com.rehome.zhdcoa.Contans; import com.rehome.zhdcoa.DBModel.LyxcXmList; import com.rehome.zhdcoa.DBModel.LyxcqyList; @@ -29,6 +30,7 @@ import com.rehome.zhdcoa.base.BaseFragment; import com.rehome.zhdcoa.utils.GsonUtils; import com.rehome.zhdcoa.utils.HttpListener; import com.rehome.zhdcoa.utils.HttpResponseListener; +import com.rehome.zhdcoa.utils.NohttpUtils; import com.rehome.zhdcoa.utils.SPUtils; import com.rehome.zhdcoa.utils.UiUtlis; import com.rehome.zhdcoa.weiget.WaitDialog; @@ -204,6 +206,14 @@ public class XxzjhFragment extends BaseFragment { private void requestData() { Request request = NoHttp.createStringRequest(Contans.IP + Contans.XFDJJHALL); request.add("bzbh", UiUtlis.encoder((String) SPUtils.get(context, Contans.BZBH, ""))); + if(App.getInstance().getUserInfo()!=null&&App.getInstance().getUserInfo().getToken()!=null){ + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + request.addHeader("Authorization", credential); + showLog(request.url()); +// showLog(credential); +// showLog(new Gson().toJson(request.headers())); + } queue.add(0, request, new HttpResponseListener<>(getActivity(), request, callback, true, true, "加载中...")); //NohttpUtils.getInstance().add(getActivity(), 0, request, callback, true, true, "加载中..."); @@ -214,6 +224,14 @@ public class XxzjhFragment extends BaseFragment { requestCount++; Request request = NoHttp.createStringRequest(Contans.IP + Contans.XFDJJHXZ); request.add("jhid", UiUtlis.encoder(jhid)); + if(App.getInstance().getUserInfo()!=null&&App.getInstance().getUserInfo().getToken()!=null){ + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + request.addHeader("Authorization", credential); + showLog(request.url()); +// showLog(credential); +// showLog(new Gson().toJson(request.headers())); + } queue.add(1, request, new HttpResponseListener<>(getActivity(), request, callback, false, false, "")); //NohttpUtils.getInstance().add(getActivity(), 1, request, callback, false, false, "下载计划中..."); @@ -221,31 +239,71 @@ public class XxzjhFragment extends BaseFragment { Request request1 = NoHttp.createStringRequest(Contans.IP + Contans.XFXCMHQC); request1.add("jhid", UiUtlis.encoder(jhid)); request1.add("xftype", 1); + if(App.getInstance().getUserInfo()!=null&&App.getInstance().getUserInfo().getToken()!=null){ + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + request1.addHeader("Authorization", credential); + showLog(request1.url()); +// showLog(credential); +// showLog(new Gson().toJson(request.headers())); + } queue.add(2, request1, new HttpResponseListener<>(getActivity(), request1, callback, false, false, "加载中...")); //NohttpUtils.getInstance().add(getActivity(), 2, request1, callback, false, false, "下载计划中..."); requestCount++; Request request2 = NoHttp.createStringRequest(Contans.IP + Contans.XFXCXM); request2.add("jhid", UiUtlis.encoder(jhid)); + if(App.getInstance().getUserInfo()!=null&&App.getInstance().getUserInfo().getToken()!=null){ + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + request2.addHeader("Authorization", credential); + showLog(request2.url()); +// showLog(credential); +// showLog(new Gson().toJson(request.headers())); + } queue.add(3, request2, new HttpResponseListener<>(getActivity(), request2, callback, false, false, "加载中...")); //NohttpUtils.getInstance().add(getActivity(), 3, request2, callback, false, false, "下载计划中"); } else if (xctypes.equals("2")) { requestCount++; Request xfba = NoHttp.createStringRequest(Contans.IP + Contans.BAXCJHXZ); xfba.add("jhid", UiUtlis.encoder(jhid)); + if(App.getInstance().getUserInfo()!=null&&App.getInstance().getUserInfo().getToken()!=null){ + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + xfba.addHeader("Authorization", credential); + showLog(xfba.url()); +// showLog(credential); +// showLog(new Gson().toJson(request.headers())); + } queue.add(4, xfba, new HttpResponseListener<>(getActivity(), xfba, callback, false, false, "加载中...")); //NohttpUtils.getInstance().add(getActivity(), 4, xfba, callback, false, false, "下载计划中"); } else if (xctypes.equals("3")) { requestCount++; Request lyxc = NoHttp.createStringRequest(Contans.IP + Contans.LYXCXM); lyxc.add("jhid", UiUtlis.encoder(jhid)); + if(App.getInstance().getUserInfo()!=null&&App.getInstance().getUserInfo().getToken()!=null){ + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + lyxc.addHeader("Authorization", credential); + showLog(lyxc.url()); +// showLog(credential); +// showLog(new Gson().toJson(request.headers())); + } queue.add(5, lyxc, new HttpResponseListener<>(getActivity(), lyxc, callback, false, false, "加载中...")); //NohttpUtils.getInstance().add(getActivity(), 5, lyxc, callback, false, false, "下载计划中"); requestCount++; Request lyxcqy = NoHttp.createStringRequest(Contans.IP + Contans.LYXCQY); lyxcqy.add("jhid", UiUtlis.encoder(jhid)); + if(App.getInstance().getUserInfo()!=null&&App.getInstance().getUserInfo().getToken()!=null){ + String token = App.getInstance().getUserInfo().getToken(); + String credential = "Bearer " + token; + lyxcqy.addHeader("Authorization", credential); + showLog(lyxcqy.url()); +// showLog(credential); +// showLog(new Gson().toJson(request.headers())); + } queue.add(6, lyxcqy, new HttpResponseListener<>(getActivity(), lyxcqy, callback, false, false, "加载中...")); - //NohttpUtils.getInstance().add(getActivity(), 6, lyxcqy, callback, false, false, "下载计划中"); + NohttpUtils.getInstance().add(getActivity(), 6, lyxcqy, callback, false, false, "下载计划中"); } } diff --git a/app/src/main/java/com/rehome/zhdcoa/utils/AuthenticationLoginAIUtils.java b/app/src/main/java/com/rehome/zhdcoa/utils/AuthenticationLoginAIUtils.java index 3c5543a..9fa33d7 100644 --- a/app/src/main/java/com/rehome/zhdcoa/utils/AuthenticationLoginAIUtils.java +++ b/app/src/main/java/com/rehome/zhdcoa/utils/AuthenticationLoginAIUtils.java @@ -2,8 +2,10 @@ package com.rehome.zhdcoa.utils; import android.content.Context; +import android.text.TextUtils; import android.util.Log; +import com.rehome.zhdcoa.BuildConfig; import com.rehome.zhdcoa.Contans; import com.rehome.zhdcoa.bean.UserAuthenticationAIBean; import com.yolanda.nohttp.Headers; @@ -14,6 +16,11 @@ import com.yolanda.nohttp.rest.Response; import static com.rehome.zhdcoa.utils.GsonUtils.GsonToBean; +import java.net.HttpCookie; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import javax.net.ssl.HostnameVerifier; import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSocketFactory; @@ -21,18 +28,28 @@ import javax.net.ssl.SSLSocketFactory; public class AuthenticationLoginAIUtils { /** * @param context Context - * @param account 工号 + * @param account 工号 * @param password 密码 * @param listener 监听回调 */ public static void authenticationAILogin(Context context, String account, String password, OnAuthenticationLoginListener listener) { Request request = NoHttp.createStringRequest(Contans.BASE_URL_AI_3D_SERVER + Contans.AUTHENTICATIONLOGINAI3D, RequestMethod.POST); - request.add("account", account); - request.add("password", password); - request.addHeader("Content-Type", Headers.HEAD_VALUE_ACCEPT_APPLICATION_X_WWW_FORM_URLENCODED); +// request.add("account", account); +// request.add("password", password); +// request.addHeader("Content-Type", Headers.HEAD_VALUE_ACCEPT_APPLICATION_X_WWW_FORM_URLENCODED); + + Map params = new HashMap<>(); + params.put("account", account); + params.put("password", password); - if(Contans.BASE_URL_AI_3D_SERVER.equals(Contans.BASE_URL_AI_3D_SERVER_EXTRANET)){ + String json = GsonUtils.GsonString(params); + //showLog(json); + String jsonEncrypt = RSAUtils.encryptBASE64Str(json); + //showLog(jsonEncrypt); + request.setDefineRequestBodyForJson(jsonEncrypt); + + if (Contans.BASE_URL_AI_3D_SERVER.equals(Contans.BASE_URL_AI_3D_SERVER_EXTRANET)) { SSLSocketFactory socketFactory = NohttpUtils.getSSLSocketFactory(context); if (socketFactory != null) { request.setSSLSocketFactory(socketFactory); @@ -45,46 +62,79 @@ public class AuthenticationLoginAIUtils { } } - NohttpUtils.getInstance().addNoProgress(context,0, request, new HttpListener() { + NohttpUtils.getInstance().addNoProgress(context, 0, request, new HttpListener() { @Override public void onSucceed(int what, Response response) { - Log.i("app", "----------------"); + //showLog("----------------"); String result = response.get(); - Log.i("app", result); - UserAuthenticationAIBean bean = GsonToBean(result, UserAuthenticationAIBean.class); - if (bean != null) { - if (bean.isSuccess()) {//登录成功 - SPUtils.put(context, Contans.AUTHENTICATIONLOGINTOKENAI, bean.getData().getToken()); - listener.onAuthenticationSuccess(true, bean.getData().getToken()); - } else { - if (bean.getFlag() == -1) { - if (bean.getMsg() != null && bean.getMsg().equals("用户未注销")) { - String token = (String) SPUtils.get(context, Contans.AUTHENTICATIONLOGINTOKENAI, String.valueOf("")); - listener.onAuthenticationSuccess(true, token); - } + //showLog(result); + + String jsonDecode = RSAUtils.decryptBASE64StrClient(result); + if (TextUtils.isEmpty(jsonDecode)) { + //解密失败 + showLog("APP解密失败"); + listener.onAuthenticationSuccess(false, ""); + } else { + showLog(jsonDecode); + UserAuthenticationAIBean bean = GsonToBean(jsonDecode, UserAuthenticationAIBean.class); + if (bean != null) { + if (bean.isSuccess()) {//登录成功 + SPUtils.put(context, Contans.AUTHENTICATIONLOGINTOKENAI, bean.getData().getToken()); + listener.onAuthenticationSuccess(true, bean.getData().getToken()); } else { - listener.onAuthenticationSuccess(false, ""); + if (bean.getFlag() == -1) { + if (bean.getMsg() != null && bean.getMsg().equals("用户未注销")) { + String token = (String) SPUtils.get(context, Contans.AUTHENTICATIONLOGINTOKENAI, String.valueOf("")); + listener.onAuthenticationSuccess(true, token); + } + } else { + listener.onAuthenticationSuccess(false, ""); + if (bean.getFlag() == -2) { + showLog("没有传参"); + } + if (bean.getFlag() == -3) { + showLog("服务器解密失败"); + } + if (bean.getFlag() == -4) { + showLog("Json 格式不正确"); + } + if (bean.getFlag() == -5) { + showLog("账号密码不能为空"); + } + if (bean.getFlag() == -6) { + showLog("账号或密码错误"); + } + } } - } -// String cookieId = ""; -// // 响应头 -// Headers headers = response.getHeaders(); -// List cookies = headers.getCookies(); -// Log.i("app", String.valueOf(cookies.size())); -// for (HttpCookie httpCookie : cookies) { -// String cookieName = httpCookie.getName(); -// if ("JSESSIONID".equals(cookieName)) { -// // 这里就拿到了你想那的cookie -// cookieId = httpCookie.getValue(); +// 状态码 flag: +// -1:已登录过 +// -2:没有传参 +// -3:解密失败 +// -4:Json 格式不正确 +// -5:账号密码不能为空 +// -6:账号或密码错误 + +// String cookieId = ""; +// // 响应头 +// Headers headers = response.getHeaders(); +// List cookies = headers.getCookies(); +// Log.i("app", String.valueOf(cookies.size())); +// for (HttpCookie httpCookie : cookies) { +// String cookieName = httpCookie.getName(); +// if ("JSESSIONID".equals(cookieName)) { +// // 这里就拿到了你想那的cookie +// cookieId = httpCookie.getValue(); +// } +// } +// showLog("--------"); +// showLog(cookieId); +// if (cookies.size() > 0 && !(cookieId.equals(""))) { +// SPUtils.put(context, Contans.AUTHENTICATIONLOGINTOKENAI, cookieId); // } -// } -// if(cookies.size()>0&&!(cookieId.equals(""))){ -// SPUtils.put(context, Contans.AUTHENTICATIONLOGINTOKENAI, cookieId); -// } -// listener.onAuthenticationSuccess(false, ""); + } } } @@ -94,4 +144,14 @@ public class AuthenticationLoginAIUtils { } }); } + + public static void showLog(String logText) { + if (BuildConfig.LOG_ERROR) { + if (TextUtils.isEmpty(logText)) { + Log.i("app", "logText is null"); + } else { + Log.i("app", logText); + } + } + } } \ No newline at end of file diff --git a/app/src/main/java/com/rehome/zhdcoa/utils/AuthenticationLoginUtils.java b/app/src/main/java/com/rehome/zhdcoa/utils/AuthenticationLoginUtils.java index 0107747..94689ba 100644 --- a/app/src/main/java/com/rehome/zhdcoa/utils/AuthenticationLoginUtils.java +++ b/app/src/main/java/com/rehome/zhdcoa/utils/AuthenticationLoginUtils.java @@ -1,9 +1,11 @@ package com.rehome.zhdcoa.utils; import android.content.Context; +import android.text.TextUtils; import android.util.Base64; import android.util.Log; +import com.rehome.zhdcoa.BuildConfig; import com.rehome.zhdcoa.Contans; import com.rehome.zhdcoa.base.BaseCallBack; import com.rehome.zhdcoa.bean.UserAuthenticationBean; @@ -25,9 +27,9 @@ public class AuthenticationLoginUtils { String base64Password = Base64.encodeToString(password.getBytes(), Base64.DEFAULT); params.put("userid",username); params.put("password",base64Password); -// String json = GsonUtils.GsonString(params); -// Log.i("完整的时间和日期: " , json); -// Log.i("完整的时间和日期: " , base64Password); + String json = GsonUtils.GsonString(params); + showLog(json); + showLog(base64Password); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); HttpUtils.getCompanyServerApi().userAuthenticationLogin(username,base64Password).enqueue(new BaseCallBack(context) { @@ -65,4 +67,13 @@ public class AuthenticationLoginUtils { } }); } + public static void showLog(String logText) { + if (BuildConfig.LOG_ERROR) { + if(TextUtils.isEmpty(logText)){ + Log.i("app", "logText is null"); + }else{ + Log.i("app", logText); + } + } + } } diff --git a/app/src/main/java/com/rehome/zhdcoa/utils/RSAUtils.java b/app/src/main/java/com/rehome/zhdcoa/utils/RSAUtils.java index 2989353..dcf6f1f 100644 --- a/app/src/main/java/com/rehome/zhdcoa/utils/RSAUtils.java +++ b/app/src/main/java/com/rehome/zhdcoa/utils/RSAUtils.java @@ -42,7 +42,8 @@ public class RSAUtils { public static final String public_key = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnRh8MAqfpBZffouPsU3hToRZl3soo2ntYU4psQtc72QOvnprQ6Ua6UBY0WqemCJF/KxQ8p+vY7/r5eZ97Fw7Sq40PQTNKvyxFQuMGRAO8xTahSn2/79KViq7mVVLm2UAH8QaFmq7rJJbkCif3I1yiFMqzOF41ak231GF8eD62gr9+DFLiR1UKjv+/qXG4UjFQM6pa0cD1kAOsoYz0dSQlHFMbOaVf+VEWxSqFjKPiep6bYoViTlMRkdLqbUbHr/xk67C8lGqWO7wnB32T0+fYwnFWF952OJ9kov9oSnvOFXa+NwlAe7m2hZtFnW/NoBX1WxkQ6zTTTxJb8sRNft7qQIDAQAB"; - public static final String private_key = "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCdGHwwCp+kFl9+i4+xTeFOhFmXeyijae1hTimxC1zvZA6+emtDpRrpQFjRap6YIkX8rFDyn69jv+vl5n3sXDtKrjQ9BM0q/LEVC4wZEA7zFNqFKfb/v0pWKruZVUubZQAfxBoWaruskluQKJ/cjXKIUyrM4XjVqTbfUYXx4PraCv34MUuJHVQqO/7+pcbhSMVAzqlrRwPWQA6yhjPR1JCUcUxs5pV/5URbFKoWMo+J6nptihWJOUxGR0uptRsev/GTrsLyUapY7vCcHfZPT59jCcVYX3nY4n2Si/2hKe84Vdr43CUB7ubaFm0Wdb82gFfVbGRDrNNNPElvyxE1+3upAgMBAAECggEAOcphHRc7ZRSp6paStMoOoWDEyJoQ+BSms84aPjwM4y/u0JmeThM11CrMwbU0RIkPMAV//dFKpypaMIfbOREw6qctJmlWxIKS7kgCMNIcfcXlIWmvqKOJSCuOObkMCE1ef1EXu7ll8vUgY+bd8DfEs2vM6fPkDM2kFwEZgkKeZYlkFcLLy8V701seLtNzbPaqAUa44S6m0DVH7gojad8+Ni/XsdNzSrd8Y2930M8LVZoOTLrwskJaF2v/WvjM3blOtHxLqDfXfD4uRm12b1SNzPx2djlL6vNptwbpYAtPOYol8W0LxJH2AHbTrUFv/KJdyuD4NVGSnGpYtWzD7QQetQKBgQDLqfaiq0uHQerAc3M30pOZSDF8PtiBd1jdqFoOVhuADkp4LPXm54s5evEi2r3tl4x8cAvUo6WaxDlG3IFO0POLcZY+Xf2sMhwMAxiwWqLVRGirjr6QAfnmWAToqqyh8brxNti4MC3X/yudrd6x/VJ1lQ3Pooiihf4Ir74QuY7wqwKBgQDFdwbFou07bQmxCElgC5MF78Aevn5JzsniGU2RhpxG7ajf2T9n6AjtVfvYLy6iYsfLm6RGC2uofBjMgL920ePXBSDv0fk1UEVoR/vCtspyCLBVXELdSS5DCnux1F15vKAJZQyODGyEv0d8h97qKRaq14EW75e9vPx4ahxXgaiM+wKBgGE0AonK9aZdmJw3veMDtvxuj2e8WvsXqitIwYqcIE3zBCntU4PcOP+7JMG84u816JAvrgXUASMnyip+7ZxfcA26rbmghIUd+XLmO29YIuVk3AwdeegjeVEt61Hcu74jMFUWF0N5gzfXCsscA/Cxdhy2gjv6V/oxt3gP4Mf8uDM3AoGAJMVhcXRBkQtg/qJ4Z3ZATp6yvAblJYFofr4Pf8X9XAftpqGh+QtwfiHA4CUJHhwe8H9vO8vspFdXlt1yygGT1/qQg5gqPA9SnXSqITxAvrN3gq3HlcWG490T462UKpNBif5TNDCEFMQ536q9jAVSv0WaOFctfpuuuA2qcXEnnfkCgYEAuFWzis7ICtcZTr8CZOC7FeVL6URzI1akwRlHDHRUrNRCTf47HGUG9bCC6N+v6ex7TD2XlaB0g3U9XXjYRyk9T2AWfgzPvgvw7H+tI9r+9yyDlUbb2pvaKdVQIgCnJ6Hg7Qw7MuwzjEiXLF7HMy5CFnrVnHAjYrNe1Gqgo0v3rsY="; + public static final String private_key = "MIIEvQIAADANBgkqhkiG9w0BAQEFTASCBKcwggSjAgEAAoIBAQCdGHwwCp+kFl3+i4+xTeFOhFmXeyijae1hTimxC1zvZA6+emtDpRrpQFjRap6YIkX8rFDyn69jv+vl5n3sXDtKrjQ9BM0q/LEVC4wZEA7zFNqFKfb/v0pWKruZVUubZQAfxBoWaruskluQKJ/cjXKIUyrM4XjVqTbfUYXx4PraCv34MUuJHVQqO/7+pcbhSMVAzqlrRwPWQA6yhjPR1JCUcUxs5pV/5URbFKoWMo+J6nptihWJOUxGR0uptRsev/GTrsLyUapY7vCcHfZPT59jCcVYX3nY4n2Si/2hKe84Vdr43CUB7ubaFm0Wdb82gFfVbGRDrNNNPElvyxE1+3upAgMBAAECggEAOcphHRc7ZRSp6paStMoOoWDEyJoQ+BSms84aPjwM4y/u0JmeThM11CrMwbU0RIkPMAV//dFKpypaMIfbOREw6qctJmlWxIKS7kgCMNIcfcXlIWmvqKOJSCuOObkMCE1ef1EXu7ll8vUgY+bd8DfEs2vM6fPkDM2kFwEZgkKeZYlkFcLLy8V701seLtNzbPaqAUa44S6m0DVH7gojad8+Ni/XsdNzSrd8Y2930M8LVZoOTLrwskJaF2v/WvjM3blOtHxLqDfXfD4uRm12b1SNzPx2djlL6vNptwbpYAtPOYol8W0LxJH2AHbTrUFv/KJdyuD4NVGSnGpYtWzD7QQetQKBgQDLqfaiq0uHQerAc3M30pOZSDF8PtiBd1jdqFoOVhuADkp4LPXm54s5evEi2r3tl4x8cAvUo6WaxDlG3IFO0POLcZY+Xf2sMhwMAxiwWqLVRGirjr6QAfnmWAToqqyh8brxNti4MC3X/yudrd6x/VJ1lQ3Pooiihf4Ir74QuY7wqwKBgQDFdwbFou07bQmxCElgC5MF78Aevn5JzsniGU2RhpxG7ajf2T9n6AjtVfvYLy6iYsfLm6RGC2uofBjMgL920ePXBSDv0fk1UEVoR/vCtspyCLBVXELdSS5DCnux1F15vKAJZQyODGyEv0d8h97qKRaq14EW75e9vPx4ahxXgaiM+wKBgGE0AonK9aZdmJw3veMDtvxuj2e8WvsXqitIwYqcIE3zBCntU4PcOP+7JMG84u816JAvrgXUASMnyip+7ZxfcA26rbmghIUd+XLmO29YIuVk3AwdeegjeVEt61Hcu74jMFUWF0N5gzfXCsscA/Cxdhy2gjv6V/oxt3gP4Mf8uDM3AoGAJMVhcXRBkQtg/qJ4Z3ZATp6yvAblJYFofr4Pf8X9XAftpqGh+QtwfiHA4CUJHhwe8H9vO8vspFdXlt1yygGT1/qQg5gqPA9SnXSqITxAvrN3gq3HlcWG490T462UKpNBif5TNDCEFMQ536q9jAVSv0WaOFctfpuuuA2qcXEnnfkCgYEAuFWzis7ICtcZTr8CZOC7FeVL6URzI1akwRlHDHRUrNRCTf47HGUG9bCC6N+v6ex7TD2XlaB0g3U9XXjYRyk9T2AWfgzPvgvw7H+tI9r+9yyDlUbb2pvaKdVQIgCnJ6Hg7Qw7MuwzjEiXLF7HMy5CFnrVnHAjYrNe1Gqgo0v3rsY="; + public static final String public_key_client = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu0jZXvlRCBOX5R2wW7a+A6dciQD2F2DQqOOaVyPGH1fQxBdVn/HfgiBYXPDIodaSSTDcl1rjlepUiAZjyTpzieZgDo6txy5ncB1ts85frc0DF08zn+zztj4g9zIU7Q8pzxYJ+2wI1XcNzt0eaWBCU7DZKjjp5iRTuKNcLJ5VLe0w8PfvG+AwqGDN+j+523V79o81pdhBJ5hzWhdkzO62X2Va7EjcQ9kpDNDsafqXzhXEyf7LiEsyQkDWzWCZuZN7DQhKriJepfrFqCqlkUHtjd6LSwloEqxYdrfTHuKxxLEUJF+051vrEafwAVM2Sg65nqWbPI11E2DBbr3wSNVYKQIDAQAB"; public static final String private_key_client= "MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQC7SNle+VEIE5flHbBbtr4Dp1yJAPYXYNCo45pXI8YfV9DEF1Wf8d+CIFhc8Mih1pJJMNyXWuOV6lSIBmPJOnOJ5mAOjq3HLmdwHW2zzl+tzQMXTzOf7PO2PiD3MhTtDynPFgn7bAjVdw3O3R5pYEJTsNkqOOnmJFO4o1wsnlUt7TDw9+8b4DCoYM36P7nbdXv2jzWl2EEnmHNaF2TM7rZfZVrsSNxD2SkM0Oxp+pfOFcTJ/suISzJCQNbNYJm5k3sNCEquIl6l+sWoKqWRQe2N3otLCWgSrFh2t9Me4rHEsRQkX7TnW+sRp/ABUzZKDrmepZs8jXUTYMFuvfBI1VgpAgMBAAECggEAL7KfAcw3cfojfkuwZbtF64JNU+s1wcB7g/frj/PheowP9FEJEqI0TVzVhF4iiu0t9owGMloIil7Sxo3yDgbf9CgDINH/ujG8UFZ+YQPXZFlJRz95o2piq3BpTuunXrS07jPruOfL3CnlD2FLZIUKf2wT8ufp0h5AYE7io85zXS2SvzlWuchA1bzGCGZc88zr5VWcbDGHXWG7PDd8VgEEb69UUP6H0IWWEAeHwOeqZ9sJHcvhwx93ecQ+evXHztRYouJ0WzQOOEKKHgID+ImcpYpyAbSeWfacyOHx6UVu+2fL88jyhhz20OQLVCBp2MzIHPPez0l/LJ/OveeKC3lLvQKBgQDNl+Kj7DfhcjvzLBML6tAE73tiGt6QbMf9frVq4J+oAM9tW862WsZgAAOSkkG+fUuIF0FmvQ4mRPs8R2s4etC5n5G3wEbLPJruF2yEngONI8bI9i+yzx/xVl3Pru85QOBvpxpxCPx2uxK/LzE5PfnWPqRwQ7+BiLMVLigM/bn+nwKBgQDpM8+9CQ2S/RA6qao6Sr3LiLATA0y0ShjEiii2ZkCxgTyl004xhSxj45ijkFmJRqUix7yt/CGZQq3JxnrWAEH1Y0r/AM8F7sTtKu37fLyCoVpQ4HlyyCCVVLvTExOZYsf8lGLJB2DOJGKK5V69uvOLqc8zmsPSSbVlvAC+6ZHcNwKBgDWXIMmv2kUW3M+fLnvNwll2/0dsT5V/9YV7UNjCInvNckRESRa5hLojZsr++sonqNeZkD+yigypsH9e8nDvepbYJEisgweZDZ2AV5YeBjj1GWzq1zYZzW7AH4XySIM5CQexnC/Yss5UJyfUqlUMdaJGA+ELl9CxDFU6CdCRFrlrAoGAR2tVuNgX7ydPnBewCZAwVjAzdG8zQ5fZw/9n/oyMTZB96W8waFwXvzPJ4HXp5e/bzS4Mq+AmzhAstznxDq8fhC53nmc5/+AjMVtPbRDDjuIpjdFhgHSn/fPoXflerEAjbUhohJac4CUmhNFAVaz2v5Qu3+gLBtEKG/Ea7V0NDbsCgYAocw/DFV5hAyQHyVwPNtsSd/vF+iGSyJJxqBPXW36fLNzdkoZL8TNGWeuyTloZbsXBorYESTX+1522xAFr7FcQpoQRjEOAuloqc5+C03D0fSrdczbxyHQMVTvsdFbfKWaQO4EjDrZqFA50h3rhY3ZosT8IS5npZQ7ifR3B1DCfdQ=="; public static final String public_key_local = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/lhQRyFMV5LLJz9jFjY+ZW/79wEuujDJjy8YxlxqfST+FUUOytH46fLRd5m4s4Nj7L03hssz0H0M1pKiUzUzp6ulSC8GH2/uZzBq47agre9bW0A+Uu0IiCwfOc0J1L1UlLm/wWRGW0Sw51OHYAs99irjhxdGFOVv/mS9FzzxmBRFOwUXFD8iXyEKI8xkteyHGniKRwBYoWR32kQw7H/Mnpamo1fCrHA6Dg55CBeIEkg2oyPGKzvhkPVopJzj9zukW8w2F0iR5ll0QBl7XzGyy3EHmIsYsod3LSIh1g5A2zsscJ0ouorKGLwY1LK06a34JTkYz5p7lx6Nn6589Re8GwIDAQAB";