OOZIE-1957 Coord update command override group when oozie.service.AuthorizationService.default.group.as.acl is set and group/acl is not configured in job property
Project: http://git-wip-us.apache.org/repos/asf/oozie/repo Commit: http://git-wip-us.apache.org/repos/asf/oozie/commit/1bbc2dec Tree: http://git-wip-us.apache.org/repos/asf/oozie/tree/1bbc2dec Diff: http://git-wip-us.apache.org/repos/asf/oozie/diff/1bbc2dec Branch: refs/remotes/trunk Commit: 1bbc2decf36238b18ba6c69b2fe623524407c0cc Parents: 17defc4 Author: Purshotam Shah <[email protected]> Authored: Tue Sep 9 13:52:15 2014 -0700 Committer: Purshotam Shah <[email protected]> Committed: Tue Sep 9 13:52:15 2014 -0700 ---------------------------------------------------------------------- .../oozie/command/coord/CoordUpdateXCommand.java | 2 +- .../java/org/apache/oozie/servlet/BaseJobServlet.java | 14 ++++++++++++-- .../java/org/apache/oozie/servlet/V0JobServlet.java | 4 ++-- .../java/org/apache/oozie/servlet/V1JobServlet.java | 4 ++-- .../java/org/apache/oozie/servlet/V2JobServlet.java | 6 ++---- release-log.txt | 1 + 6 files changed, 20 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/oozie/blob/1bbc2dec/core/src/main/java/org/apache/oozie/command/coord/CoordUpdateXCommand.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/command/coord/CoordUpdateXCommand.java b/core/src/main/java/org/apache/oozie/command/coord/CoordUpdateXCommand.java index f0da560..6647ef8 100644 --- a/core/src/main/java/org/apache/oozie/command/coord/CoordUpdateXCommand.java +++ b/core/src/main/java/org/apache/oozie/command/coord/CoordUpdateXCommand.java @@ -118,7 +118,7 @@ public class CoordUpdateXCommand extends CoordSubmitXCommand { LogUtils.setLogInfo(oldCoordJob); if (!isConfChange) { try { - conf = new XConfiguration(new StringReader(coordJob.getConf())); + conf = new XConfiguration(new StringReader(oldCoordJob.getConf())); } catch (Exception e) { throw new CommandException(ErrorCode.E1023, e.getMessage(), e); http://git-wip-us.apache.org/repos/asf/oozie/blob/1bbc2dec/core/src/main/java/org/apache/oozie/servlet/BaseJobServlet.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/servlet/BaseJobServlet.java b/core/src/main/java/org/apache/oozie/servlet/BaseJobServlet.java index f651d5c..11835ed 100644 --- a/core/src/main/java/org/apache/oozie/servlet/BaseJobServlet.java +++ b/core/src/main/java/org/apache/oozie/servlet/BaseJobServlet.java @@ -163,8 +163,17 @@ public abstract class BaseJobServlet extends JsonRestServlet { } else if (action.equals(RestConstants.JOB_COORD_UPDATE)) { validateContentType(request, RestConstants.XML_CONTENT_TYPE); + Configuration conf = new XConfiguration(request.getInputStream()); stopCron(); - JSONObject json = updateJob(request, response); + String requestUser = getUser(request); + if (!requestUser.equals(UNDEF)) { + conf.set(OozieClient.USER_NAME, requestUser); + } + if (conf.get(OozieClient.COORDINATOR_APP_PATH) != null) { + BaseJobServlet.checkAuthorizationForApp(conf); + JobUtils.normalizeAppPath(conf.get(OozieClient.USER_NAME), conf.get(OozieClient.GROUP_NAME), conf); + } + JSONObject json = updateJob(request, response, conf); startCron(); sendJsonResponse(response, HttpServletResponse.SC_OK, json); } @@ -446,11 +455,12 @@ public abstract class BaseJobServlet extends JsonRestServlet { * * @param request the request * @param response the response + * @param Configuration conf * @return the JSON object * @throws XServletException the x servlet exception * @throws IOException Signals that an I/O exception has occurred. */ - abstract JSONObject updateJob(HttpServletRequest request, HttpServletResponse response) + abstract JSONObject updateJob(HttpServletRequest request, HttpServletResponse response, Configuration conf) throws XServletException, IOException; } http://git-wip-us.apache.org/repos/asf/oozie/blob/1bbc2dec/core/src/main/java/org/apache/oozie/servlet/V0JobServlet.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/servlet/V0JobServlet.java b/core/src/main/java/org/apache/oozie/servlet/V0JobServlet.java index 508538d..eb699e6 100644 --- a/core/src/main/java/org/apache/oozie/servlet/V0JobServlet.java +++ b/core/src/main/java/org/apache/oozie/servlet/V0JobServlet.java @@ -217,8 +217,8 @@ public class V0JobServlet extends BaseJobServlet { } @Override - protected JSONObject updateJob(HttpServletRequest request, HttpServletResponse response) throws XServletException, - IOException { + protected JSONObject updateJob(HttpServletRequest request, HttpServletResponse response, Configuration conf) + throws XServletException, IOException { throw new XServletException(HttpServletResponse.SC_BAD_REQUEST, ErrorCode.E0302, "Not supported in v0"); } http://git-wip-us.apache.org/repos/asf/oozie/blob/1bbc2dec/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java b/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java index 6427989..396661a 100644 --- a/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java +++ b/core/src/main/java/org/apache/oozie/servlet/V1JobServlet.java @@ -1085,8 +1085,8 @@ public class V1JobServlet extends BaseJobServlet { * not supported for v1 */ @Override - protected JSONObject updateJob(HttpServletRequest request, HttpServletResponse response) throws XServletException, - IOException { + protected JSONObject updateJob(HttpServletRequest request, HttpServletResponse response, Configuration conf) + throws XServletException, IOException { throw new XServletException(HttpServletResponse.SC_BAD_REQUEST, ErrorCode.E0302, "Not supported in v1"); } } http://git-wip-us.apache.org/repos/asf/oozie/blob/1bbc2dec/core/src/main/java/org/apache/oozie/servlet/V2JobServlet.java ---------------------------------------------------------------------- diff --git a/core/src/main/java/org/apache/oozie/servlet/V2JobServlet.java b/core/src/main/java/org/apache/oozie/servlet/V2JobServlet.java index b7b9be9..de4f865 100644 --- a/core/src/main/java/org/apache/oozie/servlet/V2JobServlet.java +++ b/core/src/main/java/org/apache/oozie/servlet/V2JobServlet.java @@ -42,7 +42,6 @@ import org.apache.oozie.command.CommandException; import org.apache.oozie.service.CoordinatorEngineService; import org.apache.oozie.service.DagEngineService; import org.apache.oozie.service.Services; -import org.apache.oozie.util.XConfiguration; import org.json.simple.JSONObject; @SuppressWarnings("serial") @@ -103,13 +102,12 @@ public class V2JobServlet extends V1JobServlet { */ @SuppressWarnings("unchecked") @Override - protected JSONObject updateJob(HttpServletRequest request, HttpServletResponse response) throws XServletException, - IOException { + protected JSONObject updateJob(HttpServletRequest request, HttpServletResponse response, Configuration conf) + throws XServletException, IOException { CoordinatorEngine coordEngine = Services.get().get(CoordinatorEngineService.class) .getCoordinatorEngine(getUser(request)); JSONObject json = new JSONObject(); try { - Configuration conf= new XConfiguration(request.getInputStream()); String jobId = getResourceName(request); boolean dryrun = StringUtils.isEmpty(request.getParameter(RestConstants.JOB_ACTION_DRYRUN)) ? false : Boolean.parseBoolean(request.getParameter(RestConstants.JOB_ACTION_DRYRUN)); http://git-wip-us.apache.org/repos/asf/oozie/blob/1bbc2dec/release-log.txt ---------------------------------------------------------------------- diff --git a/release-log.txt b/release-log.txt index dd5131a..e73eb75 100644 --- a/release-log.txt +++ b/release-log.txt @@ -1,5 +1,6 @@ -- Oozie 4.2.0 release (trunk - unreleased) +OOZIE-1957 Coord update command override group when oozie.service.AuthorizationService.default.group.as.acl is set and group/acl is not configured in job property (puru) OOZIE-1818 CoordMaterializeTransitionXCommand verifyPrecondition doesn't verify current time (puru) OOZIE-1653 Support ALL to allowed error code of the user retry (seoeun25 via rkanter) OOZIE-1923 ZKLocksService locks are not re-entrant like MemoryLocks (puru)
