/** * Creates context with given option data. * * @param optionsBuilder the options builder */ protected CreatePathContext(T optionsBuilder) { super(optionsBuilder); mMountPoint = false; mOperationTimeMs = System.currentTimeMillis(); mAcl = Collections.emptyList(); mMetadataLoad = false; mGroup = ""; mOwner = ""; if (SecurityUtils.isAuthenticationEnabled(ServerConfiguration.global())) { mOwner = SecurityUtils.getOwnerFromGrpcClient(ServerConfiguration.global()); mGroup = SecurityUtils.getGroupFromGrpcClient(ServerConfiguration.global()); } // Initialize mPersisted based on proto write type. WritePType writeType = WritePType.NONE; if (optionsBuilder instanceof CreateFilePOptions.Builder) { writeType = ((CreateFilePOptions.Builder) optionsBuilder).getWriteType(); } else if (optionsBuilder instanceof CreateDirectoryPOptions.Builder) { writeType = ((CreateDirectoryPOptions.Builder) optionsBuilder).getWriteType(); } mPersisted = WriteType.fromProto(writeType).isThrough(); }
/** * Tests the {@link SecurityUtils#getOwnerFromGrpcClient()} ()} method. */ @Test public void getOwnerFromGrpcClient() throws Exception { // When security is not enabled, user and group are not set mConfiguration.set(PropertyKey.SECURITY_AUTHENTICATION_TYPE, AuthType.NOSASL.getAuthName()); Assert.assertEquals("", SecurityUtils.getOwnerFromGrpcClient(mConfiguration)); mConfiguration.set(PropertyKey.SECURITY_AUTHENTICATION_TYPE, AuthType.SIMPLE.getAuthName()); mConfiguration.set(PropertyKey.SECURITY_GROUP_MAPPING_CLASS, IdentityUserGroupsMapping.class.getName()); AuthenticatedClientUser.set("test_client_user"); Assert.assertEquals("test_client_user", SecurityUtils.getOwnerFromGrpcClient(mConfiguration)); }
private AlluxioURI createTestFile() throws Exception { AlluxioURI path = new AlluxioURI("/" + CommonUtils.randomAlphaNumString(10)); String owner = SecurityUtils.getOwnerFromGrpcClient(ServerConfiguration.global()); String group = SecurityUtils.getGroupFromGrpcClient(ServerConfiguration.global()); mFileSystemMaster.createFile(path, CreateFileContext .defaults( CreateFilePOptions.newBuilder().setMode(Mode.createFullAccess().toProto())) .setOwner(owner).setGroup(group)); mFileSystemMaster.completeFile(path, CompleteFileContext.defaults()); return path; }
private void verifyCreateFile(TestUser user, String path, boolean recursive) throws Exception { try (Closeable r = new AuthenticatedUserRule(user.getUser(), ServerConfiguration.global()).toResource()) { CreateFileContext context = CreateFileContext .defaults( CreateFilePOptions.newBuilder().setRecursive(recursive)) .setOwner(SecurityUtils.getOwnerFromGrpcClient(ServerConfiguration.global())) .setGroup(SecurityUtils.getGroupFromGrpcClient(ServerConfiguration.global())) .setPersisted(true); long fileId = mFileSystemMaster.createFile(new AlluxioURI(path), context); FileInfo fileInfo = mFileSystemMaster.getFileInfo(fileId); String[] pathComponents = path.split("/"); assertEquals(pathComponents[pathComponents.length - 1], fileInfo.getName()); assertEquals(user.getUser(), fileInfo.getOwner()); } }
private void verifyCreateDirectory(TestUser user, String path, boolean recursive) throws Exception { try (Closeable r = new AuthenticatedUserRule(user.getUser(), ServerConfiguration.global()).toResource()) { CreateDirectoryContext context = CreateDirectoryContext .defaults(CreateDirectoryPOptions.newBuilder().setRecursive(recursive)) .setOwner(SecurityUtils.getOwnerFromGrpcClient(ServerConfiguration.global())) .setGroup(SecurityUtils.getGroupFromGrpcClient(ServerConfiguration.global())); mFileSystemMaster.createDirectory(new AlluxioURI(path), context); FileInfo fileInfo = mFileSystemMaster.getFileInfo(mFileSystemMaster.getFileId(new AlluxioURI(path))); String[] pathComponents = path.split("/"); assertEquals(pathComponents[pathComponents.length - 1], fileInfo.getName()); assertEquals(true, fileInfo.isFolder()); assertEquals(user.getUser(), fileInfo.getOwner()); } }