From bb195866c848526fe0f07ea5217e491d8d84a30d Mon Sep 17 00:00:00 2001 From: hwf453 Date: Tue, 17 Oct 2023 17:38:23 +0800 Subject: [PATCH] 2.2.5.1 --- app/build.gradle | 4 +- .../main/java/com/rehome/zhdcoa/Contans.java | 5 +- .../com/rehome/zhdcoa/base/BaseCallBack.java | 16 +- .../com/rehome/zhdcoa/base/BaseFragment.java | 15 +- .../ActivityFactoryMemberStatistics.java | 16 + .../activity/ActivityFactoryMemberTrack.java | 38 ++- .../activity/ActivityFactoryWorkerInfo.java | 28 +- .../ActivityFactoryWorkerInfoGroup.java | 22 +- .../ActivityFactoryWorkerInfoGroupMember.java | 23 +- .../ActivityFactoryWorkerInfoStatistics.java | 23 +- .../activity/ActivityPracticeScoreDetail.java | 5 +- .../ui/activity/Activity_PracticeHistory.java | 5 +- .../ui/activity/Activity_PracticeOnline.java | 3 +- .../Activity_ProduceStudyHistory.java | 5 +- .../ui/activity/AddDagerEnterApplyActivity.kt | 7 +- .../zhdcoa/ui/activity/DjdscFragment.java | 25 ++ .../ui/activity/ExamInfoDetailActivity.kt | 8 +- .../zhdcoa/ui/activity/LoginActivity.kt | 268 +++++++++------- .../rehome/zhdcoa/ui/activity/MainActivity.kt | 6 +- .../zhdcoa/ui/activity/XzjhFragment.java | 40 +++ .../zhdcoa/ui/fragment/ContactFragment.java | 5 +- .../zhdcoa/ui/fragment/HomeFragment.java | 8 +- .../zhdcoa/ui/fragment/PracticeFragment.kt | 4 +- .../zhdcoa/ui/fragment/ProduceFragment.kt | 4 +- .../zhdcoa/ui/fragment/YjyaCFragment.java | 31 +- .../zhdcoa/ui/fragment/YjyaDFragment.java | 26 +- .../zhdcoa/ui/fragment/YunXingFragment.java | 8 +- .../utils/AuthenticationLoginAIUtils.java | 19 +- .../utils/AuthenticationLoginUtils.java | 8 +- .../zhdcoa/utils/HttpResponseListener.java | 2 +- .../com/rehome/zhdcoa/utils/HttpUtils.java | 68 ++-- .../com/rehome/zhdcoa/utils/NohttpUtils.java | 47 +++ .../com/rehome/zhdcoa/utils/RSAUtils.java | 293 +++++++++++++++++- app/src/main/res/layout/activity_lrgzp.xml | 2 +- 34 files changed, 846 insertions(+), 241 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 9ffc7bf..038635b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ android { applicationId "com.rehome.zhdcoa" minSdk 24 targetSdk 34 - versionCode 8 - versionName "2.2.4" + versionCode 9 + versionName "2.2.5" multiDexEnabled true testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" //每个应用拥有不同的authorities,防止相同的在同一个手机上无法同时安装 diff --git a/app/src/main/java/com/rehome/zhdcoa/Contans.java b/app/src/main/java/com/rehome/zhdcoa/Contans.java index d03c3c6..5289192 100644 --- a/app/src/main/java/com/rehome/zhdcoa/Contans.java +++ b/app/src/main/java/com/rehome/zhdcoa/Contans.java @@ -13,7 +13,7 @@ public class Contans { //智慧安防平台登录 电厂外网 public static String BASE_URL_COMPANY_SERVER= "http://219.131.195.3:8011/"; //AI三维可视化安防平台登录 - public static String BASE_URL_AI_3D_SERVER= "http://219.131.195.3:8100/"; + public static String BASE_URL_AI_3D_SERVER= "https://219.131.195.3:8100/"; //APP登录接口url @@ -43,7 +43,7 @@ public class Contans { //AI三维可视化安防平台登录 电厂内网 public static String BASE_URL_AI_3D_SERVER_INTRANET= "http://10.19.0.114:8100/"; //AI三维可视化安防平台登录 电厂外网 - public static String BASE_URL_AI_3D_SERVER_EXTRANET= "http://219.131.195.3:8100/"; + public static String BASE_URL_AI_3D_SERVER_EXTRANET= "https://219.131.195.3:8100/"; //腾讯浏览服务key public static String TBS_LICENSE_KEY= "4ktUk0LXU2iC2Dx/oesZcwiKAOZ4YXvjSQ4OFCcx+5e1csWD0cYNfCdXe2LpY+mB"; //考试列表页面刷新数据 @@ -181,6 +181,7 @@ public class Contans { public static String LOGIN = "AppLogin/GetData.aspx"; public static String APPLOGIN = "PubFile/Data/AppLogin/GetData.aspx"; + public static String APPLOGINRSA = "PubFile/Data/AppLogin/GetDataRsa.aspx"; public static String PRINT = "AppTXM/GetData.aspx"; diff --git a/app/src/main/java/com/rehome/zhdcoa/base/BaseCallBack.java b/app/src/main/java/com/rehome/zhdcoa/base/BaseCallBack.java index b365ada..09a1e35 100644 --- a/app/src/main/java/com/rehome/zhdcoa/base/BaseCallBack.java +++ b/app/src/main/java/com/rehome/zhdcoa/base/BaseCallBack.java @@ -2,7 +2,11 @@ package com.rehome.zhdcoa.base; import android.content.Context; import android.widget.Toast; + +import com.rehome.zhdcoa.ui.activity.DJPXinfoMoreActivity; +import com.rehome.zhdcoa.ui.toastview.toastviewbymyself; import com.rehome.zhdcoa.weiget.LoadDialog; + import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; @@ -26,15 +30,21 @@ public abstract class BaseCallBack implements Callback { @Override public void onResponse(Call call, Response response) { - dialog.dismiss(); + if (dialog != null) { + dialog.dismiss(); + } onSuccess(call, response); } @Override public void onFailure(Call call, Throwable t) { - dialog.dismiss(); - Toast.makeText(context, "网络连接失败", Toast.LENGTH_SHORT).show(); + if (dialog != null) { + dialog.dismiss(); + } + if (context != null) { + Toast.makeText(context, "网络连接失败", Toast.LENGTH_SHORT).show(); + } onError(call, t); } diff --git a/app/src/main/java/com/rehome/zhdcoa/base/BaseFragment.java b/app/src/main/java/com/rehome/zhdcoa/base/BaseFragment.java index 8b3110a..738d760 100644 --- a/app/src/main/java/com/rehome/zhdcoa/base/BaseFragment.java +++ b/app/src/main/java/com/rehome/zhdcoa/base/BaseFragment.java @@ -3,6 +3,7 @@ package com.rehome.zhdcoa.base; import android.app.Activity; import android.content.Context; import android.os.Bundle; + import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; @@ -59,11 +60,15 @@ public abstract class BaseFragment extends Fragment { } public void showToast(String msg) { - Toast.makeText(getContext(), msg, Toast.LENGTH_SHORT).show(); + if (context != null) { + Toast.makeText(context, msg, Toast.LENGTH_SHORT).show(); + } } public void showToast(int strId) { - Toast.makeText(getContext(), strId, Toast.LENGTH_SHORT).show(); + if (context != null) { + Toast.makeText(context, strId, Toast.LENGTH_SHORT).show(); + } } @Override @@ -75,14 +80,14 @@ public abstract class BaseFragment extends Fragment { public void onDetach() { super.onDetach(); this.context = null; - mActivity =null; + mActivity = null; } public void showLog(String logText) { if (BuildConfig.LOG_ERROR) { - if(TextUtils.isEmpty(logText)){ + if (TextUtils.isEmpty(logText)) { Log.i("app", "logText is null"); - }else{ + } else { Log.i("app", logText); } } diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryMemberStatistics.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryMemberStatistics.java index 3760746..30fe477 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryMemberStatistics.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryMemberStatistics.java @@ -33,6 +33,10 @@ import androidx.recyclerview.widget.DividerItemDecoration; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.SSLSession; +import javax.net.ssl.SSLSocketFactory; + /** * 在厂员工 */ @@ -141,6 +145,18 @@ public class ActivityFactoryMemberStatistics extends BaseActivity { Request request = NoHttp.createStringRequest(Contans.BASE_URL_AI_3D_SERVER + Contans.PLANT_PERSONNEL_LIST, RequestMethod.GET); request.add("type_name", "在厂员工"); + 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); + request.setHostnameVerifier(new HostnameVerifier() { + @Override + public boolean verify(String s, SSLSession sslSession) { + return true; + } + }); + } + } NohttpUtils.getInstance().add(ActivityFactoryMemberStatistics.this,0, request, new HttpListener() { @Override diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryMemberTrack.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryMemberTrack.java index ada81be..7608719 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryMemberTrack.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryMemberTrack.java @@ -15,12 +15,16 @@ import android.widget.TextView; import com.rehome.zhdcoa.bean.MemberTrackBean; import com.rehome.zhdcoa.bean.WorkerInfoStatisticsBean; import com.rehome.zhdcoa.utils.HttpListener; -import com.rehome.zhdcoa.utils.NoProgresshttpUtils; +import com.rehome.zhdcoa.utils.NohttpUtils; import com.yolanda.nohttp.NoHttp; import com.yolanda.nohttp.RequestMethod; import com.yolanda.nohttp.rest.Request; import static com.rehome.zhdcoa.utils.GsonUtils.GsonToBean; +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.SSLSession; +import javax.net.ssl.SSLSocketFactory; + /** * 人员轨迹 */ @@ -81,7 +85,6 @@ public class ActivityFactoryMemberTrack extends BaseActivity { @Override public void initData() { getFactoryWorkerInfo(); - getMemberTrack(); } public void getFactoryWorkerInfo() { @@ -89,7 +92,20 @@ public class ActivityFactoryMemberTrack extends BaseActivity { Request request = NoHttp.createStringRequest(Contans.BASE_URL_AI_3D_SERVER + Contans.CONTRACTOR_PERSONNEL_INFORMATION, RequestMethod.GET); request.add("card_no", card_no); - NoProgresshttpUtils.getInstance().add(0, request, new HttpListener() { + 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); + request.setHostnameVerifier(new HostnameVerifier() { + @Override + public boolean verify(String s, SSLSession sslSession) { + return true; + } + }); + } + } + + NohttpUtils.getInstance().add(this,0, request, new HttpListener() { @Override public void onSucceed(int what, com.yolanda.nohttp.rest.Response response) { @@ -133,6 +149,7 @@ public class ActivityFactoryMemberTrack extends BaseActivity { } } + getMemberTrack(); } @Override @@ -147,7 +164,20 @@ public class ActivityFactoryMemberTrack extends BaseActivity { Request request = NoHttp.createStringRequest(Contans.BASE_URL_AI_3D_SERVER + Contans.MEMBER_TRACK_URL, RequestMethod.GET); request.add("identification_number", card_no); - NoProgresshttpUtils.getInstance().add(0, request, new HttpListener() { + 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); + request.setHostnameVerifier(new HostnameVerifier() { + @Override + public boolean verify(String s, SSLSession sslSession) { + return true; + } + }); + } + } + + NohttpUtils.getInstance().add(this,0, request, new HttpListener() { @Override public void onSucceed(int what, com.yolanda.nohttp.rest.Response response) { 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 c05d32a..036c8cb 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 @@ -1,7 +1,6 @@ package com.rehome.zhdcoa.ui.activity; import android.content.Intent; -import android.util.Log; import android.view.View; import android.widget.FrameLayout; import android.widget.TextView; @@ -12,7 +11,7 @@ import com.rehome.zhdcoa.base.BaseActivity; import com.rehome.zhdcoa.bean.MemberInfoStatisticsV1Bean; import com.rehome.zhdcoa.utils.AuthenticationLoginAIUtils; import com.rehome.zhdcoa.utils.HttpListener; -import com.rehome.zhdcoa.utils.NoProgresshttpUtils; +import com.rehome.zhdcoa.utils.NohttpUtils; import com.rehome.zhdcoa.utils.OnAuthenticationLoginListener; import com.rehome.zhdcoa.utils.RSAAndroid; import com.yolanda.nohttp.NoHttp; @@ -20,10 +19,12 @@ import com.yolanda.nohttp.RequestMethod; import com.yolanda.nohttp.rest.Request; import com.yolanda.nohttp.rest.Response; -import java.util.List; - import static com.rehome.zhdcoa.utils.GsonUtils.GsonToBean; +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.SSLSession; +import javax.net.ssl.SSLSocketFactory; + /** * 当前厂内人员信息 */ @@ -149,6 +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); AuthenticationLoginAIUtils.authenticationAILogin(ActivityFactoryWorkerInfo.this, account, strPublicDecode, new OnAuthenticationLoginListener() { @Override @@ -171,7 +175,7 @@ public class ActivityFactoryWorkerInfo extends BaseActivity { // Request request = NoHttp.createStringRequest(Contans.BASE_URL_AI_3D_SERVER + Contans.INFO_STATISTICS, RequestMethod.GET); // request.add("keys", "plantPersonnel"); // -// NoProgresshttpUtils.getInstance().add(0, request, new HttpListener() { +// NohttpUtils.getInstance().addNoProgress(this,0, request, new HttpListener() { // // @Override // public void onSucceed(int what, Response response) { @@ -227,8 +231,20 @@ public class ActivityFactoryWorkerInfo extends BaseActivity { public void getFactoryMemberInfoV1() { Request request = NoHttp.createStringRequest(Contans.BASE_URL_AI_3D_SERVER + Contans.INFO_STATISTICS_V1, RequestMethod.GET); + 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); + request.setHostnameVerifier(new HostnameVerifier() { + @Override + public boolean verify(String s, SSLSession sslSession) { + return true; + } + }); + } + } - NoProgresshttpUtils.getInstance().add(0, request, new HttpListener() { + NohttpUtils.getInstance().addNoProgress(this,0, request, new HttpListener() { @Override public void onSucceed(int what, Response response) { diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryWorkerInfoGroup.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryWorkerInfoGroup.java index 695a80f..f81480a 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryWorkerInfoGroup.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryWorkerInfoGroup.java @@ -2,7 +2,6 @@ package com.rehome.zhdcoa.ui.activity; import android.graphics.drawable.Drawable; -import android.util.Log; import android.view.View; import com.rehome.zhdcoa.Contans; import com.rehome.zhdcoa.R; @@ -18,7 +17,7 @@ import android.widget.LinearLayout; import com.rehome.zhdcoa.bean.WorkerInfoGroupBean; import com.rehome.zhdcoa.utils.AuthenticationLoginAIUtils; import com.rehome.zhdcoa.utils.HttpListener; -import com.rehome.zhdcoa.utils.NoProgresshttpUtils; +import com.rehome.zhdcoa.utils.NohttpUtils; import com.rehome.zhdcoa.utils.OnAuthenticationLoginListener; import com.rehome.zhdcoa.utils.RSAAndroid; import com.rehome.zhdcoa.weiget.ClearEditText; @@ -33,6 +32,10 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import static com.rehome.zhdcoa.utils.GsonUtils.GsonToBean; +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.SSLSession; +import javax.net.ssl.SSLSocketFactory; + /** * Create By HuangWenFei * 创建日期:2022-10-21 13:41 @@ -155,7 +158,20 @@ public class ActivityFactoryWorkerInfoGroup extends BaseActivity { showLog(type_name); - NoProgresshttpUtils.getInstance().add(0, request, new HttpListener() { + 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); + request.setHostnameVerifier(new HostnameVerifier() { + @Override + public boolean verify(String s, SSLSession sslSession) { + return true; + } + }); + } + } + + NohttpUtils.getInstance().addNoProgress(this,0, request, new HttpListener() { @Override public void onSucceed(int what, com.yolanda.nohttp.rest.Response response) { diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryWorkerInfoGroupMember.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryWorkerInfoGroupMember.java index 30856b7..2993174 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryWorkerInfoGroupMember.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryWorkerInfoGroupMember.java @@ -2,7 +2,6 @@ package com.rehome.zhdcoa.ui.activity; import android.graphics.drawable.Drawable; -import android.util.Log; import android.view.View; import com.rehome.zhdcoa.Contans; import com.rehome.zhdcoa.R; @@ -18,7 +17,7 @@ import android.widget.LinearLayout; import com.rehome.zhdcoa.bean.WorkerInfoGroupMemberBean; import com.rehome.zhdcoa.utils.AuthenticationLoginAIUtils; import com.rehome.zhdcoa.utils.HttpListener; -import com.rehome.zhdcoa.utils.NoProgresshttpUtils; +import com.rehome.zhdcoa.utils.NohttpUtils; import com.rehome.zhdcoa.utils.OnAuthenticationLoginListener; import com.rehome.zhdcoa.utils.RSAAndroid; import com.rehome.zhdcoa.weiget.ClearEditText; @@ -33,6 +32,10 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import static com.rehome.zhdcoa.utils.GsonUtils.GsonToBean; +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.SSLSession; +import javax.net.ssl.SSLSocketFactory; + /** * Create By HuangWenFei * 创建日期:2022-10-21 15:23 @@ -154,7 +157,21 @@ public class ActivityFactoryWorkerInfoGroupMember extends BaseActivity { // Log.i("app", company); // Log.i("app", Contans.BASE_URL_AI_3D_SERVER + Contans.REGULAR_MAINTENANCE_STAFF); - NoProgresshttpUtils.getInstance().add(0, request, new HttpListener() { + + 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); + request.setHostnameVerifier(new HostnameVerifier() { + @Override + public boolean verify(String s, SSLSession sslSession) { + return true; + } + }); + } + } + + NohttpUtils.getInstance().addNoProgress(this,0, request, new HttpListener() { @Override public void onSucceed(int what, com.yolanda.nohttp.rest.Response response) { diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryWorkerInfoStatistics.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryWorkerInfoStatistics.java index 3b0a307..c169530 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryWorkerInfoStatistics.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityFactoryWorkerInfoStatistics.java @@ -2,14 +2,11 @@ package com.rehome.zhdcoa.ui.activity; -import android.graphics.Rect; import android.graphics.drawable.Drawable; -import android.util.Log; import android.view.View; import com.rehome.zhdcoa.Contans; import com.rehome.zhdcoa.R; -import com.rehome.zhdcoa.adapter.FactoryMemberStatisticsAdapter; import com.rehome.zhdcoa.adapter.FactoryWorkerInfoStatisticsAdapter; import com.rehome.zhdcoa.base.BaseActivity; import java.util.ArrayList; @@ -22,7 +19,7 @@ import android.widget.LinearLayout; import com.rehome.zhdcoa.bean.WorkerInfoStatisticsListBean; import com.rehome.zhdcoa.utils.AuthenticationLoginAIUtils; import com.rehome.zhdcoa.utils.HttpListener; -import com.rehome.zhdcoa.utils.NoProgresshttpUtils; +import com.rehome.zhdcoa.utils.NohttpUtils; import com.rehome.zhdcoa.utils.OnAuthenticationLoginListener; import com.rehome.zhdcoa.utils.RSAAndroid; import com.rehome.zhdcoa.weiget.ClearEditText; @@ -37,6 +34,10 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import static com.rehome.zhdcoa.utils.GsonUtils.GsonToBean; +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.SSLSession; +import javax.net.ssl.SSLSocketFactory; + /** * 厂内人员信息统计 */ @@ -148,7 +149,19 @@ public class ActivityFactoryWorkerInfoStatistics extends BaseActivity { Request request = NoHttp.createStringRequest(Contans.BASE_URL_AI_3D_SERVER + Contans.PLANT_PERSONNEL_LIST, RequestMethod.GET); request.add("type_name", type_name); - NoProgresshttpUtils.getInstance().add(0, request, new HttpListener() { + 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); + request.setHostnameVerifier(new HostnameVerifier() { + @Override + public boolean verify(String s, SSLSession sslSession) { + return true; + } + }); + } + } + NohttpUtils.getInstance().addNoProgress(this,0, request, new HttpListener() { @Override public void onSucceed(int what, com.yolanda.nohttp.rest.Response response) { diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityPracticeScoreDetail.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityPracticeScoreDetail.java index 867600b..678650a 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityPracticeScoreDetail.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ActivityPracticeScoreDetail.java @@ -14,8 +14,7 @@ import com.rehome.zhdcoa.base.BaseActivity; import com.rehome.zhdcoa.bean.PracticeHistoryBean; import com.rehome.zhdcoa.bean.PracticeScoreBean; import com.rehome.zhdcoa.utils.HttpListener; -import com.rehome.zhdcoa.utils.NoProgresshttpUtils; -import com.rehome.zhdcoa.utils.SPUtils; +import com.rehome.zhdcoa.utils.NohttpUtils; import com.yolanda.nohttp.NoHttp; import com.yolanda.nohttp.RequestMethod; import com.yolanda.nohttp.rest.Request; @@ -92,7 +91,7 @@ public class ActivityPracticeScoreDetail extends BaseActivity { String url = Contans.BASE_URL + Contans.GETEXERCISESCORE_URL + item.getId() + "&sjid=" +item.getSjid() + "&exercisemanageno=" + item.getExercisemanageno(); Log.i("app", url); Request request = NoHttp.createStringRequest(url, RequestMethod.GET); - NoProgresshttpUtils.getInstance().add(0, request, new HttpListener() { + NohttpUtils.getInstance().addNoProgress(this,0, request, new HttpListener() { @Override public void onSucceed(int what, com.yolanda.nohttp.rest.Response response) { diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/Activity_PracticeHistory.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/Activity_PracticeHistory.java index 0c11145..233a329 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/Activity_PracticeHistory.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/Activity_PracticeHistory.java @@ -16,8 +16,7 @@ import com.rehome.zhdcoa.adapter.PracticeHistoryAdapter; import com.rehome.zhdcoa.base.BaseActivity; import com.rehome.zhdcoa.bean.PracticeHistoryBean; import com.rehome.zhdcoa.utils.HttpListener; -import com.rehome.zhdcoa.utils.NoProgresshttpUtils; -import com.rehome.zhdcoa.utils.SPUtils; +import com.rehome.zhdcoa.utils.NohttpUtils; import com.rehome.zhdcoa.weiget.DateTimePickDialog; import com.yolanda.nohttp.NoHttp; import com.yolanda.nohttp.RequestMethod; @@ -123,7 +122,7 @@ public class Activity_PracticeHistory extends BaseActivity { String url = Contans.BASE_URL + Contans.GETEXERCISERECORD_URL + username+"×="+tvSt.getText().toString().trim()+"&timee="+tvEt.getText().toString().trim(); Log.i("app",url); Request request = NoHttp.createStringRequest(url, RequestMethod.GET); - NoProgresshttpUtils.getInstance().add(0, request, new HttpListener() { + NohttpUtils.getInstance().addNoProgress(this,0, request, new HttpListener() { @Override public void onSucceed(int what, com.yolanda.nohttp.rest.Response response) { diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/Activity_PracticeOnline.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/Activity_PracticeOnline.java index ee9d8d7..e4c8929 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/Activity_PracticeOnline.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/Activity_PracticeOnline.java @@ -23,7 +23,6 @@ import com.rehome.zhdcoa.bean.SendanswerBean; import com.rehome.zhdcoa.ui.fragment.Fragment_PracticeInfo; import com.rehome.zhdcoa.utils.GsonUtils; import com.rehome.zhdcoa.utils.HttpListener; -import com.rehome.zhdcoa.utils.NoProgresshttpUtils; import com.rehome.zhdcoa.utils.NohttpUtils; import com.rehome.zhdcoa.weiget.AuditDialog; import com.rehome.zhdcoa.weiget.AutoRadioGroup; @@ -430,7 +429,7 @@ public class Activity_PracticeOnline extends BaseActivity { String json = GsonUtils.GsonString(map); request.setDefineRequestBodyForJson(json); - NoProgresshttpUtils.getInstance().add(0, request, new HttpListener() { + NohttpUtils.getInstance().addNoProgress(this,0, request, new HttpListener() { @Override public void onSucceed(int what, com.yolanda.nohttp.rest.Response response) { diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/Activity_ProduceStudyHistory.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/Activity_ProduceStudyHistory.java index a1b07bc..d6f6308 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/Activity_ProduceStudyHistory.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/Activity_ProduceStudyHistory.java @@ -12,8 +12,7 @@ import com.rehome.zhdcoa.adapter.ProduceStudyAdapter; import com.rehome.zhdcoa.base.BaseActivity; import com.rehome.zhdcoa.bean.ProduceStudyBean; import com.rehome.zhdcoa.utils.HttpListener; -import com.rehome.zhdcoa.utils.NoProgresshttpUtils; -import com.rehome.zhdcoa.utils.SPUtils; +import com.rehome.zhdcoa.utils.NohttpUtils; import com.rehome.zhdcoa.weiget.DateTimePickDialog; import com.yolanda.nohttp.NoHttp; import com.yolanda.nohttp.RequestMethod; @@ -112,7 +111,7 @@ public class Activity_ProduceStudyHistory extends BaseActivity { String url = Contans.BASE_URL + Contans.GETPRODUCESTUDYDATA_URL + username+"×="+tvSt.getText().toString().trim()+"&timee="+tvEt.getText().toString().trim(); Log.i("app",url); Request request = NoHttp.createStringRequest(url, RequestMethod.GET); - NoProgresshttpUtils.getInstance().add(0, request, new HttpListener() { + NohttpUtils.getInstance().addNoProgress(this,0, request, new HttpListener() { @Override public void onSucceed(int what, com.yolanda.nohttp.rest.Response response) { diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/AddDagerEnterApplyActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/AddDagerEnterApplyActivity.kt index d9e210e..243a859 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/AddDagerEnterApplyActivity.kt +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/AddDagerEnterApplyActivity.kt @@ -23,7 +23,6 @@ import com.rehome.zhdcoa.databinding.ActivityAddDagerEnterApplyBinding import com.rehome.zhdcoa.utils.GsonUtils import com.rehome.zhdcoa.utils.HttpListener import com.rehome.zhdcoa.utils.HttpUtils -import com.rehome.zhdcoa.utils.NoProgresshttpUtils import com.rehome.zhdcoa.utils.NohttpUtils import com.rehome.zhdcoa.weiget.AuditDialog import com.rehome.zhdcoa.weiget.DateTimeMinutePickDialog @@ -344,7 +343,7 @@ class AddDagerEnterApplyActivity : val url: String = Contans.BASE_URL + Contans.DAGER_ENTER_APPLY_DELETE_ITEM_LIST_URL val request = NoHttp.createStringRequest(url, RequestMethod.POST) request.setDefineRequestBodyForJson(Gson().toJson(map)) - NoProgresshttpUtils.getInstance().add(0, request, object : HttpListener { + NohttpUtils.getInstance().addNoProgress(this,0, request, object : HttpListener { override fun onSucceed(what: Int, response: Response?) { val result = response?.get() showLog(result) @@ -369,7 +368,7 @@ class AddDagerEnterApplyActivity : val url: String = Contans.BASE_URL + Contans.DAGER_ENTER_APPLY_CHANGE_ITEM_LIST_URL val request = NoHttp.createStringRequest(url, RequestMethod.POST) request.setDefineRequestBodyForJson(Gson().toJson(item)) - NoProgresshttpUtils.getInstance().add(0, request, object : HttpListener { + NohttpUtils.getInstance().addNoProgress(this,0, request, object : HttpListener { override fun onSucceed(what: Int, response: Response?) { val result = response?.get() showLog(result) @@ -395,7 +394,7 @@ class AddDagerEnterApplyActivity : val request = NoHttp.createStringRequest(url, RequestMethod.POST) item.mainid = id request.setDefineRequestBodyForJson(Gson().toJson(item)) - NoProgresshttpUtils.getInstance().add(0, request, object : HttpListener { + NohttpUtils.getInstance().addNoProgress(this,0, request, object : HttpListener { override fun onSucceed(what: Int, response: Response?) { val result = response?.get() showLog(result) diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/DjdscFragment.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DjdscFragment.java index 4bfdcdd..a151a69 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/DjdscFragment.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/DjdscFragment.java @@ -385,6 +385,15 @@ public class DjdscFragment extends BaseFragment { //计划 Request request = NoHttp.createStringRequest(Contans.IP + Contans.DJJHSC, 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()); +// 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, true, false, "上传中..."); @@ -399,6 +408,14 @@ public class DjdscFragment extends BaseFragment { System.out.println(qxgdjson); qxgdjson = new String(qxgdjson.getBytes(), StandardCharsets.UTF_8); request1.setDefineRequestBodyForJson(UiUtlis.encoder(qxgdjson)); + 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(request.url()); +// showLog(credential); +// showLog(new Gson().toJson(request.headers())); + } queue.add(1, request1, new HttpResponseListener<>(getActivity(), request1, callback, false, false, "")); //NohttpUtils.getInstance().add(getActivity(), 1, request1, callback, true, false, "上传中..."); } @@ -411,6 +428,14 @@ public class DjdscFragment extends BaseFragment { "&jhid=" + UiUtlis.encoder(info.getJhid()) + "&pointnum=" + UiUtlis.encoder(info.getPointnum()) + "&djr=" + UiUtlis.encoder(info.getDjr()), RequestMethod.POST); xcjs.add(Contans.FILEPS, new FileBinary(new File(info.getFilename()))); + 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(request.url()); +// showLog(credential); +// showLog(new Gson().toJson(request.headers())); + } queue.add(2, xcjs, new HttpResponseListener<>(getActivity(), xcjs, callback, false, false, "")); //NohttpUtils.getInstance().add(getActivity(), 2, xcjs, callback, true, false, "上传中..."); diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ExamInfoDetailActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ExamInfoDetailActivity.kt index ac391b8..e582a95 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/ExamInfoDetailActivity.kt +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/ExamInfoDetailActivity.kt @@ -282,7 +282,7 @@ class ExamInfoDetailActivity : BaseActivityOaToolbarViewBinding { override fun onSucceed(what: Int, response: Response?) { Log.i("app", "----------------") @@ -308,7 +308,7 @@ class ExamInfoDetailActivity : BaseActivityOaToolbarViewBinding?) { } - }) + },false,true,"正在生成题库...") } //修改试卷为已开卷状态 @@ -319,7 +319,7 @@ class ExamInfoDetailActivity : BaseActivityOaToolbarViewBinding { + NohttpUtils.getInstance().addNoProgress(this,0, request, object : HttpListener { override fun onSucceed(what: Int, response: Response?) { Log.i("app", "----------------") @@ -346,7 +346,7 @@ class ExamInfoDetailActivity : BaseActivityOaToolbarViewBinding { + NohttpUtils.getInstance().addNoProgress(this,0, request, object : HttpListener { override fun onSucceed(what: Int, response: Response?) { Log.i("app", "----------------") 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 1fb80d1..b2d61be 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 @@ -41,6 +41,7 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() { override fun getToolbar() = binding.toolbarView.toolbar override fun initView() { + StatusBarUtil.transparencyBar(this) val wifi = SPUtils.get(context, Contans.YX_WIFI_IP, "") as String val mob = SPUtils.get(context, Contans.YX_4G_IP, "") as String @@ -51,9 +52,9 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() { SPUtils.put(this, Contans.XZ_WIFI_IP, Contans.BASE_URL_INTRANET) //行政IP内网 } val saveUserAndPassword = SPUtils.get( - context, - Contans.SP.SAVE_USER_AND_PASSWORD, - java.lang.Boolean.TRUE + context, + Contans.SP.SAVE_USER_AND_PASSWORD, + java.lang.Boolean.TRUE ) as Boolean binding.swRememberPwd.isChecked = saveUserAndPassword @@ -73,18 +74,18 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() { Contans.IP = Contans.IP_INTRANET //运行IP内网 Contans.BASE_URL = Contans.BASE_URL_INTRANET //行政IP内网 Contans.BASE_URL_COMPANY_SERVER = - Contans.BASE_URL_COMPANY_SERVER_INTRANET //智慧安防平台登录 电厂内网 + Contans.BASE_URL_COMPANY_SERVER_INTRANET //智慧安防平台登录 电厂内网 Contans.BASE_URL_AI_3D_SERVER = - Contans.BASE_URL_AI_3D_SERVER_INTRANET //AI三维可视化安防平台登录 电厂外网 + Contans.BASE_URL_AI_3D_SERVER_INTRANET //AI三维可视化安防平台登录 电厂外网 } if (networkCheckType == "外网") { binding.rg.check(R.id.rb2) Contans.IP = Contans.IP_EXTRANET //运行IP外网 Contans.BASE_URL = Contans.BASE_URL_EXTRANET //行政IP外网 Contans.BASE_URL_COMPANY_SERVER = - Contans.BASE_URL_COMPANY_SERVER_EXTRANET //智慧安防平台登录 电厂外网 + Contans.BASE_URL_COMPANY_SERVER_EXTRANET //智慧安防平台登录 电厂外网 Contans.BASE_URL_AI_3D_SERVER = - Contans.BASE_URL_AI_3D_SERVER_EXTRANET //AI三维可视化安防平台登录 电厂外网 + Contans.BASE_URL_AI_3D_SERVER_EXTRANET //AI三维可视化安防平台登录 电厂外网 } } else { binding.rg.check(R.id.rb2) @@ -92,9 +93,9 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() { Contans.IP = Contans.IP_EXTRANET //运行IP外网 Contans.BASE_URL = Contans.BASE_URL_EXTRANET //行政IP外网 Contans.BASE_URL_COMPANY_SERVER = - Contans.BASE_URL_COMPANY_SERVER_EXTRANET //智慧安防平台登录 电厂外网 + Contans.BASE_URL_COMPANY_SERVER_EXTRANET //智慧安防平台登录 电厂外网 Contans.BASE_URL_AI_3D_SERVER = - Contans.BASE_URL_AI_3D_SERVER_EXTRANET //AI三维可视化安防平台登录 电厂外网 + Contans.BASE_URL_AI_3D_SERVER_EXTRANET //AI三维可视化安防平台登录 电厂外网 } binding.rg.setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener { _, checkedId -> @@ -104,9 +105,9 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() { Contans.IP = Contans.IP_INTRANET //运行IP内网 Contans.BASE_URL = Contans.BASE_URL_INTRANET //行政IP内网 Contans.BASE_URL_COMPANY_SERVER = - Contans.BASE_URL_COMPANY_SERVER_INTRANET //智慧安防平台登录 电厂内网 + Contans.BASE_URL_COMPANY_SERVER_INTRANET //智慧安防平台登录 电厂内网 Contans.BASE_URL_AI_3D_SERVER = - Contans.BASE_URL_AI_3D_SERVER_INTRANET //AI三维可视化安防平台登录 电厂外网 + Contans.BASE_URL_AI_3D_SERVER_INTRANET //AI三维可视化安防平台登录 电厂外网 } R.id.rb2 -> { @@ -114,9 +115,9 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() { Contans.IP = Contans.IP_EXTRANET //运行IP外网 Contans.BASE_URL = Contans.BASE_URL_EXTRANET //行政IP外网 Contans.BASE_URL_COMPANY_SERVER = - Contans.BASE_URL_COMPANY_SERVER_EXTRANET //智慧安防平台登录 电厂外网 + Contans.BASE_URL_COMPANY_SERVER_EXTRANET //智慧安防平台登录 电厂外网 Contans.BASE_URL_AI_3D_SERVER = - Contans.BASE_URL_AI_3D_SERVER_EXTRANET //AI三维可视化安防平台登录 电厂外网 + Contans.BASE_URL_AI_3D_SERVER_EXTRANET //AI三维可视化安防平台登录 电厂外网 } } }) @@ -127,12 +128,12 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() { override fun initData() { binding.tvVersionCode.text = getString(R.string.version_code) + getVersionName() AndPermission.with(this).runtime().permission( - Permission.READ_PHONE_STATE, - Permission.READ_EXTERNAL_STORAGE, - Permission.WRITE_EXTERNAL_STORAGE, - Permission.CAMERA + Permission.READ_PHONE_STATE, + Permission.READ_EXTERNAL_STORAGE, + Permission.WRITE_EXTERNAL_STORAGE, + Permission.CAMERA ).onGranted { }.onDenied { } - .start() + .start() val UserIDTemp = SPUtils.get(context, Contans.SP.USER_NAME, "") as String val UserPwdTemp = SPUtils.get(context, Contans.SP.PASS_WORD, "") as String @@ -150,27 +151,28 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() { if (BuildConfig.LOG_ERROR) { // 管理员 - binding.etUsername.setText("ZHPS_Admin") - binding.etPassword.setText("Rehome.zhps@2020") +// 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("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("310261") +// binding.etPassword.setText("#LIgeng770731") //古舒敏 // binding.etUsername.setText("310585") // binding.etPassword.setText("Lama520+_*") @@ -196,8 +198,8 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() { binding.textWjmm.setOnClickListener(View.OnClickListener { val intent = Intent( - this, - WjmmGetVerificationCodeActivity::class.java + this, + WjmmGetVerificationCodeActivity::class.java ) startActivity(intent) }) @@ -227,78 +229,102 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() { } private fun PackageManager.getPackageInfoCompat( - packageName: String, - flags: Int = 0 + packageName: String, + flags: Int = 0 ): PackageInfo = - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { - getPackageInfo(packageName, PackageManager.PackageInfoFlags.of(flags.toLong())) - } else { - @Suppress("DEPRECATION") getPackageInfo(packageName, flags) - } + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + getPackageInfo(packageName, PackageManager.PackageInfoFlags.of(flags.toLong())) + } else { + @Suppress("DEPRECATION") getPackageInfo(packageName, flags) + } private fun appLogin() { val json: String = getPhoneInfo() - val url = Contans.BASE_URL + Contans.APPLOGIN + //val json: String = "Ms97MbjVaypr+CF04BTQ+Y7hbYp+orLZbXM2u+I+PZKSPSSaqR1dcuM3tsig3UpJ7s2qEw5DsJcVd0t4eJM79ABUFWW/0Nplhx37+6jR2YVaSJgA30L0O2FbuyG7SOjP0qfISNaN1L8eC3a7W5oFPpHxkZdxUf5sxJIQHA2c6lCI+Mo/BUgU1MgTIjM3puiWx99mvxOyl9k2oLZUjcjMOygzNUYYD21SQYQ6dtvdVz3iAtqeJ+0EVCtScPXePG/CH/s0Ti/VS54/KSrlRVfdn5s2pHqw5fd2BZX+ZGtIWTGpWb+Wt1ZtrPXPdv/r1Zx84Zcw0EqKicieeuYpfUH+eg=="; + + val url = Contans.BASE_URL + Contans.APPLOGINRSA val request = NoHttp.createStringRequest(url, RequestMethod.POST) request.setDefineRequestBodyForJson(json) NohttpUtils.getInstance().add(this, 0, request, object : HttpListener { override fun onSucceed(what: Int, response: Response?) { val jsonResult = response?.get() - //Log.i("app", jsonResult ?: "null"); - val bean: UserInfoBean? = GsonUtils.GsonToBean(jsonResult, UserInfoBean::class.java) - if (bean != null) { - val userInfo = bean.rows[0] - - if (userInfo.statusMsg == "success") { //登录成功 - MiPushClient.setAlias(context, binding.etUsername.text.toString(), null) - SPUtils.put( - context, - Contans.SP.OLD_PWD, - RSAUtils.encryptBASE64StrLocal(binding.etPassword.text.toString()) - ) - if (binding.swRememberPwd.isChecked) { - SPUtils.put( + //val jsonResult = "DkILG4j4BV1qx0wCwhxCgNvjs3Yob6hXsnfKN75UHAcL3sWRm7hOxWzonSLO74c8FMo+DeaIkSD8w+rNFD6Wg1pU3YqbvKhTYOFc73JPsKxO6YF44M6GWQVABb6mYhxYqZDms6cKdvnYdt7P4CT2p4EncXWXfP5f87M2SF9ZFIirr7S3++OrFSSa04x/C5POuCQNyn28HDHZzDaQ7w1kN4Y2EWPok48i09aKcgSic/1ZLTOvAPo0IoF6ahfNh/lRxtnp5HWcpR6+SdxHPnrKkw26t416RKDAxtQB3EHFHJwzA9ZYXFCg9ADrDSDukMudRpFHquf7JbC1vaMSQWxBzg==" + + +// showLog("-----login------") +// showLog(jsonResult) + + val jsonDecode = RSAUtils.decryptBASE64StrClient(jsonResult) + if (TextUtils.isEmpty(jsonDecode)) { + showToast(UiUtlis.getString(context, R.string.data_error)) + } else { + val bean: UserInfoBean? = + GsonUtils.GsonToBean(jsonDecode, UserInfoBean::class.java) + //showLog(jsonDecode); + + if (bean != null) { + val userInfo = bean.rows[0] + + if (userInfo.statusMsg == "success") { //登录成功 + val usernameLogin: String = binding.etUsername.text.toString().trim() + if (userInfo.manid != null && usernameLogin != null && userInfo.manid.equals( + usernameLogin + ) + ) { + MiPushClient.setAlias( context, - Contans.SP.USER_NAME, - RSAUtils.encryptBASE64StrLocal(binding.etUsername.text.toString()) - ) - SPUtils.put( + binding.etUsername.text.toString(), + null + ) + SPUtils.put( context, - Contans.SP.PASS_WORD, + Contans.SP.OLD_PWD, RSAUtils.encryptBASE64StrLocal(binding.etPassword.text.toString()) - ) - val strEncryptMqtt = RSAUtils.encryptBASE64StrMqtt(getPhoneInfoMqtt()); - SPUtils.put(context, Contans.SP.PHONE_INFO, strEncryptMqtt) - SPUtils.put( + ) + if (binding.swRememberPwd.isChecked) { + SPUtils.put( + context, + Contans.SP.USER_NAME, + RSAUtils.encryptBASE64StrLocal(binding.etUsername.text.toString()) + ) + SPUtils.put( + context, + Contans.SP.PASS_WORD, + RSAUtils.encryptBASE64StrLocal(binding.etPassword.text.toString()) + ) + val strEncryptMqtt = + RSAUtils.encryptBASE64StrMqtt(getPhoneInfoMqtt()); + SPUtils.put(context, Contans.SP.PHONE_INFO, strEncryptMqtt) + SPUtils.put( + context, + Contans.SP.AF_PASS_WORD, + RSAUtils.encryptBASE64StrLocal(binding.etPassword.text.toString()) + ) + } else { + SPUtils.put(context, Contans.SP.USER_NAME, "") + SPUtils.put(context, Contans.SP.PASS_WORD, "") + } + SPUtils.put( context, - Contans.SP.AF_PASS_WORD, - RSAUtils.encryptBASE64StrLocal(binding.etPassword.text.toString()) - ) - } else { - SPUtils.put(context, Contans.SP.USER_NAME, "") - SPUtils.put(context, Contans.SP.PASS_WORD, "") - } - SPUtils.put( - context, - Contans.BZBH, - if (userInfo.bzbh == null) "" else userInfo.bzbh - ) - SPUtils.put( - context, - Contans.BZMC, - if (userInfo.bzmc == null) "" else userInfo.bzmc - ) - SPUtils.put( - context, - Contans.SCBZBH, - if (userInfo.scbzbh == null) "" else userInfo.scbzbh - ) - SPUtils.put( - context, - Contans.ISSCBM, - if (userInfo.isScBm == null) "" else userInfo.isScBm - ) + Contans.BZBH, + if (userInfo.bzbh == null) "" else userInfo.bzbh + ) + SPUtils.put( + context, + Contans.BZMC, + if (userInfo.bzmc == null) "" else userInfo.bzmc + ) + SPUtils.put( + context, + Contans.SCBZBH, + if (userInfo.scbzbh == null) "" else userInfo.scbzbh + ) + SPUtils.put( + context, + Contans.ISSCBM, + if (userInfo.isScBm == null) "" else userInfo.isScBm + ) // if (userInfo.isScBm == null) { // Log.i("app", "userInfo.isScBm is null") // } else { @@ -308,26 +334,32 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() { // Log.i("app", "当前登录用户不是生产部门") // } // } - Contans.PERMISSIONSRESULT = userInfo.permissionsResult - SPUtils.put( + Contans.PERMISSIONSRESULT = userInfo.permissionsResult + SPUtils.put( + context, + Contans.PERMISSIONSRESULT, + if (userInfo.permissionsResult == null) "" else userInfo.permissionsResult + ) + App.getInstance().userInfo = userInfo + val intent = Intent(context, MainActivity::class.java) + //Intent intent = new Intent(LoginActivityJava.this, UploadVideoTestActiviy.class); + intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP) + startActivity(intent) + finish() + } + } else { + Log.i("login", userInfo.statusMsg) + toastviewbymyself.makeText( context, - Contans.PERMISSIONSRESULT, - if (userInfo.permissionsResult == null) "" else userInfo.permissionsResult - ) - App.getInstance().userInfo = userInfo - val intent = Intent(context, MainActivity::class.java) - //Intent intent = new Intent(LoginActivityJava.this, UploadVideoTestActiviy.class); - intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP) - startActivity(intent) - finish() - } else { - Log.i("login", userInfo.statusMsg) - toastviewbymyself.makeText(context, userInfo.statusMsg, Toast.LENGTH_LONG) + userInfo.statusMsg, + Toast.LENGTH_LONG + ) .show() + } + } else { + showToast("服务器请求失败") + Log.i("app", "to gson is null") } - } else { - showToast("服务器请求失败") - Log.i("app", "to gson is null") } } @@ -350,28 +382,33 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() { userInfo.phonemodel = model userInfo.phonenum = "" //不加密 -// userInfo.username = binding.etUsername.text.toString().trim() -// userInfo.password = binding.etPassword.text.toString().trim() - - var usernameStr = binding.etUsername.text.toString(); - var pwdStr = binding.etPassword.text.toString() - var usernameEncryp = RSAUtils.encryptBASE64Str(usernameStr) - var pwdEncryp = RSAUtils.encryptBASE64Str(pwdStr) + userInfo.username = binding.etUsername.text.toString().trim() + userInfo.password = binding.etPassword.text.toString().trim() - userInfo.type = "1" - userInfo.username = usernameEncryp - userInfo.password = pwdEncryp +// var usernameStr = binding.etUsername.text.toString(); +// var pwdStr = binding.etPassword.text.toString() +// var usernameEncryp = RSAUtils.encryptBASE64Str(usernameStr) +// var pwdEncryp = RSAUtils.encryptBASE64Str(pwdStr) +// +// userInfo.type = "1" +// userInfo.username = usernameEncryp +// userInfo.password = pwdEncryp list.add(userInfo) info.rows = list val json = Gson().toJson(info) -// Log.i("app", json) + val jsonEncrypt = RSAUtils.encryptBASE64Str(json) // Log.i("app", usernameEncryp) // Log.i("app", pwdEncryp) // Log.i("app", usernameStr) // Log.i("app", pwdStr) - return json +// return json + +// showLog(json.length.toString()); +// showLog(json); +// showLog(jsonEncrypt); + return jsonEncrypt } fun getPhoneInfoMqtt(): String { @@ -404,4 +441,7 @@ class LoginActivity : BaseActivityOaToolbarViewBinding() { // 退出JVM(java虚拟机),释放所占内存资源,0表示正常退出(非0的都为异常退出) System.exit(0) } -} \ No newline at end of file + +} + + diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/MainActivity.kt b/app/src/main/java/com/rehome/zhdcoa/ui/activity/MainActivity.kt index 8c1f222..1c10a2b 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/MainActivity.kt +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/MainActivity.kt @@ -203,7 +203,7 @@ class MainActivity : BaseActivityOaToolbarViewBinding() { //获取我的条数显示 val url = Contans.BASE_URL + Contans.GETABOUTME_URL + App.getInstance().userInfo.manid val request = NoHttp.createStringRequest(url, RequestMethod.GET) - NoProgresshttpUtils.getInstance().add(0, request, object : HttpListener { + NohttpUtils.getInstance().addNoProgress(this,0, request, object : HttpListener { override fun onSucceed(what: Int, response: Response?) { Log.i("app", "----------------") val jsonResult = response?.get() @@ -361,9 +361,11 @@ class MainActivity : BaseActivityOaToolbarViewBinding() { private fun checkUpdateApk() { val url = Contans.BASE_URL + Contans.GETCHECKUPDATAAPK_URL val request = NoHttp.createStringRequest(url, RequestMethod.GET) - NoProgresshttpUtils.getInstance().add(0, request, object : HttpListener { + NohttpUtils.getInstance().addNoProgress(this,0, request, object : HttpListener { override fun onSucceed(what: Int, response: Response?) { val jsonResult = response?.get() + showLog("----------------->") + showLog(jsonResult) if (jsonResult != null) { val apkUpdateBean = GsonUtils.GsonToBean( jsonResult, diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/activity/XzjhFragment.java b/app/src/main/java/com/rehome/zhdcoa/ui/activity/XzjhFragment.java index 24e38bb..89ad572 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/activity/XzjhFragment.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/activity/XzjhFragment.java @@ -9,6 +9,8 @@ import android.widget.CheckBox; import android.widget.ListView; import android.widget.TextView; import androidx.appcompat.app.AlertDialog; + +import com.rehome.zhdcoa.App; import com.rehome.zhdcoa.Contans; import com.rehome.zhdcoa.DBModel.Ajhjh; import com.rehome.zhdcoa.DBModel.AjhjhxzrwList; @@ -222,8 +224,28 @@ public class XzjhFragment extends BaseFragment { dialog.show(); Request request = NoHttp.createStringRequest(Contans.IP + Contans.DJJHLIST); request.add("BZMC", UiUtlis.encoder((String) SPUtils.get(context, Contans.BZBH, "12108080101"))); + + 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, "")); Request request1 = NoHttp.createStringRequest(Contans.IP + Contans.QXGDZY); + + 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(request.url()); +// showLog(credential); +// showLog(new Gson().toJson(request.headers())); + } + queue.add(9, request1, new HttpResponseListener<>(getActivity(), request1, callback, false, false, "")); } @@ -232,6 +254,16 @@ public class XzjhFragment extends BaseFragment { selectCount++; Request request = NoHttp.createStringRequest(Contans.IP + Contans.DJJHDLB); 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, "")); List ajhjhs = DataSupport.where("djjhid = ? and download = ?", jhid, "0").find(Ajhjh.class); @@ -239,6 +271,14 @@ public class XzjhFragment extends BaseFragment { selectCount++; Request request1 = NoHttp.createStringRequest(Contans.IP + Contans.AJHXZRW); request1.add("jhid", UiUtlis.encoder(ajhjhs.get(0).getJHID())); + 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(request.url()); +// showLog(credential); +// showLog(new Gson().toJson(request.headers())); + } queue.add(2, request1, new HttpResponseListener<>(getActivity(), request1, callback, false, false, "")); } } diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/ContactFragment.java b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/ContactFragment.java index 93ecf96..fa13683 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/ContactFragment.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/ContactFragment.java @@ -15,6 +15,7 @@ import com.google.gson.Gson; import com.rehome.zhdcoa.R; import com.rehome.zhdcoa.adapter.ContactAdapter; import com.rehome.zhdcoa.base.BaseCallBack; +import com.rehome.zhdcoa.base.BaseCallBackNoProgress; import com.rehome.zhdcoa.base.BaseFragment; import com.rehome.zhdcoa.bean.ContactListBean; import com.rehome.zhdcoa.ui.toastview.toastviewbymyself; @@ -113,12 +114,12 @@ public class ContactFragment extends BaseFragment { public void getData() { - HttpUtils.getApi().getContactList().enqueue(new BaseCallBack(getContext()) { + HttpUtils.getApi().getContactList().enqueue(new BaseCallBackNoProgress(getContext()) { @Override public void onSuccess(Call call, Response response) { ContactListBean bean = response.body(); - showLog(new Gson().toJson(bean)); + //showLog(new Gson().toJson(bean)); if (bean != null) { datas.clear(); initDatas.clear(); diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/HomeFragment.java b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/HomeFragment.java index af04299..9242435 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/HomeFragment.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/HomeFragment.java @@ -71,7 +71,7 @@ import com.rehome.zhdcoa.utils.GsonUtils; import com.rehome.zhdcoa.utils.HttpListener; import com.rehome.zhdcoa.utils.HttpUtils; import com.rehome.zhdcoa.utils.ModuleDatas; -import com.rehome.zhdcoa.utils.NoProgresshttpUtils; +import com.rehome.zhdcoa.utils.NohttpUtils; import com.rehome.zhdcoa.weiget.AutoGridView; import com.rehome.zhdcoa.weiget.GridViewDialog; import com.xuexiang.xui.widget.layout.XUILinearLayout; @@ -192,7 +192,7 @@ public class HomeFragment extends BaseFragment { //获取我的条数显示 String url = Contans.BASE_URL + Contans.GETABOUTMELIST_URL + App.getInstance().getUserInfo().getManid() + "&aboutme=3"; Request request = NoHttp.createStringRequest(url, RequestMethod.GET); - NoProgresshttpUtils.getInstance().add(0, request, new HttpListener() { + NohttpUtils.getInstance().addNoProgress(requireActivity(),0, request, new HttpListener() { @Override public void onSucceed(int what, com.yolanda.nohttp.rest.Response response) { Log.i("app", "----------------"); @@ -237,7 +237,7 @@ public class HomeFragment extends BaseFragment { } String url = Contans.BASE_URL + Contans.GETATTENDANCECHECK_URL + App.getInstance().getUserInfo().getManid() + "×=" + times + "&timee=" + timee; Request request = NoHttp.createStringRequest(url, RequestMethod.GET); - NoProgresshttpUtils.getInstance().add(0, request, new HttpListener() { + NohttpUtils.getInstance().addNoProgress(requireActivity(),0, request, new HttpListener() { @Override public void onSucceed(int what, com.yolanda.nohttp.rest.Response response) { Log.i("app", "----------------"); @@ -271,7 +271,7 @@ public class HomeFragment extends BaseFragment { @Override public void onStart() { super.onStart(); - Log.i("app", "onStart()"); + //Log.i("app", "onStart()"); initData(); } diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/PracticeFragment.kt b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/PracticeFragment.kt index ab82040..3843ced 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/PracticeFragment.kt +++ b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/PracticeFragment.kt @@ -16,7 +16,7 @@ import com.rehome.zhdcoa.ui.activity.Activity_PracticeHistory import com.rehome.zhdcoa.ui.activity.Activity_PracticeOnline import com.rehome.zhdcoa.utils.GsonUtils import com.rehome.zhdcoa.utils.HttpListener -import com.rehome.zhdcoa.utils.NoProgresshttpUtils +import com.rehome.zhdcoa.utils.NohttpUtils import com.rehome.zhdcoa.utils.SPUtils import com.rehome.zhdcoa.weiget.CommitDialog import com.rehome.zhdcoa.weiget.CommitDialog.CommitDialogListener @@ -84,7 +84,7 @@ class PracticeFragment: BaseViewBindingFragment() { val username = App.getInstance().userInfo.manid val url = Contans.BASE_URL + Contans.GETEXERCISELIST_URL + username val request = NoHttp.createStringRequest(url, RequestMethod.GET) - NoProgresshttpUtils.getInstance().add(0, request, object : HttpListener { + NohttpUtils.getInstance().addNoProgress(requireActivity(),0, request, object : HttpListener { override fun onSucceed(what: Int, response: Response?) { Log.i("app", "----------------") diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/ProduceFragment.kt b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/ProduceFragment.kt index 98d63c9..75bed35 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/ProduceFragment.kt +++ b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/ProduceFragment.kt @@ -19,7 +19,7 @@ import com.rehome.zhdcoa.ui.activity.Activity_ProduceStudyHistory import com.rehome.zhdcoa.ui.activity.ProduceStudyInfoMoreActivity import com.rehome.zhdcoa.utils.GsonUtils import com.rehome.zhdcoa.utils.HttpListener -import com.rehome.zhdcoa.utils.NoProgresshttpUtils +import com.rehome.zhdcoa.utils.NohttpUtils import com.rehome.zhdcoa.utils.SPUtils import com.yolanda.nohttp.NoHttp import com.yolanda.nohttp.RequestMethod @@ -103,7 +103,7 @@ class ProduceFragment : BaseViewBindingFragment() { val username = App.getInstance().userInfo.manid val url = Contans.BASE_URL + Contans.PRODUCE_STUDY_DATA_URL + username val request = NoHttp.createStringRequest(url, RequestMethod.GET) - NoProgresshttpUtils.getInstance().add(0, request, object : HttpListener { + NohttpUtils.getInstance().addNoProgress(requireActivity(),0, request, object : HttpListener { override fun onSucceed(what: Int, response: Response?) { Log.i("app", "----------------") diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YjyaCFragment.java b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YjyaCFragment.java index b9c60b2..d0f8fbf 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YjyaCFragment.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YjyaCFragment.java @@ -26,10 +26,12 @@ import com.rehome.zhdcoa.utils.HttpUtils; import com.rehome.zhdcoa.utils.OnAuthenticationLoginListener; import com.rehome.zhdcoa.utils.RSAUtils; import com.rehome.zhdcoa.utils.SPUtils; + import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.List; + import retrofit2.Call; import retrofit2.Response; @@ -64,6 +66,8 @@ public class YjyaCFragment extends BaseFragment { String passwordTemp = (String) SPUtils.get(context, Contans.SP.AF_PASS_WORD, String.valueOf("")); if (!TextUtils.isEmpty(passwordTemp)) { password = RSAUtils.decryptBASE64StrLocal(passwordTemp); + showLog("Contans.SP.AF_PASS_WORD"); + showLog(password); } } @@ -76,24 +80,25 @@ public class YjyaCFragment extends BaseFragment { long expires = (Long) SPUtils.get(getActivity(), Contans.AUTHENTICATIONLOGINNEXTDATE, Long.valueOf(0)); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(expires); - Log.i("expires", format.format(calendar.getTime())); + showLog("expires" + format.format(calendar.getTime())); + if (expires != 0) { String time = format.format(calendar.getTime()); - Log.i("完整的时间和日期: ", time); + showLog("完整的时间和日期: " + time); Calendar calendarNow = Calendar.getInstance(); String timeNow = format.format(calendarNow.getTime()); - Log.i("完整的时间和日期now: ", timeNow); + showLog("完整的时间和日期now: " + timeNow); //a比c早,返回-1, //a与c相同,返回0 //a比c晚,返回1 if (calendar.compareTo(calendarNow) > 0) { //token有效 - Log.i("完整的时间和日期: ", "token有效"); + showLog("完整的时间和日期: " + "token有效"); String token = (String) SPUtils.get(context, Contans.AUTHENTICATIONLOGINTOKEN, ""); getListDatas(token); } else { //token已过期 - Log.i("完整的时间和日期: ", "token已过期"); + showLog("完整的时间和日期: " + "token已过期"); if (userName.equals("") == false && password.equals("") == false) { AuthenticationLoginUtils.authenticationLogin(context, userName, password, new OnAuthenticationLoginListener() { @Override @@ -132,15 +137,19 @@ public class YjyaCFragment extends BaseFragment { public void onSuccess(Call call, Response response) { YjyaBaseBean bean = response.body(); - if (bean.getTotal().equals("0")) { - //showToast("暂无数据"); + if (bean != null) { + if (bean.getTotal().equals("0")) { + //showToast("暂无数据"); + rowsBeanList = new ArrayList(); + setAdapter(); + } else { + rowsBeanList = bean.getData(); + setAdapter(); + } + }else{ rowsBeanList = new ArrayList(); setAdapter(); - } else { - rowsBeanList = bean.getData(); - setAdapter(); } - } @Override diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YjyaDFragment.java b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YjyaDFragment.java index 34a3fd5..46c789f 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YjyaDFragment.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YjyaDFragment.java @@ -81,7 +81,8 @@ public class YjyaDFragment extends BaseFragment { long expires = (Long) SPUtils.get(getActivity(), Contans.AUTHENTICATIONLOGINNEXTDATE, Long.valueOf(0)); Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(expires); - Log.i("expires", format.format(calendar.getTime())); + showLog("expires:"+format.format(calendar.getTime())); + if (expires != 0) { String time = format.format(calendar.getTime()); Log.i("完整的时间和日期: ", time); @@ -93,12 +94,13 @@ public class YjyaDFragment extends BaseFragment { //a比c晚,返回1 if (calendar.compareTo(calendarNow) > 0) { //token有效 - Log.i("完整的时间和日期: ", "token有效"); String token = (String) SPUtils.get(context, Contans.AUTHENTICATIONLOGINTOKEN, ""); + showLog("完整的时间和日期: "+"token有效"); + showLog(token); getListDatas(token); } else { //token已过期 - Log.i("完整的时间和日期: ", "token已过期"); + showLog("完整的时间和日期: "+"token已过期"); if (userName.equals("") == false && password.equals("") == false) { AuthenticationLoginUtils.authenticationLogin(context, userName, password, new OnAuthenticationLoginListener() { @Override @@ -132,20 +134,26 @@ public class YjyaDFragment extends BaseFragment { private void getListDatas(String token) { + showLog("getListDatas"); + showLog("YJYAJX/GetList"); HttpUtils.getCompanyServerApi(token).GetyjyaListData(this.stime, this.etime,"1","2").enqueue(new BaseCallBack(context) { @Override public void onSuccess(Call call, Response response) { YjyaBaseBean bean = response.body(); - if (bean.getTotal().equals("0")){ - //showToast("暂无数据"); + if (bean != null) { + if (bean.getTotal().equals("0")){ + //showToast("暂无数据"); + rowsBeanList= new ArrayList(); + setAdapter(); + }else { + rowsBeanList = bean.getData(); + setAdapter(); + } + }else{ rowsBeanList= new ArrayList(); setAdapter(); - }else { - rowsBeanList = bean.getData(); - setAdapter(); } - } @Override diff --git a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YunXingFragment.java b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YunXingFragment.java index 5d544e8..80559f8 100644 --- a/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YunXingFragment.java +++ b/app/src/main/java/com/rehome/zhdcoa/ui/fragment/YunXingFragment.java @@ -326,8 +326,8 @@ public class YunXingFragment extends BaseFragment { final Request request = NoHttp.createStringRequest(Contans.IP + Contans.XS_JCSJ, RequestMethod.POST); request.setDefineRequestBodyForJson(createZyJson()); - showLog(Contans.IP + Contans.XS_JCSJ); - showLog(createZyJson()); +// showLog(Contans.IP + Contans.XS_JCSJ); +// showLog(createZyJson()); NohttpUtils.getInstance().add(getActivity(), 0, request, new HttpListener() { @@ -336,8 +336,8 @@ public class YunXingFragment extends BaseFragment { try { String result = response.get(); - showLog(Contans.IP + Contans.XS_JCSJ); - showLog(result); +// showLog(Contans.IP + Contans.XS_JCSJ); +// showLog(result); BasicDataBean bean = GsonUtils.GsonToBean(result, BasicDataBean.class); if (bean != null) { if (bean.getState() == 1) { 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 d1191f1..3c5543a 100644 --- a/app/src/main/java/com/rehome/zhdcoa/utils/AuthenticationLoginAIUtils.java +++ b/app/src/main/java/com/rehome/zhdcoa/utils/AuthenticationLoginAIUtils.java @@ -14,6 +14,10 @@ import com.yolanda.nohttp.rest.Response; import static com.rehome.zhdcoa.utils.GsonUtils.GsonToBean; +import javax.net.ssl.HostnameVerifier; +import javax.net.ssl.SSLSession; +import javax.net.ssl.SSLSocketFactory; + public class AuthenticationLoginAIUtils { /** * @param context Context @@ -28,7 +32,20 @@ public class AuthenticationLoginAIUtils { request.add("password", password); request.addHeader("Content-Type", Headers.HEAD_VALUE_ACCEPT_APPLICATION_X_WWW_FORM_URLENCODED); - NoProgresshttpUtils.getInstance().add(0, request, new HttpListener() { + 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); + request.setHostnameVerifier(new HostnameVerifier() { + @Override + public boolean verify(String s, SSLSession sslSession) { + return true; + } + }); + } + } + + NohttpUtils.getInstance().addNoProgress(context,0, request, new HttpListener() { @Override public void onSucceed(int what, Response response) { 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 d830b1b..0107747 100644 --- a/app/src/main/java/com/rehome/zhdcoa/utils/AuthenticationLoginUtils.java +++ b/app/src/main/java/com/rehome/zhdcoa/utils/AuthenticationLoginUtils.java @@ -25,16 +25,16 @@ 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); +// Log.i("完整的时间和日期: " , json); +// Log.i("完整的时间和日期: " , base64Password); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); HttpUtils.getCompanyServerApi().userAuthenticationLogin(username,base64Password).enqueue(new BaseCallBack(context) { @Override public void onSuccess(retrofit2.Call call, retrofit2.Response response) { UserAuthenticationBean bean = response.body(); - Log.i("bean:",GsonUtils.GsonString(bean)); + //Log.i("bean:",GsonUtils.GsonString(bean)); if (bean != null) { if (bean.isResult()) {//登录成功 Calendar calendar = Calendar.getInstance(); diff --git a/app/src/main/java/com/rehome/zhdcoa/utils/HttpResponseListener.java b/app/src/main/java/com/rehome/zhdcoa/utils/HttpResponseListener.java index bdefdd6..b61b690 100755 --- a/app/src/main/java/com/rehome/zhdcoa/utils/HttpResponseListener.java +++ b/app/src/main/java/com/rehome/zhdcoa/utils/HttpResponseListener.java @@ -128,7 +128,7 @@ public class HttpResponseListener implements OnResponseListener { */ @Override public void onFinish(int what) { - if (mDialog != null && mDialog.isShowing()) { + if (mActivity != null && mDialog != null && mDialog.isShowing()) { mDialog.dismiss(); } } diff --git a/app/src/main/java/com/rehome/zhdcoa/utils/HttpUtils.java b/app/src/main/java/com/rehome/zhdcoa/utils/HttpUtils.java index a7dc0e4..399a6dc 100644 --- a/app/src/main/java/com/rehome/zhdcoa/utils/HttpUtils.java +++ b/app/src/main/java/com/rehome/zhdcoa/utils/HttpUtils.java @@ -8,6 +8,7 @@ import androidx.annotation.NonNull; import com.rehome.zhdcoa.Api; import com.rehome.zhdcoa.App; +import com.rehome.zhdcoa.BuildConfig; import com.rehome.zhdcoa.Contans; import java.io.IOException; @@ -74,8 +75,7 @@ public class HttpUtils { public static Api getYXApi() { return getApi(Contans.IP); } - - + public static Api getApi(String url) { Retrofit mRetrofit = new Retrofit.Builder().baseUrl(url).client(getOkHttpClient()).addConverterFactory(GsonConverterFactory.create()).build(); @@ -129,6 +129,24 @@ public class HttpUtils { } } + public static class TokenHeaderInterceptorAuthenticator implements Interceptor { + private static String token = ""; + + public TokenHeaderInterceptorAuthenticator(String tokenBase) { + TokenHeaderInterceptorAuthenticator.token = tokenBase; + } + + @NonNull + @Override + public Response intercept(@NonNull Chain chain) throws IOException { + String token = TokenHeaderInterceptorAuthenticator.token; + String credential = "Bearer " + token; + Request originalRequest = chain.request(); + Request updateRequest = originalRequest.newBuilder().header("Authorization", credential).build(); + return chain.proceed(updateRequest); + } + } + private static OkHttpClient getGzipOkHttpClient() { OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder(); httpClientBuilder.addNetworkInterceptor(new TokenHeaderInterceptor()); @@ -141,26 +159,26 @@ public class HttpUtils { private static OkHttpClient getAuthenticatorOkHttpClient(String token) { OkHttpClient.Builder httpClientBuilder = new OkHttpClient.Builder(); - httpClientBuilder.addNetworkInterceptor(new TokenHeaderInterceptor()); + httpClientBuilder.addNetworkInterceptor(new TokenHeaderInterceptorAuthenticator(token)); httpClientBuilder.addInterceptor(new LoggingInterceptor()); httpClientBuilder.connectTimeout(6, TimeUnit.SECONDS); httpClientBuilder.writeTimeout(60, TimeUnit.SECONDS); httpClientBuilder.readTimeout(60, TimeUnit.SECONDS); - final String credential = "Bearer " + token; - httpClientBuilder.authenticator(new Authenticator() { - @Override - public Request authenticate(Route route, Response response) throws IOException { - //Log.i("OkHttpClient","Authenticating for response: " + response); - //Log.i("OkHttpClient","Challenges: " + response.challenges()); - String authorization = response.request().header("Authorization"); - //Log.i("OkHttpClient","authorization:"+ authorization); - if (credential.equals(response.request().header("Authorization"))) { - Log.i("OkHttpClient", "验证失败,返回null"); - return null; - } - return response.request().newBuilder().header("Authorization", credential).build(); - } - }); +// final String credential = "Bearer " + token; +// httpClientBuilder.authenticator(new Authenticator() { +// @Override +// public Request authenticate(Route route, Response response) throws IOException { +// //Log.i("OkHttpClient","Authenticating for response: " + response); +// //Log.i("OkHttpClient","Challenges: " + response.challenges()); +// String authorization = response.request().header("Authorization"); +// //Log.i("OkHttpClient","authorization:"+ authorization); +// if (credential.equals(response.request().header("Authorization"))) { +// showLog("验证失败,返回null"); +// return null; +// } +// return response.request().newBuilder().header("Authorization", credential).build(); +// } +// }); return httpClientBuilder.build(); } @@ -170,16 +188,26 @@ public class HttpUtils { Request request = chain.request(); long t1 = System.nanoTime();//请求发起的时间 //Log.v("okhttpmsg", String.format("发送请求 %s on %s%n%s", request.url(), chain.connection(), request.headers())); - Log.i("app", String.format("发送请求 %s on %s%n%s", request.url(), chain.connection(), request.headers())); + showLog(String.format("发送请求 %s on %s%n%s", request.url(), chain.connection(), request.headers())); Response response = chain.proceed(request); long t2 = System.nanoTime();//收到响应的时间 ResponseBody responseBody = response.peekBody(1024 * 1024); //Log.v("okhttpmsg", String.format("接收响应: [%s] %n返回json:【%s】 %.1fms%n%s", response.request().url(), responseBody.string(), (t2 - t1) / 1e6d, response.headers())); - Log.i("app", String.format("接收响应: [%s] %n返回json:【%s】 %.1fms%n%s", response.request().url(), responseBody.string(), (t2 - t1) / 1e6d, response.headers())); + showLog(String.format("接收响应: [%s] %n返回json:【%s】 %.1fms%n%s", response.request().url(), responseBody.string(), (t2 - t1) / 1e6d, response.headers())); return response; } } + 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); + } + } + } + public static class GzipRequestInterceptor implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { diff --git a/app/src/main/java/com/rehome/zhdcoa/utils/NohttpUtils.java b/app/src/main/java/com/rehome/zhdcoa/utils/NohttpUtils.java index 4656313..c961ec7 100644 --- a/app/src/main/java/com/rehome/zhdcoa/utils/NohttpUtils.java +++ b/app/src/main/java/com/rehome/zhdcoa/utils/NohttpUtils.java @@ -1,17 +1,27 @@ package com.rehome.zhdcoa.utils; import android.app.Activity; +import android.content.Context; import android.text.TextUtils; import android.util.Log; import com.google.gson.Gson; import com.rehome.zhdcoa.App; import com.rehome.zhdcoa.BuildConfig; +import com.rehome.zhdcoa.R; import com.yolanda.nohttp.NoHttp; import com.yolanda.nohttp.download.DownloadQueue; import com.yolanda.nohttp.rest.Request; import com.yolanda.nohttp.rest.RequestQueue; +import java.security.KeyStore; +import java.security.SecureRandom; +import java.security.cert.CertificateFactory; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManagerFactory; + /** * Created by ruihong on 2017/10/25. */ @@ -103,6 +113,18 @@ public class NohttpUtils { mQueue.add(what, request, new HttpResponseListener(mActivity, request, callback, true, true, progressTitle)); } + public void addNoProgress(Context context, int what, Request request, HttpListener callback) { + 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())); + } + mQueue.add(what, request, new HttpResponseListenerNoProgress(request, callback)); + } + public void showLog(String logText) { if (BuildConfig.LOG_ERROR) { if(TextUtils.isEmpty(logText)){ @@ -135,4 +157,29 @@ public class NohttpUtils { public void stopAll() { mQueue.stop(); } + + public static SSLSocketFactory getSSLSocketFactory(Context context) { + try { + CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509"); + KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType()); + keyStore.load(null); + String certificateAlias = Integer.toString(0); + keyStore.setCertificateEntry(certificateAlias, certificateFactory. + generateCertificate(context.getResources().openRawResource(R.raw.domain))); + SSLContext sslContext = SSLContext.getInstance("TLS"); + final TrustManagerFactory trustManagerFactory = + TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); + trustManagerFactory.init(keyStore); + sslContext.init + ( + null, + trustManagerFactory.getTrustManagers(), + new SecureRandom() + ); + return sslContext.getSocketFactory(); + } catch (Exception ex) { + ex.printStackTrace(); + } + return null; + } } 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 5b900ad..2989353 100644 --- a/app/src/main/java/com/rehome/zhdcoa/utils/RSAUtils.java +++ b/app/src/main/java/com/rehome/zhdcoa/utils/RSAUtils.java @@ -4,6 +4,7 @@ package com.rehome.zhdcoa.utils; import android.util.Base64; import android.util.Log; +import java.io.ByteArrayOutputStream; import java.security.Key; import java.security.KeyFactory; import java.security.KeyPair; @@ -24,15 +25,26 @@ public class RSAUtils { * RSA算法 */ public static final String RSA = "RSA"; - - public static final String ECB_None_PKCS1_PADDING = "RSA/None/PKCS1Padding";//java默认加密填充方式 RSA/None/PKCS1Padding - private static final String PUBLIC_KEY = "RSAPublicKey"; private static final String PRIVATE_KEY = "RSAPrivateKey"; + public static final int DEFAULT_KEY_SIZE = 2048;//秘钥默认长度 + + //RSA最大加密明文大小 1024位是117 算法 最大加密明文大小 = 1024(bit) / 8 - 11(byte) = 117 byte 最大加密明文大小 = 2048(bit) / 8 - 11(byte) = 245 byte + //private static final int MAX_ENCRYPT_BLOCK = 245; + private static final int MAX_ENCRYPT_BLOCK = (DEFAULT_KEY_SIZE / 8) - 11; + //RSA最大解密密文大小 1024位是128 2048位是 256 依此类推 + //private static final int MAX_DECRYPT_BLOCK = 256; + private static final int MAX_DECRYPT_BLOCK = DEFAULT_KEY_SIZE / 8; + //java默认加密填充方式 RSA 对应安卓 RSA/None/PKCS1Padding + //public static final String ECB_None_PKCS1_PADDING = "RSA"; + //安卓手机加密填充方式用 RSA/None/PKCS1Padding + public static final String ECB_None_PKCS1_PADDING = "RSA/None/PKCS1Padding"; + 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 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"; public static final String private_key_local = "MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQD+WFBHIUxXkssnP2MWNj5lb/v3AS66MMmPLxjGXGp9JP4VRQ7K0fjp8tF3mbizg2PsvTeGyzPQfQzWkqJTNTOnq6VILwYfb+5nMGrjtqCt71tbQD5S7QiILB85zQnUvVSUub/BZEZbRLDnU4dgCz32KuOHF0YU5W/+ZL0XPPGYFEU7BRcUPyJfIQojzGS17IcaeIpHAFihZHfaRDDsf8yelqajV8KscDoODnkIF4gSSDajI8YrO+GQ9WiknOP3O6RbzDYXSJHmWXRAGXtfMbLLcQeYixiyh3ctIiHWDkDbOyxwnSi6isoYvBjUsrTprfglORjPmnuXHo2frnz1F7wbAgMBAAECggEAakyCkJfMDjWdjjOht+DHxyE8TwlBfDNzqdHnKs/o+ZCCWGVaP03uF+iRvsiSNwRMuN6D3GQErbf1q5/xE5GCmyrTkw2EI5NmMd48bhsfoFIO/l4lLgc+r5qxGjklSLIwLVBMYgkElpRo0uVICM3qAX3/RbBma8lQOyPjG1kvJ31L/xYN4DbfOfumqs3Eb06ZNvPEP0BnbbVFp6NiOcBvLipQxrhnMob5MDyPWEjcBeV/IssK3ZvrzjsqF1Ckz8KNUKGfDq4DHM7YzkLBySDIiOZHSBfimzc8fxtDFZpMOOBbEZJ0sGlTeftv5Zd0KHWD0OBWBeSHeVFRBc5RCPO38QKBgQD/rPC5Jr2Sgp3tKrRyEztYZrce0ecYvsxYZRgQpSxLF+rd8Z8ftH/MHPEdnYZjLWFPDrd+R3eEEr5B2t2sfKUWE/PA97RvSp/Uqv0xKoetX8JopeZ6X/3PRb9bQFWRe2dPBSA5mKx8MIOIhfr2qjdepDF+Lejn4pCFDSs8BLpPbQKBgQD+qvDlusQ1IvBi19DnKqx3iLvgHFHYb/GcrFzqfQZewGZLH7yoBo4zXZLT2Np+DW7K8IC3JOLNhLrvD1V8+bmOwW84Foo62Gvm1GPm8nxbgTCqg+ns5bV0xoHXdN1v4dAgeOBqYrIFkmSfxpB4usij8yFMZkN7PNZ3KwQYqZYcpwKBgQDS+qKqJo3ImIA5dUPx3mzaRehWRl+sy8VULBfvpF0omlP1Ua09PHU4uak+Bv8eWBQ0aLCCQ/cbxVu6fCDwdOrFjTFXyw/Zxnqdw3urVq0fJCYItN27nfqTT7rYUf5KTsqxKkmtPY8X6/Ced/DgGxYVwugUd036C7u2D2fd3wjfAQKBgQCfHkduAofde3sfByFrjmo8NZ7NpGQvC6K29asIiB2Wzjgb8DR797yZs3muC+xYniP/gM2roMxlBO2XuMj9UTrzS0Emlk6//cFNdJ8HCbNRqSKzJ8DdV5lM4Ur3R/mjkj/sShpN3mTEvndIrVRPWsVKSvsfNTYsphKKWsIwdqVoOQKBgQD5ibg09UHs0dHiaOn0lKsUFb25q+ylu4NLIU6gh/xi7sJ2huRA2gElPwkUsCIzH+/TTiIdvs1WuoBCvvCWL6a7xchN1+nve2fw4ohNHWupcTNWX1k1pNFHXjhtaUMes7zTTy6wBDbkbM7yTQLtB8/VMzMpuzg6UZPw3Hv8sIOz+w=="; public static final String public_key_mqtt = "MIIEIjANBgkqhkiG9w0BAQEFAAOCBA8AMIIECgKCBAEAujmJWv1QTJU1uS/t0Tj0ms9dPuYtZeuxCCAvc93/6JvxAON6UyfniL4hScOzwDqR74GsOtYC5O1JNi4VGn4XU6XKt30o+/cCJeSaynmcVRBnkbjpo4pvE/97//GEwHbhPSsHRv2GmURx/wEZKGhlAceMu3xMs1slhD2gmGlfoZTdMULUN7xIbN5wgwZbcGs+XD+eaGEkE6xOyJdthKnsoYq+7lsfl0668231374zIDMSYCkcES5v86jr0HG4TVYymBbD33/WAJ0ISyBP+LMboasw62QoVrwPYXkWIqfiFFHwpi/TqyjJef8bM4bUuW2vqfFCMRZb23NKIseSvjgJu62FlQAPFgw8U5/i1yRGyFJPryJP0dJS07uv5k+J5iSKabvjp0RWkVLwgUzctQKjJhx+cE9bOPXgAGp7dczumjMPlOVm7AGEsAAlDNHNcDksKssy91kl3tkkj987/0P534TehtKvZ43W2XoOSyA0nPxfb/hxb6cLo3D1OD9Favc5WkSUgnYS8Kc+wwOPpUl8eveGLWjbdd8tFGpq8jW2Nrrk584zqu6OqgE9BqHC4NwnMkd1ZmwVBC7aUB+BuVgKxb+lRXRzoYOeCYYdn4Rg0yEdSJcCTwEEwJqouAD/eCkj2KVpz2lTr1zut8w4oDwk9BYe/9R5fz9/yE+M06MAG60ys4Ac0IpfERQP8VP3a+JuTZGPvan/CSq4nGdvd/+R+aZHcQUJDXk1YzSPZFezrLIVZQe0u0HbIIfPhLHmEwCAXzhM1Ise4xC8XHOytlJw3drkNAsJN9sZ9UePLZMEkggLYgzsgSZ11tRgObA/OXPW4/fd71RO/MZmH9DLv7blCkLomTKinKDiO7MsQvjIQaDKgOVX8Db8UvVcolZLHy48c6vUbJFVXRo2ds/1MK5sgDBNGzNTX/QkPuQS+IDnh4g4edbU0tfwTzkcawHShMza+QQfcHRu5hgpurGv4CApcVWIZn49T/ElJMbSSQczbF6f08piXs8hlyUYBhFjdQJNp3Imuii2c1M10rOGn1PHR0yIay6+L1toDn6ASJksY1FCNSkzpv5utykEKf0Hq2+HX0Wi1Umdl/tndqBVXygSgi4SSu/j5iZtSnjwb1DxQKvO5LLNxxdtEJLsEpQii5LlWr7MjkcsR7zHhzzkqWIAsIbaiwuasMcRkYbAjYFcIH4mSZCTACvsTDxm+hB0GxVmGEfEgknphVm0Yqa7/NXcz9bL856ez5IemmiavfntBS8uhet3m4FYa0FolJF0YdlJa0LCXW/QQYa/PltBFx9xY9nveEp08f+DXUPzJ+0puX3qxLIMyazTfM4mWgxxPmMQOFTNwGwtNGMP6Ncbd6V4oQIDAQAB"; @@ -49,15 +61,40 @@ public class RSAUtils { //return Base64.encode(key); } - public static String decryptBASE64Str(String encryptString) throws Exception { - byte[] decodeByte = decryptBASE64(encryptString); - return new String(decryptByPrivateKey(decodeByte, private_key)); + public static String decryptBASE64Str(String encryptString) { + try { + byte[] decodeByte = decryptBASE64(encryptString); + return new String(decryptByPrivateKeyLongText(decodeByte, private_key),java.nio.charset.StandardCharsets.UTF_8); + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } + + public static String decryptBASE64StrClient(String encryptString) { + try { + byte[] decodeByte = decryptBASE64(encryptString); + return new String(decryptByPrivateKeyLongText(decodeByte, private_key_client),java.nio.charset.StandardCharsets.UTF_8); + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } + + public static String decryptBASE64StrByPublic(String encryptString) { + try { + byte[] decodeByte = decryptBASE64(encryptString); + return new String(decryptByPublicKeyLongText(decodeByte, public_key),java.nio.charset.StandardCharsets.UTF_8); + } catch (Exception e) { + e.printStackTrace(); + } + return ""; } public static String decryptBASE64StrLocal(String encryptString) { try { byte[] decodeByte = decryptBASE64(encryptString); - return new String(decryptByPrivateKey(decodeByte, private_key_local)); + return new String(decryptByPrivateKeyLongText(decodeByte, private_key_local),java.nio.charset.StandardCharsets.UTF_8); } catch (Exception e) { e.printStackTrace(); } @@ -67,7 +104,7 @@ public class RSAUtils { public static String decryptBASE64StrMqtt(String encryptString) { try { byte[] decodeByte = decryptBASE64(encryptString); - return new String(decryptByPrivateKey(decodeByte, private_key_mqtt)); + return new String(decryptByPrivateKey(decodeByte, private_key_mqtt),java.nio.charset.StandardCharsets.UTF_8); } catch (Exception e) { e.printStackTrace(); } @@ -76,7 +113,16 @@ public class RSAUtils { public static String encryptBASE64Str(String text) { try { - return encryptBASE64(encryptByPublicKey(text.getBytes(), public_key)); + return encryptBASE64(encryptByPublicKeyLongText(text.getBytes( java.nio.charset.StandardCharsets.UTF_8), public_key)); + } catch (Exception e) { + e.printStackTrace(); + } + return ""; + } + + public static String encryptBASE64StrClient(String text) { + try { + return encryptBASE64(encryptByPublicKeyLongText(text.getBytes( java.nio.charset.StandardCharsets.UTF_8), public_key_client)); } catch (Exception e) { e.printStackTrace(); } @@ -85,7 +131,7 @@ public class RSAUtils { public static String encryptBASE64StrLocal(String text) { try { - return encryptBASE64(encryptByPublicKey(text.getBytes(), public_key_local)); + return encryptBASE64(encryptByPublicKeyLongText(text.getBytes( java.nio.charset.StandardCharsets.UTF_8), public_key_local)); } catch (Exception e) { e.printStackTrace(); } @@ -94,7 +140,7 @@ public class RSAUtils { public static String encryptBASE64StrMqtt(String text) { try { - return encryptBASE64(encryptByPublicKey(text.getBytes(), public_key_mqtt)); + return encryptBASE64(encryptByPublicKey(text.getBytes( java.nio.charset.StandardCharsets.UTF_8), public_key_mqtt)); } catch (Exception e) { e.printStackTrace(); } @@ -125,6 +171,44 @@ public class RSAUtils { return cipher.doFinal(data); } + /** + * 私钥分段解密 + * @param encryptedData + * @param privateKey + * @return + * @throws Exception + */ + public static byte[] decryptByPrivateKeyLongText(byte[] encryptedData, String privateKey) throws Exception { + + byte[] keyBytes = decryptBASE64(privateKey); + PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(keyBytes); + KeyFactory keyFactory = KeyFactory.getInstance(RSA); + Key privateK = keyFactory.generatePrivate(pkcs8KeySpec); + Cipher cipher = Cipher.getInstance(ECB_None_PKCS1_PADDING); + cipher.init(Cipher.DECRYPT_MODE, privateK); + + int inputLen = encryptedData.length; + ByteArrayOutputStream out = new ByteArrayOutputStream(); + int offSet = 0; + byte[] cache; + int i = 0; + // 对数据分段解密 + while (inputLen - offSet > 0) { + if (inputLen - offSet > MAX_DECRYPT_BLOCK) { + + cache = cipher.doFinal(encryptedData, offSet, MAX_DECRYPT_BLOCK); + } else { + cache = cipher.doFinal(encryptedData, offSet, inputLen - offSet); + } + out.write(cache, 0, cache.length); + i++; + offSet = i * MAX_DECRYPT_BLOCK; + } + byte[] decryptedData = out.toByteArray(); + out.close(); + return decryptedData; + } + /** * 解密
* 用公钥解密 @@ -148,6 +232,67 @@ public class RSAUtils { return cipher.doFinal(data); } + /** + * 用公钥分段解密 + * @param encryptedData + * @param publicKey + * @return + * @throws Exception + */ + public static byte[] decryptByPublicKeyLongText(byte[] encryptedData, String publicKey) throws Exception { + + byte[] keyBytes = decryptBASE64(publicKey); + + X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(keyBytes); + + KeyFactory keyFactory = KeyFactory.getInstance(RSA); + + Key publicK = keyFactory.generatePublic(x509KeySpec); + + Cipher cipher = Cipher.getInstance(ECB_None_PKCS1_PADDING); + + cipher.init(Cipher.DECRYPT_MODE, publicK); + + int inputLen = encryptedData.length; + + ByteArrayOutputStream out = new ByteArrayOutputStream(); + + int offSet = 0; + + byte[] cache; + + int i = 0; + + // 对数据分段解密 + + while (inputLen - offSet > 0) { + + if (inputLen - offSet > MAX_DECRYPT_BLOCK) { + + cache = cipher.doFinal(encryptedData, offSet, MAX_DECRYPT_BLOCK); + + } else { + + cache = cipher.doFinal(encryptedData, offSet, inputLen - offSet); + + } + + out.write(cache, 0, cache.length); + + i++; + + offSet = i * MAX_DECRYPT_BLOCK; + + } + + byte[] decryptedData = out.toByteArray(); + + out.close(); + + return decryptedData; + + } + /** * 加密
* 用公钥加密 @@ -171,6 +316,69 @@ public class RSAUtils { return cipher.doFinal(data); } + /** + * 用公钥分段加密 + * @param data + * @param publicKey + * @return + * @throws Exception + */ + public static byte[] encryptByPublicKeyLongText(byte[] data, String publicKey) throws Exception { + + byte[] keyBytes = decryptBASE64(publicKey); + + X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(keyBytes); + + KeyFactory keyFactory = KeyFactory.getInstance(RSA); + + Key publicK = keyFactory.generatePublic(x509KeySpec); + + // 对数据加密 + + Cipher cipher = Cipher.getInstance(ECB_None_PKCS1_PADDING); + + cipher.init(Cipher.ENCRYPT_MODE, publicK); + + int inputLen = data.length; + + ByteArrayOutputStream out = new ByteArrayOutputStream(); + + int offSet = 0; + + byte[] cache; + + int i = 0; + + // 对数据分段加密 + + while (inputLen - offSet > 0) { + + if (inputLen - offSet > MAX_ENCRYPT_BLOCK) { + + cache = cipher.doFinal(data, offSet, MAX_ENCRYPT_BLOCK); + + } else { + + cache = cipher.doFinal(data, offSet, inputLen - offSet); + + } + + out.write(cache, 0, cache.length); + + i++; + + offSet = i * MAX_ENCRYPT_BLOCK; + + } + + byte[] encryptedData = out.toByteArray(); + + out.close(); + + return encryptedData; + + } + /** * 加密
* 用私钥加密 @@ -194,6 +402,67 @@ public class RSAUtils { return cipher.doFinal(data); } + /** + * 用私钥分段加密 + * @param data + * @param privateKey + * @return + * @throws Exception + */ + public static byte[] encryptByPrivateKeyLongText(byte[] data, String privateKey) throws Exception { + + byte[] keyBytes = decryptBASE64(privateKey); + + PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(keyBytes); + + KeyFactory keyFactory = KeyFactory.getInstance(RSA); + + Key privateK = keyFactory.generatePrivate(pkcs8KeySpec); + + Cipher cipher = Cipher.getInstance(ECB_None_PKCS1_PADDING); + + cipher.init(Cipher.ENCRYPT_MODE, privateK); + + int inputLen = data.length; + + ByteArrayOutputStream out = new ByteArrayOutputStream(); + + int offSet = 0; + + byte[] cache; + + int i = 0; + + // 对数据分段加密 + + while (inputLen - offSet > 0) { + + if (inputLen - offSet > MAX_ENCRYPT_BLOCK) { + + cache = cipher.doFinal(data, offSet, MAX_ENCRYPT_BLOCK); + + } else { + + cache = cipher.doFinal(data, offSet, inputLen - offSet); + + } + + out.write(cache, 0, cache.length); + + i++; + + offSet = i * MAX_ENCRYPT_BLOCK; + + } + + byte[] encryptedData = out.toByteArray(); + + out.close(); + + return encryptedData; + + } + /** * 取得私钥 * diff --git a/app/src/main/res/layout/activity_lrgzp.xml b/app/src/main/res/layout/activity_lrgzp.xml index a617c2b..1c39b82 100644 --- a/app/src/main/res/layout/activity_lrgzp.xml +++ b/app/src/main/res/layout/activity_lrgzp.xml @@ -43,7 +43,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" app:must="true" - app:tv_title="工作开始时间"/> + app:tv_title="许可时间"/>