diff --git a/wrangler-service/src/main/java/io/cdap/wrangler/service/common/AbstractWranglerHandler.java b/wrangler-service/src/main/java/io/cdap/wrangler/service/common/AbstractWranglerHandler.java index d1563d4cc..8154cbc5d 100644 --- a/wrangler-service/src/main/java/io/cdap/wrangler/service/common/AbstractWranglerHandler.java +++ b/wrangler-service/src/main/java/io/cdap/wrangler/service/common/AbstractWranglerHandler.java @@ -22,6 +22,7 @@ import io.cdap.cdap.api.service.http.HttpServiceRequest; import io.cdap.cdap.api.service.http.HttpServiceResponder; import io.cdap.cdap.api.service.worker.RemoteExecutionException; +import io.cdap.cdap.security.spi.authorization.UnauthorizedException; import io.cdap.cdap.spi.data.transaction.TransactionRunners; import io.cdap.wrangler.api.RecipeException; import io.cdap.wrangler.dataset.connections.ConnectionNotFoundException; @@ -215,6 +216,8 @@ protected void respond(HttpServiceResponder responder, String namespace, } catch (RemoteExecutionException e) { responder.sendJson(getErrorCode(e.getCause().getRemoteExceptionClassName()), new io.cdap.wrangler.proto.workspace.v2.ServiceResponse<>(e.getMessage())); + } catch (UnauthorizedException e) { + responder.sendJson(e.getStatusCode(), new io.cdap.wrangler.proto.workspace.v2.ServiceResponse<>(e.getMessage())); } catch (Throwable t) { responder.sendJson(HttpURLConnection.HTTP_INTERNAL_ERROR, new io.cdap.wrangler.proto.workspace.v2.ServiceResponse<>((t.getMessage())));