Initial commit

This commit is contained in:
2026-05-29 17:49:25 +09:00
commit 330105cb27
1081 changed files with 148694 additions and 0 deletions
@@ -0,0 +1,85 @@
= 메신저
== 개요
Knox Portal에서 제공하는 메신저 관련 Rest API 를 이용한 연계 서비스 제공
=== Knox REST API 연계 서비스 신청
Knox REST API 연계 서비스 신청은 <<_knox_rest_api_연계_서비스_신청,Knox REST API 연계 서비스 신청>> 항목을 참조한다.
=== Knox Rest 메신저 연계 설정
메일, 결재 Knox Rest API 연계와 마찬가지로 연계를 위한 사전 준비가 되었다면, knox.properties 에 메신저 관련 설정이 되어 있는지 확인한다.
.knox.properties
[source,properties]
----
knox.messenger.contact-service=/messenger/contact/api/v1.0
knox.messenger.msgctx-service=/messenger/msgctx/api/v1.0
knox.messenger.message-service=/messenger/message/api/v1.0
----
=== Knox 메신저 연계 서비스
REST를 통해서 메신저와 연계하는 서비스로 주요 메서드는 KnoxMessengerService 인터페이스에 정의되어 있다.
[source, java]
----
public interface KnoxMessengerService {
/**
* 디바이스 ID 조회 : 사용자 ID 와 맵핑되는 단말의 ID 값
* @return 디바이스 ID
*/
String getDeviceId();
/**
* 메시지 암호화 키 조회 : 메시지를 암호화하기 위한 키 값
* @param deviceId 디바이스 ID
* @return 메시지 암호화 키
*/
String getKey(String deviceId);
/**
* Knox Potal login ID를 이용하여 Knox Messenger 수신자들을 조회한다.
* @param deviceId 디바이스 ID
* @param singleIds 수신자 Knox ID 리스트
* @return Knox Messenger 수신자 ID 리스트
*/
List<String> getUserIds(String deviceId, List<String> singleIds);
/**
* 공지 메시지를 발신할 대화방이 없는 경우 신규 대화방 생성을 요청한다.
* @param deviceId 디바이스 ID
* @param key 암호화 키
* @param userIds Knox Messenger 수신자 ID 리스트
* @return 대화방 생성 요청 응답 결과
*/
Map<String, Object> createChatroom(String deviceId, String key, List<String> userIds);
/**
* Message 서버 API 에서 필요한 암호화된 바디를 만들기 위한 function
* @param key - msgCtx 를 통해 전달받은 key 값
* @param body - 암호화 해야 될 String
* @return 암호화된 String
*/
String encrypt(String key, String body);
/**
* Response 로 전달된 암호화 body 를 복호화 하기 위한 function <br/>
* 암호화의 역순으로 Base64 복호화 -> AES256 복호화
* @param body - 암호화 되어 있는 body
* @return 복호화된 response String
*/
String decrypt(String body);
/**
* 신규 생성한 대화방 또는 기존에 사용중인 대화방에 공지 메시지를 발송한다.
* @param deviceId 디바이스 ID
* @param key 암호화 키
* @param chatroomId 생성된 대화방 ID
* @param chatMsg 메시지 내용
* @return 메시지 발신 요청 응답 결과
*/
Map<String, Object> chat(String deviceId, String key, String chatroomId, String chatMsg);
}
----
자세한 API 스펙은 Swagger API 문서의 knox-messenger-controller 항목을 참고한다.