개인정보 마스킹 처리 예제

 

email 이나 이름 나머지를 * 로 마스킹 처리 할때 사용

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
private static final String EMAIL_PATTERN = "([\\w.])(?:[\\w.]*)(@.*)";
private static final String LASTNAME_PATTERN = "(?<=.{0}).";
private static final String LAST_6_CHAR_PATTERN = "(.{6}$)";
 
@Test
public void maskingTest() {
    // 이름 형식
    String firstName = "Steve";
    String lastName = "Jobs";
 
    // 이메일 형식
    String email = "test@test.com";
 
    // 주민번호 형식
    String certNum = "123456-1234567";
 
    // 여권번호 형식
    String passPortNum = "M12345678";
 
    System.out.println("이름 : " + firstName + " " + lastName.replaceAll(LASTNAME_PATTERN , "*"));
    System.out.println("이메일 : " + email.replaceAll(EMAIL_PATTERN, "$1****$2"));
    System.out.println("주민번호 : " + certNum.replaceAll(LAST_6_CHAR_PATTERN, "******"));
    System.out.println("여권번호 : " + passPortNum.replaceAll(LAST_6_CHAR_PATTERN, "******"));

 

 

출처 ] https://stufeel.tistory.com/30

 

자바에서 몇 가지 유용한 정규식 패턴(정규식을 이용한 개인정보 마스킹)

private static final String EMAIL_PATTERN = "([\\w.])(?:[\\w.]*)(@.*)"; private static final String LASTNAME_PATTERN = "(?<=.{0})."; private static final String LAST_6_CHAR_PATTERN = "(.{6}$)"; @Tes..

stufeel.tistory.com

 

'web > java' 카테고리의 다른 글

java timestamp  (0) 2020.04.01
java jsonObject 처리  (0) 2020.04.01
java 비동기 처리 하기  (0) 2020.04.01
엑셀 다운로드시 로딩바 보이게  (0) 2020.03.13

String pattern = "yyyyMMdd_HHmmss";
SimpleDateFormat sdfCurrent = new SimpleDateFormat(pattern,
Locale.KOREA);
Timestamp ts = new Timestamp(System.currentTimeMillis());
String timeStr = sdfCurrent.format(ts.getTime());

'web > java' 카테고리의 다른 글

[java] 정규식을 이용한 개인정보 마스킹  (0) 2020.04.09
java jsonObject 처리  (0) 2020.04.01
java 비동기 처리 하기  (0) 2020.04.01
엑셀 다운로드시 로딩바 보이게  (0) 2020.03.13

간단한 파싱만

 

자세한건 좀더 뒤에

 

JSONParser jsonParser = new JSONParser();
JSONObject placeOrderObj = (JSONObject) jsonParser.parse(getPlaceOrderRes);
JSONArray messageArr = (JSONArray)  oppObj.get("message");
String transactionId = placeOrderObj.get("transactionId");

 

 

'web > java' 카테고리의 다른 글

[java] 정규식을 이용한 개인정보 마스킹  (0) 2020.04.09
java timestamp  (0) 2020.04.01
java 비동기 처리 하기  (0) 2020.04.01
엑셀 다운로드시 로딩바 보이게  (0) 2020.03.13

데이터 처리 이후 웹에는 결과를 보내고 background  에서 몇초 간격으로 계속 조회를 시도 해야하는 경우

 

serviceImpl.java 에 @Async 를 추가 하고 작업

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
@Override
    @Async
    public void chkGetOrderStatusAsync(String orderSubNum, String transactionId, String userId) throws Exception{
        
        //비동기 실행
        //get Order Status 호출하여 accepted 혹은 FAILED 가 뜰때까지 15초 간격으로 실행 최대 20번
        boolean flag = true;
        int cnt = 0;
        try{
            while(flag){
                
                JSONParser jsonParser = new JSONParser();
                String getOrderStausRes = APIUtil.getOrderStatus(transactionId);
                System.out.println("==== get Order Status API Async " + orderSubNum + " : " + transactionId + " (" + cnt + ") ====");
                System.out.println(getOrderStausRes);
                JSONObject getOrderStatusObj = (JSONObject) jsonParser.parse(getOrderStausRes);
                String status = UxisStringUtil.nullConvert(getOrderStatusObj.get("status"));
                String message = UxisStringUtil.nullConvert(getOrderStatusObj.get("message"));
 
                if(("Order is processing.".equals(message) || "Order is created.".equals(message) ) && cnt < 20){
                    //processing 일 경우 15초 대기 후 재실행
                    flag = true;
                    cnt++;
                    Thread.sleep(15000); //15초 대기
                }else{
                    PwsApiLogVO logVo = new PwsApiLogVO();
                    logVo.setOrderSubNum(orderSubNum);
                    logVo.setTransactionId(transactionId);
                    logVo.setStatus(status);
                    //logVo.setCode(code);
                    logVo.setMessage(message);
                    logVo.setRegistUserId(userId);
                    dao.insertData(logVo);
                    flag = false;
                }
                
            }
        }catch(Exception e){
            System.out.println("++++++ " + orderSubNum + " : " + transactionId + " (" + cnt + ") 실패 ++++++ ");
            e.printStackTrace();
        }
        
        
    }
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

'web > java' 카테고리의 다른 글

[java] 정규식을 이용한 개인정보 마스킹  (0) 2020.04.09
java timestamp  (0) 2020.04.01
java jsonObject 처리  (0) 2020.04.01
엑셀 다운로드시 로딩바 보이게  (0) 2020.03.13

return void 로 submit 하게 되면 리턴 값이 없어서 엑셀 다운로드 완료여부를 알수가 없다

 

그래서 세션에 담아 체크 하도록 구현

 

 

*********  jsp

 

 

====엑셀 다운로드 시작 ====

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
function excelDown(){
    
    var message = bnsYear + "년도 내역을 엑셀형태로 다운받으시겠습니까?";
    if(confirm(message)){
        maskShow();
        var frm = document.excel_form;
        frm.submit();
        
//엑셀 다운로드(submit) 실행후 일정시간동안 완료 세션 
        FILEDOWNLOAD_INTERVAL = setInterval(function() {
            $.ajax({
                type:'POST',
                url:"<c:url value='/getFlag.do' />",                    
                data:{},
                dataType:'json',
                success:function(data){
                    if(data.result == 'true'){
                        initFlag();
                        maskHide();
                        clearInterval(FILEDOWNLOAD_INTERVAL);
                    }
                } 
            });
        }, 500);
    }
}
 
//세션 초기화
function initFlag(){
    $.ajax({
        type:'POST',
        url:"<c:url value='/initFlag.do' />",                    
        data:{},
        dataType:'json',
        success:function(data){
            
        } 
        
    });
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

 

 

*********  java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@RequestMapping(value="/getFlag.do")
    public ModelAndView getFlag(HttpServletRequest request,
            ModelMap model) throws  Exception{
        
        ModelAndView mv = new ModelAndView(new AjaxView());
        JSONObject json = new JSONObject();
        
        String result = EgovStringUtil.nullConvert(WcSessionUtil.getAttribute("downFlag")); 
        
        json.put("result", result);
        mv.addObject("view", json.toString());
        return mv;
        
    }
    
    @RequestMapping(value="/initFlag.do")
    public ModelAndView setFlag(HttpServletRequest request,
            ModelMap model) throws  Exception{
        
        ModelAndView mv = new ModelAndView(new AjaxView());
        JSONObject json = new JSONObject();
        
        WcSessionUtil.setAttribute("downFlag"null);
        
        String result = "Y";
        json.put("result", result);
        mv.addObject("view", json.toString());
        return mv;
        
    }
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
 

 

 

다운로드 액션에서

WcSessionUtil.setAttribute("downFlag", "true"); //다운로드 완료 세션 추가

마지막에 추가

'web > java' 카테고리의 다른 글

[java] 정규식을 이용한 개인정보 마스킹  (0) 2020.04.09
java timestamp  (0) 2020.04.01
java jsonObject 처리  (0) 2020.04.01
java 비동기 처리 하기  (0) 2020.04.01

+ Recent posts