authentication
Contents
authentication 은 HSP 에서 기본으로 제공하는 API로 별도의 설정 없이 사용 가능하다.
authentication는 허브와 HSP 간 동작 예제를 위해 만들어졌으며 사용자는 이 코드를 이용해 허브와 통신하는 데이터 구조와 헤더 정보등을 파악할 수 있다.
이때 허브와 통신하는 데이터를 입력하기 위해서는 아래 MessageContainer 클래스를 이용하여 데이터를 입력해야 하며 각각의 정보는 하단의 표를 참조 한다.
MessageContainer Class
public final class MessageContainer<T> implements Serializable {
private Map<String, Object> context;
private HoneMobileMessage<T> message;
}
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;
}
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
}
}
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
}
}
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
});
});
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
Code | Cause | Comment |
---|---|---|
E10100 | 파라메터 값이 잘못되어 있을 경우 | |
E10101 | 전달된 액션 값이 알 수 없는 액션일 경우 | |
E10102 | 서버로 데이터 전송에 필요한 정보가 잘못되어 있을 경우 | |
E10103 | 서버로 전송되는 실제 패킷 정보가 잘못되어 있을 경우 | |
E10104 | 서버 이름이 잘못되어 있을 경우 | |
E10105 | 서비스 카테고리가 잘못되어 있을 경우 | |
E10106 | 서비스 이름이 잘못되어 있을 경우 | |
E10107 | 전송 데이터가 잘못되어 있을 경우 | |
E10150 | 실행 중 오류가 발생 되었을 경우 | |
E10151 | 서버로 부터 전달받은 응답 메시지가 없는 경우 | |
E10152 | 서버로 부터 전달받은 응답 메시지가 잘못되어 있는 경우 | |
E10199 | 알 수 없는 오류가 발생 되었을 경우 | |