Skip to content

Commit 4b1b67e

Browse files
KAFKA-18434: enrich the authorization error message of connecting to controller (apache#18436)
Reviewers: Divij Vaidya <[email protected]>
1 parent af3f9e3 commit 4b1b67e

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

core/src/main/scala/kafka/server/AuthHelper.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class AuthHelper(authorizer: Option[Authorizer]) {
5555

5656
def authorizeClusterOperation(request: RequestChannel.Request, operation: AclOperation): Unit = {
5757
if (!authorize(request.context, operation, CLUSTER, CLUSTER_NAME))
58-
throw new ClusterAuthorizationException(s"Request $request is not authorized.")
58+
throw new ClusterAuthorizationException(s"Request $request needs $operation permission.")
5959
}
6060

6161
def authorizedOperations(request: RequestChannel.Request, resource: Resource): Int = {

core/src/test/scala/unit/kafka/server/ControllerApisTest.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1286,20 +1286,22 @@ class ControllerApisTest {
12861286

12871287
@Test
12881288
def testUnauthorizedControllerRegistrationRequest(): Unit = {
1289-
assertThrows(classOf[ClusterAuthorizationException], () => {
1289+
val exception = assertThrows(classOf[ClusterAuthorizationException], () => {
12901290
controllerApis = createControllerApis(Some(createDenyAllAuthorizer()), new MockController.Builder().build())
12911291
controllerApis.handleControllerRegistration(buildRequest(
12921292
new ControllerRegistrationRequest(new ControllerRegistrationRequestData(), 0.toShort)))
12931293
})
1294+
assertTrue(exception.getMessage.contains("needs CLUSTER_ACTION permission"))
12941295
}
12951296

12961297
@Test
12971298
def testUnauthorizedDescribeClusterRequest(): Unit = {
1298-
assertThrows(classOf[ClusterAuthorizationException], () => {
1299+
val exception = assertThrows(classOf[ClusterAuthorizationException], () => {
12991300
controllerApis = createControllerApis(Some(createDenyAllAuthorizer()), new MockController.Builder().build())
13001301
controllerApis.handleDescribeCluster(buildRequest(
13011302
new DescribeClusterRequest(new DescribeClusterRequestData(), 1.toShort)))
13021303
})
1304+
assertTrue(exception.getMessage.contains("needs ALTER permission"))
13031305
}
13041306

13051307
@AfterEach

0 commit comments

Comments
 (0)