authentication


authentication 은 HSP 에서 기본으로 제공하는 API로 별도의 설정 없이 사용 가능하다.
authentication는 허브와 HSP 간 동작 예제를 위해 만들어졌으며 사용자는 이 코드를 이용해 허브와 통신하는 데이터 구조와 헤더 정보등을 파악할 수 있다.

이때 허브와 통신하는 데이터를 입력하기 위해서는 아래 MessageContainer 클래스를 이용하여 데이터를 입력해야 하며 각각의 정보는 하단의 표를 참조 한다.

MessageContainer Class

public final class MessageContainer<T> implements Serializable {
    private Map<String, Object> context;
    private HoneMobileMessage<T> message;
}

HoneMobileMessage Class

public final class HoneMobileMessage<P> implements Serializable {
    private Map<String, Object> header;
    private P payload;
}

doLogin

doLogin 은 허브에 사용자 아이디와 사용자 비밀번호를 전달 하여 로그인을 요청하고 결과로 AuthToken 또는 세션을 전달 받는다.

options

필드필드설명M/O
context 서버로 데이터 전송에 필요한 정보M
targetName서버이름, OP가 미리 정의되어 있어야 함M
serviceCategory서비스 카테고리M
serviceName서비스 이름M
message Header 와 Playload 로 구성되며 서버로 전송되는 실제 패킷.
개발 시에는 서버와 비즈앱 간의 합의된 규격서를 기반으로 작성된다. 
M
header패킷 공통 정보O
payload전송 데이터M
     

Example

Executors.newSingleThreadExecutor().execute {
   val activity = this@MainActivity

   val header = hashMapOf<String, Any>()
   val msgContainer = MessageContainer(hashMapOf<String, Any>().apply {
       this["targetName"] = "hub1"
       this["serviceCategory"] = "default"
       this["serviceName"] = "login"
    }, HoneMobileMessage<Map<String, Any>>(header, hashMapOf<String, Any>().apply {
       this["username"] = "jim"
       this["password"] = "jim"
    }))

    DAPAuthentication.doLogin(activity, msgContainer, {
       // TODO
   }) {
       // TODO
   }
}

Executors.newSingleThreadExecutor().execute(() -> {
    Activity activity = MainActivity.this;

    Map<String, Object> context = new HashMap<>();
    context.put("targetName", "hub1");
    context.put("serviceCategory", "default");
    context.put("serviceName", "login");

    Map<String, Object> header = new HashMap<>();
    Map<String, String> loginInfo = new HashMap<>();
    loginInfo.put("username", "jim");
    loginInfo.put("password", "jim");

    HoneMobileMessage message = new HoneMobileMessage<Map>(header, loginInfo);
    MessageContainer msgContainer = new MessageContainer(context, message);

    DAPAuthentication.doLogin(activity, msgContainer, result -> {
       // TODO
   }, e -> {
       // TODO
   });
});

doLogout

doLogout 은 허브에 로그인하여 전달 받은 AuthToken을 삭제 하고 로그아웃 정보를 서버에 전달 한다. 

options

필드필드설명M/O
context 서버로 데이터 전송에 필요한 정보M
targetName서버이름, OP가 미리 정의되어 있어야 함M
serviceCategory서비스 카테고리M
serviceName서비스 이름M
message Header 와 Playload 로 구성되며 서버로 전송되는 실제 패킷.
개발 시에는 서버와 비즈앱 간의 합의된 규격서를 기반으로 작성된다. 
O
header패킷 공통 정보O
payload전송 데이터O
    

Example

Executors.newSingleThreadExecutor().execute {
   val activity = this@MainActivity

   val header = hashMapOf<String, Any>()
   val logoutInfo = hashMapOf<String, Any>()
   val msgContainer = MessageContainer(hashMapOf<String, Any>().apply {
       this["targetName"] = "hub1"
       this["serviceCategory"] = "default"
       this["serviceName"] = "logout"
    }, HoneMobileMessage<Map<String, Any>>(header, logoutInfo))

    DAPAuthentication.doLogout(activity, msgContainer, {
       // TODO
   }) {
       // TODO
   }
}
Executors.newSingleThreadExecutor().execute(() -> {
    Activity activity = MainActivity.this;

    Map<String, Object> context = new HashMap<>();
    context.put("targetName", "hub1");
    context.put("serviceCategory", "default");
    context.put("serviceName", "logout");

    Map<String, Object> header = new HashMap<>();
    Map<String, String> logoutInfo = new HashMap<>();

    HoneMobileMessage message = new HoneMobileMessage<Map>(header, logoutInfo);
    MessageContainer msgContainer = new MessageContainer(context, message);

    DAPAuthentication.doLogout(activity, msgContainer, value -> {
       // TODO
   }, e -> {
       // TODO
   });
});

Error Code

CodeCauseComment
E10100파라메터 값이 잘못되어 있을 경우 
E10101전달된 액션 값이 알 수 없는 액션일 경우 
E10102서버로 데이터 전송에 필요한 정보가 잘못되어 있을 경우 
E10103서버로 전송되는 실제 패킷 정보가 잘못되어 있을 경우 
E10104서버 이름이 잘못되어 있을 경우 
E10105서비스 카테고리가 잘못되어 있을 경우 
E10106서비스 이름이 잘못되어 있을 경우 
E10107전송 데이터가 잘못되어 있을 경우 
E10150실행 중 오류가 발생 되었을 경우 
E10151서버로 부터 전달받은 응답 메시지가 없는 경우 
E10152서버로 부터 전달받은 응답 메시지가 잘못되어 있는 경우 
E10199알 수 없는 오류가 발생 되었을 경우