mirror of https://github.com/apache/jclouds.git
fix and test for 682, disallowing root as the AdminAccess target
This commit is contained in:
parent
9fc33dc120
commit
181bc4ead8
|
@ -35,6 +35,7 @@ import org.jclouds.scriptbuilder.domain.StatementList;
|
|||
import org.jclouds.scriptbuilder.statements.ssh.SshStatements;
|
||||
|
||||
import com.google.common.base.Function;
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.google.common.base.Supplier;
|
||||
import com.google.common.base.Throwables;
|
||||
import com.google.common.collect.ImmutableList;
|
||||
|
@ -344,6 +345,8 @@ public class AdminAccess implements Statement {
|
|||
if (family == OsFamily.WINDOWS)
|
||||
throw new UnsupportedOperationException("windows not yet implemented");
|
||||
checkNotNull(config.getAdminUsername(), "adminUsername");
|
||||
Preconditions.checkArgument(!"root".equals(config.getAdminUsername()), "cannot create admin user 'root'; " +
|
||||
"ensure jclouds is not running as root, or specify an explicit non-root username in AdminAccess");
|
||||
checkNotNull(config.getAdminPassword(), "adminPassword");
|
||||
checkNotNull(config.getAdminPublicKey(), "adminPublicKey");
|
||||
checkNotNull(config.getAdminPrivateKey(), "adminPrivateKey");
|
||||
|
|
|
@ -76,4 +76,16 @@ public class AdminAccessTest {
|
|||
public void testCreateWheelWindowsNotSupported() {
|
||||
AdminAccess.standard().init(TestConfiguration.INSTANCE).render(OsFamily.WINDOWS);
|
||||
}
|
||||
|
||||
@Test(expectedExceptions=IllegalArgumentException.class)
|
||||
//for issue 682
|
||||
public void testRootNotAllowed() throws IOException {
|
||||
TestConfiguration.INSTANCE.reset();
|
||||
try {
|
||||
AdminAccess.builder().adminUsername("root").build().init(TestConfiguration.INSTANCE).render(OsFamily.UNIX);
|
||||
} finally {
|
||||
TestConfiguration.INSTANCE.reset();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue