# Authentication, Authorization and ClientInitializer

**URL:** https://community.hivemq.com/t/authentication-authorization-and-clientinitializer/317
**Category:** HiveMQ Extension SDK
**Created:** [August 24, 2020, 12:13pm UTC](https://community.hivemq.com/t/authentication-authorization-and-clientinitializer/317 "2020-08-24T12:13:12Z")
**Posts on this page:** 1
**Showing post:** 6

<div class="post-metadata">

### Author: ![Misiu](https://yyz1.discourse-cdn.com/flex035/user_avatar/community.hivemq.com/misiu/32/75_2.png) [@Misiu](https://community.hivemq.com/u/Misiu)
#### Post date: [August 27, 2020, 9:06am UTC](https://community.hivemq.com/t/authentication-authorization-and-clientinitializer/317/6 "2020-08-27T09:06:13Z")

</div>

@FloLi additional question about authentication and topic permissions (continuation of [Store massages in MsSQL](https://community.hivemq.com/t/store-massages-in-mssql/301/5))

currently in `onConnect` I’m using below code to set permissions per user:

```
final ArrayList<TopicPermission> topicPermissions = new ArrayList<>();
for (String deviceId: user.get().getDevices()) {
    final TopicPermission publishPermission = Builders.topicPermission()
            .topicFilter(deviceId+"/settings")
            .activity(TopicPermission.MqttActivity.PUBLISH)
            .type(TopicPermission.PermissionType.ALLOW)
            .build();
    topicPermissions.add(publishPermission);

    final TopicPermission subscribePermission = Builders.topicPermission()
            .topicFilter(deviceId+"/values")
            .activity(TopicPermission.MqttActivity.SUBSCRIBE)
            .type(TopicPermission.PermissionType.ALLOW)
            .build();
    topicPermissions.add(subscribePermission);
}

output.getDefaultPermissions().addAll(topicPermissions);
output.getDefaultPermissions().setDefaultBehaviour(DefaultAuthorizationBehaviour.DENY);

output.authenticateSuccessfully();

```

this works great in basic scenario, but I want to add support for subscribing to `+/values` topic.

Idea is that when user1 subscribes to that topic he will only get messages from devices 1,2 and 3 (because he owns them).

In the linked response you showed that this can be done in `authorizeSubscribe`, but can I set topic permissions in `onConnect`? This way user could subscribe to get values from all devices and the broker would handle sending values from device to correct user.

This would be an awesome feature to have!

---

_[View the full topic](https://community.hivemq.com/t/authentication-authorization-and-clientinitializer/317)._
