Author: rkanter
Date: Wed Jan 16 01:53:37 2013
New Revision: 1433796
URL: http://svn.apache.org/viewvc?rev=1433796&view=rev
Log:
OOZIE-1166 Print a more helpful message when ProxyUserService is configured
wrong (rkanter)
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/service/ProxyUserService.java
oozie/trunk/core/src/main/java/org/apache/oozie/util/ParamChecker.java
oozie/trunk/core/src/test/java/org/apache/oozie/service/TestProxyUserService.java
oozie/trunk/release-log.txt
Modified:
oozie/trunk/core/src/main/java/org/apache/oozie/service/ProxyUserService.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/service/ProxyUserService.java?rev=1433796&r1=1433795&r2=1433796&view=diff
==============================================================================
---
oozie/trunk/core/src/main/java/org/apache/oozie/service/ProxyUserService.java
(original)
+++
oozie/trunk/core/src/main/java/org/apache/oozie/service/ProxyUserService.java
Wed Jan 16 01:53:37 2013
@@ -128,8 +128,14 @@ public class ProxyUserService implements
*/
public void validate(String proxyUser, String proxyHost, String doAsUser)
throws IOException,
AccessControlException {
- ParamChecker.notEmpty(proxyUser, "proxyUser");
- ParamChecker.notEmpty(proxyHost, "proxyHost");
+ ParamChecker.notEmpty(proxyUser, "proxyUser",
+ "If you're attempting to use user-impersonation via a proxy
user, please make sure that "
+ + "oozie.service.ProxyUserService.proxyuser.#USER#.hosts and "
+ + "oozie.service.ProxyUserService.proxyuser.#USER#.groups are
configured correctly");
+ ParamChecker.notEmpty(proxyHost, "proxyHost",
+ "If you're attempting to use user-impersonation via a proxy
user, please make sure that "
+ + "oozie.service.ProxyUserService.proxyuser." + proxyUser +
".hosts and "
+ + "oozie.service.ProxyUserService.proxyuser." + proxyUser +
".groups are configured correctly");
ParamChecker.notEmpty(doAsUser, "doAsUser");
LOG.debug("Authorization check proxyuser [{0}] host [{1}] doAs [{2}]",
new Object[]{proxyUser, proxyHost, doAsUser});
Modified: oozie/trunk/core/src/main/java/org/apache/oozie/util/ParamChecker.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/util/ParamChecker.java?rev=1433796&r1=1433795&r2=1433796&view=diff
==============================================================================
--- oozie/trunk/core/src/main/java/org/apache/oozie/util/ParamChecker.java
(original)
+++ oozie/trunk/core/src/main/java/org/apache/oozie/util/ParamChecker.java Wed
Jan 16 01:53:37 2013
@@ -64,11 +64,23 @@ public class ParamChecker {
* @return the given value.
*/
public static String notEmpty(String str, String name) {
+ return notEmpty(str, name, null);
+ }
+
+ /**
+ * Check that a string is not null and not empty. If null or emtpy throws
an IllegalArgumentException.
+ *
+ * @param str value.
+ * @param name parameter name for the exception message.
+ * @param info additional information to be printed with the exception
message
+ * @return the given value.
+ */
+ public static String notEmpty(String str, String name, String info) {
if (str == null) {
- throw new IllegalArgumentException(name + " cannot be null");
+ throw new IllegalArgumentException(name + " cannot be null" +
(info == null ? "" : ", " + info));
}
if (str.length() == 0) {
- throw new IllegalArgumentException(name + " cannot be empty");
+ throw new IllegalArgumentException(name + " cannot be empty" +
(info == null ? "" : ", " + info));
}
return str;
}
Modified:
oozie/trunk/core/src/test/java/org/apache/oozie/service/TestProxyUserService.java
URL:
http://svn.apache.org/viewvc/oozie/trunk/core/src/test/java/org/apache/oozie/service/TestProxyUserService.java?rev=1433796&r1=1433795&r2=1433796&view=diff
==============================================================================
---
oozie/trunk/core/src/test/java/org/apache/oozie/service/TestProxyUserService.java
(original)
+++
oozie/trunk/core/src/test/java/org/apache/oozie/service/TestProxyUserService.java
Wed Jan 16 01:53:37 2013
@@ -270,5 +270,52 @@ public class TestProxyUserService extend
}
}
+ public void testNullProxyUser() throws Exception {
+ Services services = new Services();
+ Configuration conf = services.getConf();
+ conf.set(Services.CONF_SERVICE_CLASSES, StringUtils.join(",",
Arrays.asList(GroupsService.class.getName(),
+
ProxyUserService.class.getName())));
+ services.init();
+ try {
+ ProxyUserService proxyUser = services.get(ProxyUserService.class);
+ Assert.assertNotNull(proxyUser);
+ proxyUser.validate(null, "localhost", "bar");
+ fail();
+ }
+ catch (IllegalArgumentException ex) {
+
assertTrue(ex.getMessage().contains("oozie.service.ProxyUserService.proxyuser.#USER#.hosts"));
+
assertTrue(ex.getMessage().contains("oozie.service.ProxyUserService.proxyuser.#USER#.groups"));
+ }
+ catch (Exception ex) {
+ fail(ex.toString());
+ }
+ finally {
+ services.destroy();
+ }
+ }
+
+ public void testNullHost() throws Exception {
+ Services services = new Services();
+ Configuration conf = services.getConf();
+ conf.set(Services.CONF_SERVICE_CLASSES, StringUtils.join(",",
Arrays.asList(GroupsService.class.getName(),
+
ProxyUserService.class.getName())));
+ services.init();
+ try {
+ ProxyUserService proxyUser = services.get(ProxyUserService.class);
+ Assert.assertNotNull(proxyUser);
+ proxyUser.validate("foo", null, "bar");
+ fail();
+ }
+ catch (IllegalArgumentException ex) {
+
assertTrue(ex.getMessage().contains("oozie.service.ProxyUserService.proxyuser.foo.hosts"));
+
assertTrue(ex.getMessage().contains("oozie.service.ProxyUserService.proxyuser.foo.groups"));
+ }
+ catch (Exception ex) {
+ fail(ex.toString());
+ }
+ finally {
+ services.destroy();
+ }
+ }
}
Modified: oozie/trunk/release-log.txt
URL:
http://svn.apache.org/viewvc/oozie/trunk/release-log.txt?rev=1433796&r1=1433795&r2=1433796&view=diff
==============================================================================
--- oozie/trunk/release-log.txt (original)
+++ oozie/trunk/release-log.txt Wed Jan 16 01:53:37 2013
@@ -1,5 +1,6 @@
-- Oozie 3.4.0 release (trunk - unreleased)
+OOZIE-1166 Print a more helpful message when ProxyUserService is configured
wrong (rkanter)
OOZIE-1136 Fix MiniOozie (rkanter)
OOZIE-1051 Repeating Errors for workflows that were allreday Killed (rkanter)
OOZIE-1140 TestLogStreamer.testStreamLog fails when its started within the
first 4 seconds after the hour (rkanter)