You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by sp...@apache.org on 2023/09/13 09:26:10 UTC
[iotdb] branch feature/metric-detail updated (70b426b1f50 -> 0a7cd04fffb)
This is an automated email from the ASF dual-hosted git repository.
spricoder pushed a change to branch feature/metric-detail
in repository https://gitbox.apache.org/repos/asf/iotdb.git
from 70b426b1f50 Split schema metrics into database level and add replication factor metrics
add 27b8e5bebae [RatisConsensus] Bump ratis snapshot version to 2.5.2-284ecbb-SNAPSHOT (#11089)
add 5ea3166aa23 Permission mode refine final pr
add 97d9cea38ed Correct the license info of hbase (#11115)
add 7c760f29d00 fix count_time bug
add a5e315d7a99 fox code smell
add 7309e3282f5 Change default encoder of INT32 and INT64 from RLE to TS_2DIFF (#11114)
add f0259706b17 Auth online upgrade
add 3c24fa31750 [IOTDB-6147] Alter view does not check the source path
add 1f7d56f6f4e [IOTDB-6148] Pipe: Fixed the bug that some uncommited progresses may be reported (#11125)
add b49d0fb96f2 Pipe: fix NPE when HybridProgressIndex.updateToMinimumIsAfterProgressIndex after system reboot (DR: SimpleConsensus) (#11126)
add 82188e378a7 [IOTDB-6149] Fix incorrect output of UDF with multiple inputs
add c23013463d2 Pipe: use PipeTaskCoordinatorLock instead of ReentrantLock for multi thread sync (#11129)
add 0abbee3afbf fix session sessionDataSet unclose when use export tsfile tool (#11131)
add ce932ba81e7 Pipe: push down the construction of history events to save memory when large amount of pipes are running (#11067)
add 0a7cd04fffb Merge branch 'master' into feature/metric-detail
No new revisions were added by this update.
Summary of changes:
LICENSE | 4 +-
.../iotdb/it/env/cluster/env/AbstractEnv.java | 10 +
.../iotdb/it/env/remote/env/RemoteServerEnv.java | 7 +
.../java/org/apache/iotdb/itbase/env/BaseEnv.java | 2 +
.../it/database/IoTDBDatabaseSetAndDeleteIT.java | 23 +-
.../it/partition/IoTDBPartitionGetterIT.java | 8 +-
.../org/apache/iotdb/db/it/IOTDBLoadTsFileIT.java | 72 +++
.../apache/iotdb/db/it/{ => auth}/IoTDBAuthIT.java | 523 ++++++++++++++++-----
.../it => db/it/auth}/IoTDBClusterAuthorityIT.java | 208 ++++----
.../iotdb/db/it/auth/IoTDBSeriesPermissionIT.java | 305 ++++++++++++
.../iotdb/db/it/auth/IoTDBSystemPermissionIT.java | 329 +++++++++++++
.../db/it/auth/IoTDBTemplatePermissionIT.java | 161 +++++++
.../java/org/apache/iotdb/db/it/cq/IoTDBCQIT.java | 88 ----
.../iotdb/db/it/schema/IoTDBMetadataFetchIT.java | 8 +-
.../iotdb/db/it/schema/IoTDBSchemaTemplateIT.java | 29 +-
.../iotdb/db/it/selectinto/IoTDBSelectIntoIT.java | 9 +-
.../db/it/trigger/IoTDBTriggerManagementIT.java | 117 +----
.../iotdb/db/it/udf/IoTDBUDFWindowQueryIT.java | 17 +-
.../org/apache/iotdb/db/it/utils/TestUtils.java | 113 ++++-
.../iotdb/session/it/IoTDBSessionComplexIT.java | 163 +++++++
.../java/org/apache/iotdb/tool/ExportTsFile.java | 14 +-
.../java/org/apache/iotdb/rpc/TSStatusCode.java | 4 +
.../org/apache/iotdb/db/qp/sql/IdentifierParser.g4 | 2 +
.../org/apache/iotdb/db/qp/sql/IoTDBSqlParser.g4 | 25 +-
.../antlr4/org/apache/iotdb/db/qp/sql/SqlLexer.g4 | 29 +-
.../consensus/request/ConfigPhysicalPlanType.java | 57 ++-
.../consensus/request/auth/AuthorPlan.java | 19 +
.../request/read/database/CountDatabasePlan.java | 15 +-
.../request/read/database/GetDatabasePlan.java | 5 +-
.../read/partition/GetNodePathsPartitionPlan.java | 12 +
.../read/template/GetPathsSetTemplatePlan.java | 11 +-
.../response/auth/PermissionInfoResp.java | 40 +-
.../statemachine/ConfigRegionStateMachine.java | 4 +-
.../iotdb/confignode/manager/ConfigManager.java | 77 ++-
.../apache/iotdb/confignode/manager/IManager.java | 13 +-
.../confignode/manager/PermissionManager.java | 52 +-
.../iotdb/confignode/manager/ProcedureManager.java | 21 +
.../manager/pipe/task/PipeTaskCoordinator.java | 7 +-
.../manager/pipe/task/PipeTaskCoordinatorLock.java | 73 +++
.../manager/schema/ClusterSchemaManager.java | 16 +-
.../iotdb/confignode/persistence/AuthorInfo.java | 360 +++++++++-----
.../persistence/executor/ConfigPlanExecutor.java | 19 +-
.../confignode/persistence/pipe/PipeTaskInfo.java | 2 +-
.../persistence/schema/ClusterSchemaInfo.java | 27 +-
.../confignode/persistence/schema/ConfigMTree.java | 41 +-
.../impl/pipe/task/CreatePipeProcedureV2.java | 2 +-
.../impl/sync/AuthOperationProcedure.java | 235 +++++++++
.../state/auth/AuthOperationProcedureState.java | 9 +-
.../procedure/store/ProcedureFactory.java | 6 +
.../confignode/procedure/store/ProcedureType.java | 5 +-
.../thrift/ConfigNodeRPCServiceProcessor.java | 63 ++-
.../request/ConfigPhysicalPlanSerDeTest.java | 75 ++-
.../consensus/response/pipe/PipeTableRespTest.java | 6 +-
.../confignode/persistence/AuthorInfoTest.java | 355 +++++++-------
.../iotdb/confignode/persistence/PipeInfoTest.java | 4 +-
.../persistence/schema/ClusterSchemaInfoTest.java | 6 +-
.../persistence/schema/ConfigMTreeTest.java | 44 +-
.../impl/sync/AuthOperationProcedureTest.java | 98 ++++
iotdb-core/consensus/pom.xml | 2 +-
.../org/apache/iotdb/db/auth/AuthorityChecker.java | 384 +++++++--------
.../apache/iotdb/db/auth/AuthorizerManager.java | 432 -----------------
.../apache/iotdb/db/auth/BasicAuthorityCache.java | 12 +-
.../iotdb/db/auth/ClusterAuthorityFetcher.java | 416 ++++++++++++----
.../org/apache/iotdb/db/auth/IAuthorCache.java | 2 +
.../apache/iotdb/db/auth/IAuthorityFetcher.java | 14 +-
.../java/org/apache/iotdb/db/conf/IoTDBConfig.java | 4 +-
...IoTDBThriftSyncPipeTransferBatchReqBuilder.java | 3 +-
.../thrift/async/IoTDBThriftAsyncConnector.java | 2 +-
.../protocol/websocket/WebSocketConnector.java | 3 +-
.../apache/iotdb/db/pipe/event/EnrichedEvent.java | 17 +-
.../event/common/heartbeat/PipeHeartbeatEvent.java | 2 +-
.../tablet/PipeInsertNodeTabletInsertionEvent.java | 3 +-
.../common/tablet/PipeRawTabletInsertionEvent.java | 2 +-
.../common/tsfile/PipeTsFileInsertionEvent.java | 2 +-
.../db/pipe/event/realtime/PipeRealtimeEvent.java | 4 +-
.../PipeHistoricalDataRegionTsFileExtractor.java | 78 +--
.../PipeRealtimeDataRegionHybridExtractor.java | 22 +-
.../PipeRealtimeDataRegionLogExtractor.java | 11 +-
.../PipeRealtimeDataRegionTsFileExtractor.java | 11 +-
.../realtime/assigner/PipeDataRegionAssigner.java | 2 +-
.../receiver/thrift/IoTDBThriftReceiverV1.java | 5 +-
.../resource/tsfile/PipeTsFileResourceManager.java | 9 +
.../pipe/task/connection/PipeEventCollector.java | 2 +-
.../iotdb/db/pipe/task/subtask/PipeSubtask.java | 27 +-
.../subtask/connector/PipeConnectorSubtask.java | 2 +-
.../subtask/processor/PipeProcessorSubtask.java | 2 +-
.../iotdb/db/protocol/client/ConfigNodeClient.java | 42 +-
.../db/protocol/mqtt/BrokerAuthenticator.java | 14 +-
.../protocol/rest/filter/AuthorizationFilter.java | 6 +-
.../rest/handler/AuthorizationHandler.java | 20 +-
.../iotdb/db/protocol/session/SessionManager.java | 4 +-
.../impl/DataNodeInternalRPCServiceImpl.java | 9 +-
.../operator/schema/source/DeviceSchemaSource.java | 13 +-
.../schema/source/LogicalViewSchemaSource.java | 17 +-
.../operator/schema/source/NodeSchemaSource.java | 11 +-
.../schema/source/PathsUsingTemplateSource.java | 8 +-
.../schema/source/SchemaSourceFactory.java | 42 +-
.../schema/source/TimeSeriesSchemaSource.java | 14 +-
.../queryengine/plan/analyze/AnalyzeVisitor.java | 102 ++--
.../db/queryengine/plan/analyze/Analyzer.java | 13 +-
.../plan/analyze/ClusterPartitionFetcher.java | 39 +-
.../plan/analyze/ConcatPathRewriter.java | 11 +-
.../plan/analyze/IPartitionFetcher.java | 12 +-
.../plan/analyze/LoadTsfileAnalyzer.java | 40 +-
.../analyze/cache/partition/PartitionCache.java | 37 +-
.../analyze/schema/AutoCreateSchemaExecutor.java | 28 ++
.../plan/execution/config/ConfigExecution.java | 8 +-
.../plan/execution/config/ConfigTaskVisitor.java | 202 ++++----
.../config/executor/ClusterConfigTaskExecutor.java | 64 ++-
.../config/executor/IConfigTaskExecutor.java | 10 +-
.../config/metadata/CreateContinuousQueryTask.java | 13 +-
.../config/metadata/CreatePipePluginTask.java | 2 +-
.../config/metadata/DropPipePluginTask.java | 2 +-
.../config/metadata/model/CreateModelTask.java | 7 +-
.../config/metadata/view/AlterLogicalViewTask.java | 10 +-
.../plan/execution/config/sys/AuthorizerTask.java | 7 +-
.../db/queryengine/plan/parser/ASTVisitor.java | 77 +--
.../plan/planner/LogicalPlanBuilder.java | 48 +-
.../plan/planner/LogicalPlanVisitor.java | 37 +-
.../plan/planner/OperatorTreeGenerator.java | 32 +-
.../plan/node/metedata/read/DevicesCountNode.java | 13 +-
.../node/metedata/read/DevicesSchemaScanNode.java | 13 +-
.../metedata/read/LevelTimeSeriesCountNode.java | 13 +-
.../metedata/read/LogicalViewSchemaScanNode.java | 17 +-
.../metedata/read/NodePathsSchemaScanNode.java | 12 +-
.../metedata/read/PathsUsingTemplateScanNode.java | 11 +-
.../node/metedata/read/SchemaQueryScanNode.java | 43 +-
.../node/metedata/read/TimeSeriesCountNode.java | 15 +-
.../metedata/read/TimeSeriesSchemaScanNode.java | 29 +-
.../plan/node/write/PipeEnrichedInsertNode.java | 1 +
.../plan/scheduler/load/LoadTsFileScheduler.java | 13 +-
.../statement/AuthorityInformationStatement.java | 48 ++
.../db/queryengine/plan/statement/Statement.java | 13 +-
.../plan/statement/StatementVisitor.java | 6 +-
.../plan/statement/crud/DeleteDataStatement.java | 17 +
.../plan/statement/crud/InsertBaseStatement.java | 17 +
.../plan/statement/crud/InsertStatement.java | 17 +
.../plan/statement/crud/LoadTsFileStatement.java | 8 +
.../crud/PipeEnrichedInsertBaseStatement.java | 5 -
.../crud/PipeEnrichedLoadTsFileStatement.java | 5 -
.../plan/statement/crud/QueryStatement.java | 48 +-
.../InternalCreateMultiTimeSeriesStatement.java | 25 +-
.../InternalCreateTimeSeriesStatement.java | 17 +
.../metadata/AlterTimeSeriesStatement.java | 15 +
.../metadata/CreateContinuousQueryStatement.java | 14 +
.../metadata/CreateFunctionStatement.java | 14 +
.../metadata/CreateMultiTimeSeriesStatement.java | 17 +
.../metadata/CreateTimeSeriesStatement.java | 15 +
.../statement/metadata/CreateTriggerStatement.java | 14 +
.../metadata/DatabaseSchemaStatement.java | 14 +
.../metadata/DeleteDatabaseStatement.java | 14 +
.../metadata/DeleteTimeSeriesStatement.java | 17 +
.../metadata/DropContinuousQueryStatement.java | 14 +
.../statement/metadata/DropFunctionStatement.java | 14 +
.../statement/metadata/DropTriggerStatement.java | 32 +-
.../plan/statement/metadata/SetTTLStatement.java | 21 +-
.../statement/metadata/ShowClusterStatement.java | 14 +
.../metadata/ShowConfigNodesStatement.java | 9 +
.../metadata/ShowContinuousQueriesStatement.java | 14 +
.../statement/metadata/ShowDataNodesStatement.java | 9 +
.../statement/metadata/ShowFunctionsStatement.java | 14 +
.../statement/metadata/ShowRegionStatement.java | 9 +
.../plan/statement/metadata/ShowStatement.java | 4 +-
.../statement/metadata/ShowTriggersStatement.java | 14 +
.../statement/metadata/ShowVariablesStatement.java | 14 +
.../{ => pipe}/CreatePipePluginStatement.java | 16 +-
.../metadata/pipe/CreatePipeStatement.java | 14 +
.../{ => pipe}/DropPipePluginStatement.java | 16 +-
.../statement/metadata/pipe/DropPipeStatement.java | 14 +
.../{ => pipe}/ShowPipePluginsStatement.java | 17 +-
.../metadata/pipe/ShowPipesStatement.java | 14 +
.../metadata/pipe/StartPipeStatement.java | 14 +
.../statement/metadata/pipe/StopPipeStatement.java | 14 +
.../template/ActivateTemplateStatement.java | 30 +-
.../template/BatchActivateTemplateStatement.java | 36 +-
.../template/DeactivateTemplateStatement.java | 39 +-
.../ShowNodesInSchemaTemplateStatement.java | 9 +
.../template/ShowPathSetTemplateStatement.java | 9 +
.../template/ShowSchemaTemplateStatement.java | 9 +
.../metadata/view/AlterLogicalViewStatement.java | 31 ++
.../metadata/view/CreateLogicalViewStatement.java | 25 +
.../metadata/view/DeleteLogicalViewStatement.java | 17 +
.../metadata/view/RenameLogicalViewStatement.java | 19 +
.../plan/statement/sys/AuthorStatement.java | 131 +++++-
.../plan/statement/sys/KillQueryStatement.java | 14 +
.../plan/statement/sys/ShowQueriesStatement.java | 14 +
.../plan/statement/sys/ShowVersionStatement.java | 9 +
.../MultiInputColumnIntermediateLayer.java | 10 +-
.../mtree/impl/mem/MTreeBelowSGMemoryImpl.java | 54 ++-
.../mtree/impl/pbtree/MTreeBelowSGCachedImpl.java | 56 ++-
.../schemaregion/mtree/traverser/Traverser.java | 11 +-
.../mtree/traverser/basic/DatabaseTraverser.java | 10 +-
.../mtree/traverser/basic/EntityTraverser.java | 11 +-
.../mtree/traverser/basic/MNodeTraverser.java | 11 +-
.../traverser/basic/MeasurementTraverser.java | 12 +-
.../traverser/collector/DatabaseCollector.java | 9 +-
.../mtree/traverser/collector/EntityCollector.java | 9 +-
.../traverser/collector/MNodeAboveDBCollector.java | 9 +-
.../mtree/traverser/collector/MNodeCollector.java | 9 +-
.../traverser/collector/MeasurementCollector.java | 9 +-
.../mtree/traverser/counter/DatabaseCounter.java | 10 +-
.../mtree/traverser/counter/EntityCounter.java | 10 +-
.../traverser/counter/MeasurementCounter.java | 9 +-
.../mtree/traverser/updater/EntityUpdater.java | 11 +-
.../traverser/updater/MeasurementUpdater.java | 10 +-
.../schemaregion/read/req/IShowSchemaPlan.java | 3 +
.../read/req/SchemaRegionReadPlanFactory.java | 69 +--
.../read/req/impl/AbstractShowSchemaPlanImpl.java | 13 +-
.../read/req/impl/ShowDevicesPlanImpl.java | 6 +-
.../read/req/impl/ShowNodesPlanImpl.java | 6 +-
.../read/req/impl/ShowTimeSeriesPlanImpl.java | 6 +-
.../template/ClusterTemplateManager.java | 8 +-
.../db/schemaengine/template/ITemplateManager.java | 4 +-
.../metrics/IoTDBInternalLocalReporter.java | 8 +-
.../dataregion/tsfile/TsFileResource.java | 2 +-
.../iotdb/db/auth/AuthorizerManagerTest.java | 187 ++++++--
.../auth/authorizer/LocalFileAuthorizerTest.java | 73 +--
.../iotdb/db/auth/entity/PathPrivilegeTest.java | 52 +-
.../org/apache/iotdb/db/auth/entity/RoleTest.java | 23 +-
.../org/apache/iotdb/db/auth/entity/UserTest.java | 11 +-
.../db/auth/role/LocalFileRoleAccessorTest.java | 31 +-
.../db/auth/role/LocalFileRoleManagerTest.java | 40 +-
.../db/auth/user/LocalFileUserAccessorTest.java | 33 +-
.../db/auth/user/LocalFileUserManagerTest.java | 107 ++---
.../schemaRegion/SchemaRegionAliasAndTagTest.java | 21 +-
.../schemaRegion/SchemaRegionBasicTest.java | 172 +++----
.../schemaRegion/SchemaRegionManagementTest.java | 22 +-
.../schemaRegion/SchemaRegionTemplateTest.java | 6 +-
.../schemaRegion/SchemaRegionTestUtil.java | 90 +++-
.../db/protocol/mqtt/BrokerAuthenticatorTest.java | 15 +-
.../schema/SchemaQueryScanOperatorTest.java | 12 +-
.../queryengine/plan/analyze/AnalyzeFailTest.java | 33 +-
.../db/queryengine/plan/analyze/AnalyzeTest.java | 11 +-
.../plan/analyze/FakePartitionFetcherImpl.java | 6 +-
.../plan/analyze/cache/PartitionCacheTest.java | 33 +-
.../plan/parser/StatementGeneratorTest.java | 318 +++++++++++++
.../distribution/DistributionPlannerBasicTest.java | 10 +-
.../queryengine/plan/plan/distribution/Util.java | 7 +-
.../read/DeviceSchemaScanNodeSerdeTest.java | 4 +-
.../NodeManagementMemoryMergeNodeSerdeTest.java | 6 +-
.../read/PathsUsingTemplateScanNodeTest.java | 6 +-
.../metadata/read/SchemaCountNodeSerdeTest.java | 12 +-
.../read/TimeSeriesSchemaScanNodeSerdeTest.java | 4 +-
.../security/encrypt/MessageDigestEncryptTest.java | 2 +-
.../apache/iotdb/db/utils/EnvironmentUtils.java | 9 -
.../resources/conf/iotdb-common.properties | 4 +-
.../commons/auth/authorizer/BasicAuthorizer.java | 117 ++---
.../iotdb/commons/auth/authorizer/IAuthorizer.java | 9 +-
.../commons/auth/authorizer/OpenIdAuthorizer.java | 2 +-
.../iotdb/commons/auth/entity/PathPrivilege.java | 152 ++++--
.../iotdb/commons/auth/entity/PrivilegeType.java | 92 +---
.../org/apache/iotdb/commons/auth/entity/Role.java | 220 +++++++--
.../org/apache/iotdb/commons/auth/entity/User.java | 171 +++----
.../iotdb/commons/auth/role/BasicRoleManager.java | 100 ++--
.../iotdb/commons/auth/role/IRoleAccessor.java | 9 +-
.../iotdb/commons/auth/role/IRoleManager.java | 13 +-
.../commons/auth/role/LocalFileRoleAccessor.java | 150 ++++--
.../commons/auth/role/LocalFileRoleManager.java | 7 +
.../iotdb/commons/auth/user/BasicUserManager.java | 154 +++---
.../iotdb/commons/auth/user/IUserAccessor.java | 3 +
.../iotdb/commons/auth/user/IUserManager.java | 7 +-
.../commons/auth/user/LocalFileUserAccessor.java | 304 +++++++++---
.../commons/auth/user/LocalFileUserManager.java | 6 +
.../apache/iotdb/commons/conf/CommonConfig.java | 10 +
.../iotdb/commons/conf/CommonDescriptor.java | 4 +
.../commons/consensus/index/ProgressIndex.java | 4 +-
.../consensus/index/impl/HybridProgressIndex.java | 2 +-
.../consensus/index/impl/MinimumProgressIndex.java | 8 +-
...ception.java => IllegalPrivilegeException.java} | 13 +-
.../apache/iotdb/commons/path/PathPatternTree.java | 9 +
.../apache/iotdb/commons/path/fa/FAFactory.java | 2 +-
.../iotdb/commons/schema/SchemaConstant.java | 18 +-
.../org/apache/iotdb/commons/utils/AuthUtils.java | 185 +++-----
.../org/apache/iotdb/commons/utils/IOUtils.java | 70 ++-
.../iotdb/commons/path/PathPatternTreeTest.java | 7 +-
.../iotdb/commons/pipe/PipeMetaDeSerTest.java | 2 +-
.../apache/iotdb/commons/utils/AuthUtilsTest.java | 189 ++++++++
.../src/main/thrift/confignode.thrift | 66 ++-
278 files changed, 8144 insertions(+), 3474 deletions(-)
rename integration-test/src/test/java/org/apache/iotdb/db/it/{ => auth}/IoTDBAuthIT.java (55%)
rename integration-test/src/test/java/org/apache/iotdb/{confignode/it => db/it/auth}/IoTDBClusterAuthorityIT.java (74%)
create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBSeriesPermissionIT.java
create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBSystemPermissionIT.java
create mode 100644 integration-test/src/test/java/org/apache/iotdb/db/it/auth/IoTDBTemplatePermissionIT.java
create mode 100644 iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/task/PipeTaskCoordinatorLock.java
create mode 100644 iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/sync/AuthOperationProcedure.java
copy iotdb-client/isession/src/main/java/org/apache/iotdb/isession/util/Version.java => iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/state/auth/AuthOperationProcedureState.java (85%)
create mode 100644 iotdb-core/confignode/src/test/java/org/apache/iotdb/confignode/procedure/impl/sync/AuthOperationProcedureTest.java
delete mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/auth/AuthorizerManager.java
create mode 100644 iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/AuthorityInformationStatement.java
rename iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/{ => pipe}/CreatePipePluginStatement.java (77%)
rename iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/{ => pipe}/DropPipePluginStatement.java (74%)
rename iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/{ => pipe}/ShowPipePluginsStatement.java (69%)
copy iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/exception/{IllegalPathException.java => IllegalPrivilegeException.java} (71%)
create mode 100644 iotdb-core/node-commons/src/test/java/org/apache/iotdb/commons/utils/AuthUtilsTest.java