題目要求
- 在表單頁(yè)提交密鑰和敏感信息,通過fass 連接器用密鑰加密敏感信息。
- 在授權(quán)查看頁(yè)選擇待解密數(shù)據(jù),審核通過后可以查看解密后的數(shù)據(jù)。
需求拆解
- Faas連接器,用于數(shù)據(jù)加解密
- 集成自動(dòng)化,提交表單數(shù)據(jù)后調(diào)用faas連接器加密數(shù)據(jù)
- 密鑰維護(hù)頁(yè)(普通表單),用與提交密鑰
- 敏感信息提交頁(yè)(普通表單),用于提交敏感信息
- 存檔頁(yè)(普通表單),用于接收f(shuō)aas連接器加密后的數(shù)據(jù),作為關(guān)聯(lián)表單嵌入授權(quán)查看頁(yè)
- 授權(quán)查看頁(yè)(流程表單),用于提交流程申請(qǐng)授權(quán)查看敏感信息
實(shí)操步驟
一、 Faas連接器
在應(yīng)用中心找到“實(shí)操題2代碼文件下載”應(yīng)用,下載必要文件。
點(diǎn)擊頂部平臺(tái)管理,進(jìn)入平臺(tái)管理頁(yè)面,選擇連接器工廠,創(chuàng)建連接器。
新建Faas 連接器,開發(fā)語(yǔ)言選擇java。
配置接口請(qǐng)求參數(shù)和接口返回字段,此處配置用與在連接器接收參數(shù)和使用連接器返回?cái)?shù)據(jù)時(shí)選擇字段。
配置好字段,進(jìn)入云IDE開發(fā)。選擇資源管理器,將下載的DESUtil.java 文件粘貼到util下。
雙擊FaasEntry.java,進(jìn)入編輯器,找到excute 方法,將下載的業(yè)務(wù)代碼粘貼到方法中。此段代碼邏輯為根據(jù)type參數(shù)判斷是加密或者解密,我這里用的是0 == type 為加密,其他值為解密。然后獲取到密鑰和待處理數(shù)據(jù)(字段名為連接器接口請(qǐng)求配置字段),調(diào)用響應(yīng)的加解密方法處理數(shù)據(jù),最后根據(jù)連接器配置的接口返回字段返回?cái)?shù)據(jù)。
業(yè)務(wù)代碼
String content = (String) input.get("content");String password = (String) input.get("password");Integer type = Integer.parseInt(String.valueOf(input.get("type")));/*** 在這里編寫您的業(yè)務(wù)代碼, 也可以將業(yè)務(wù)代碼封裝到其他類或方法里.*/JSONObject result = new JSONObject();result.put("success", false);result.put("result", "");result.put("error", "");if (0 == type) {/*** 加密*/String encryptContent = DESUtil.encrypt(content, password);System.out.println("加密后的字符串:" encryptContent);if (StringUtils.isEmpty(encryptContent)) {result.put("error", "empty string got!");return result;}result.put("result", encryptContent);result.put("success", true);} else {/*** 解密*/String encryptContent = DESUtil.decrypt(content, password);System.out.println("解密后的字符串:" encryptContent);if (StringUtils.isEmpty(encryptContent)) {result.put("error", "empty string got!");return result;}result.put("result", encryptContent);result.put("success", true);}System.out.println("返回:" JSON.toJSONString(result));return result;
保存,提交代碼。
部署到serverless。
二、 表單
新建密鑰維護(hù)頁(yè)(普通表單),包含一個(gè)單行文本組件,用于密鑰輸入。
新建敏感信息提交頁(yè)(普通表單),包含一個(gè)單行文本組件,用于敏感信息輸入。
新建存檔頁(yè)(普通表單),用于接收加密后的數(shù)據(jù)。提交人為“成員”組件,只讀;提交時(shí)間為“時(shí)間”組件,只讀;返回結(jié)果為“多行文本”組件。
新建授權(quán)信息查看頁(yè)(流程表單),申請(qǐng)人為“成員”組件;
請(qǐng)選擇待解密數(shù)據(jù)為“關(guān)聯(lián)表單”組件。表單選擇當(dāng)前應(yīng)用的存檔頁(yè)。按要求選擇主要信息和次要信息。
因?yàn)橹荒芴峤蛔约簞?chuàng)建的數(shù)據(jù),所以篩選條件為提交人等于申請(qǐng)人。并將存檔頁(yè)中返回結(jié)果字段賦值到待解密信息。
保存后,點(diǎn)擊頂部流程設(shè)計(jì),創(chuàng)建審批流程。完整流程圖如下。
根據(jù)題目要求,此流程需要選擇并設(shè)置紅框中的節(jié)點(diǎn)。
1.設(shè)置審批人為發(fā)起人本人。
2.設(shè)置獲取表單數(shù)據(jù)節(jié)點(diǎn),從密鑰維護(hù)頁(yè)獲取提交的密鑰數(shù)據(jù),作為參數(shù)傳到Fass 連接器。
3.配置設(shè)置faas連接器節(jié)點(diǎn),選擇前面創(chuàng)建的連接器,按要求配置字段映射。
4.設(shè)置消息通知,通知類型為工作通知,人員為申請(qǐng)人。
選擇通知模板,通知內(nèi)容為解密后的數(shù)據(jù),即連接器的返回值字段。
三、 集成&自動(dòng)化
用于敏感信息提交后,自動(dòng)調(diào)用faas 連接器加密數(shù)據(jù),并將加密結(jié)果新增到存檔頁(yè)中。
點(diǎn)擊頂部集成&自動(dòng)化,進(jìn)入頁(yè)面新建集成&自動(dòng)化。表單事件觸發(fā)選擇敏感信息提交頁(yè)。
完整節(jié)點(diǎn)如下,包含事件觸發(fā)、獲取單條數(shù)據(jù)、連接器、數(shù)據(jù)新增。
表單事件觸發(fā)選擇創(chuàng)建成功,不用過濾數(shù)據(jù)。作用在于將新增的數(shù)據(jù)傳到連接器進(jìn)行加密。
獲取單條數(shù)據(jù)節(jié)點(diǎn)如下圖配置,要注意選擇密鑰維護(hù)頁(yè)獲取數(shù)據(jù),作為加密時(shí)密鑰。
連接器節(jié)點(diǎn)如下圖配置,注意配置動(dòng)作參數(shù)對(duì)應(yīng)。
新增數(shù)據(jù)節(jié)點(diǎn),將加密后的數(shù)據(jù)存到存檔頁(yè)表單中,下圖選擇的是存檔頁(yè)、新增單條數(shù)據(jù),然后配置存檔頁(yè)表單字段和連接器字段映射關(guān)系。
至此,應(yīng)用完成開發(fā)了。下面我們需要驗(yàn)證下是否題目要求。
四、驗(yàn)證
提交密鑰。
提交敏感信息。
提交后會(huì)在存檔頁(yè)生成加密數(shù)據(jù)。
選擇待解密數(shù)據(jù),提交授權(quán)申請(qǐng)。數(shù)據(jù)只能選擇自己創(chuàng)建的。
提交后審批人釘釘會(huì)收到審批通知,點(diǎn)擊進(jìn)入審批頁(yè)面審批。
審批通過后申請(qǐng)人會(huì)收到解密后的消息通知。
思考
敏感數(shù)據(jù)提交后不用集成&自動(dòng)化還可以用哪些方式實(shí)現(xiàn)數(shù)據(jù)加密,存到存檔頁(yè)呢?
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點(diǎn)僅代表作者本人。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請(qǐng)發(fā)送郵件至 舉報(bào),一經(jīng)查實(shí),本站將立刻刪除。