mirror of https://github.com/OpenVidu/openvidu.git
openvidu-server: KurentoOptions parameters type check
parent
7ce6826b62
commit
0ab3add07c
|
@ -500,7 +500,7 @@ public class KurentoSessionManager extends SessionManager {
|
|||
}
|
||||
|
||||
@Override
|
||||
public KurentoMediaOptions generateMediaOptions(Request<JsonObject> request) {
|
||||
public KurentoMediaOptions generateMediaOptions(Request<JsonObject> request) throws OpenViduException {
|
||||
|
||||
String sdpOffer = RpcHandler.getStringParam(request, ProtocolElements.PUBLISHVIDEO_SDPOFFER_PARAM);
|
||||
boolean hasAudio = RpcHandler.getBooleanParam(request, ProtocolElements.PUBLISHVIDEO_HASAUDIO_PARAM);
|
||||
|
@ -534,8 +534,17 @@ public class KurentoSessionManager extends SessionManager {
|
|||
try {
|
||||
JsonObject kurentoFilterJson = (JsonObject) RpcHandler.getParam(request,
|
||||
ProtocolElements.PUBLISHVIDEO_KURENTOFILTER_PARAM);
|
||||
kurentoFilter = new KurentoFilter(kurentoFilterJson.get("type").getAsString(),
|
||||
kurentoFilterJson.get("options").getAsJsonObject());
|
||||
if (kurentoFilterJson != null) {
|
||||
try {
|
||||
kurentoFilter = new KurentoFilter(kurentoFilterJson.get("type").getAsString(),
|
||||
kurentoFilterJson.get("options").getAsJsonObject());
|
||||
} catch (Exception e) {
|
||||
throw new OpenViduException(Code.FILTER_NOT_APPLIED_ERROR_CODE,
|
||||
"'filter' parameter wrong:" + e.getMessage());
|
||||
}
|
||||
}
|
||||
} catch (OpenViduException e) {
|
||||
throw e;
|
||||
} catch (RuntimeException noParameterFound) {
|
||||
}
|
||||
|
||||
|
|
|
@ -218,7 +218,12 @@ public class SessionRestController {
|
|||
String sessionId = (String) params.get("session");
|
||||
String roleString = (String) params.get("role");
|
||||
String metadata = (String) params.get("data");
|
||||
JsonObject kurentoOptions = new JsonParser().parse(params.get("kurentoOptions").toString()).getAsJsonObject();
|
||||
|
||||
JsonObject kurentoOptions = null;
|
||||
|
||||
if (params.get("kurentoOptions") != null) {
|
||||
kurentoOptions = new JsonParser().parse(params.get("kurentoOptions").toString()).getAsJsonObject();
|
||||
}
|
||||
|
||||
ParticipantRole role;
|
||||
try {
|
||||
|
|
|
@ -33,6 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.google.gson.JsonSyntaxException;
|
||||
|
||||
import io.openvidu.client.OpenViduException;
|
||||
import io.openvidu.client.OpenViduException.Code;
|
||||
|
@ -375,8 +376,14 @@ public class RpcHandler extends DefaultJsonRpcHandler<JsonObject> {
|
|||
|
||||
String filterType = getStringParam(request, ProtocolElements.FILTER_TYPE_PARAM);
|
||||
if (participant.getToken().getKurentoTokenOptions().isFilterAllowed(filterType)) {
|
||||
JsonObject filterOptions = new JsonParser().parse(getStringParam(request, ProtocolElements.FILTER_OPTIONS_PARAM))
|
||||
.getAsJsonObject();
|
||||
JsonObject filterOptions;
|
||||
try {
|
||||
filterOptions = new JsonParser().parse(getStringParam(request, ProtocolElements.FILTER_OPTIONS_PARAM))
|
||||
.getAsJsonObject();
|
||||
} catch (JsonSyntaxException e) {
|
||||
throw new OpenViduException(Code.FILTER_NOT_APPLIED_ERROR_CODE,
|
||||
"'options' parameter is not a JSON object: " + e.getMessage());
|
||||
}
|
||||
String streamId = getStringParam(request, ProtocolElements.FILTER_STREAMID_PARAM);
|
||||
sessionManager.applyFilter(sessionManager.getSession(rpcConnection.getSessionId()), streamId, filterType,
|
||||
filterOptions, null, request.getId(), "applyFilter");
|
||||
|
|
Loading…
Reference in New Issue