diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2551052..a0d8c64 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,11 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
# Changelog for Authorization utils
+## [v1.0.1-SNAPSHOT]
+
+- Fixed getRoles for JWTSecret [#22754]
+-
+
## [v1.0.0]
- First Release
diff --git a/pom.xml b/pom.xml
index 0997d15..ad3229d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
org.gcube.common
authorization-utils
- 1.0.0
+ 1.0.1-SNAPSHOT
UTF-8
diff --git a/src/main/java/org/gcube/common/authorization/utils/user/GCubeUser.java b/src/main/java/org/gcube/common/authorization/utils/user/GCubeUser.java
index e5f9fa8..0e77bf3 100644
--- a/src/main/java/org/gcube/common/authorization/utils/user/GCubeUser.java
+++ b/src/main/java/org/gcube/common/authorization/utils/user/GCubeUser.java
@@ -2,6 +2,7 @@ package org.gcube.common.authorization.utils.user;
import java.util.Collection;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@@ -66,8 +67,9 @@ public class GCubeUser implements User {
return roles;
}
- public void setRoles(Set roles) {
- this.roles = roles;
+ @Override
+ public void setRoles(Collection roles) {
+ this.roles = new HashSet<>(roles);
}
@Override
public String getGivenName() {
diff --git a/src/main/java/org/gcube/common/authorization/utils/user/KeycloakUser.java b/src/main/java/org/gcube/common/authorization/utils/user/KeycloakUser.java
index ba8e6fc..b477e77 100644
--- a/src/main/java/org/gcube/common/authorization/utils/user/KeycloakUser.java
+++ b/src/main/java/org/gcube/common/authorization/utils/user/KeycloakUser.java
@@ -15,6 +15,9 @@ public class KeycloakUser extends AccessToken implements User {
*/
private static final long serialVersionUID = -7083648026885406300L;
+ protected Collection roles;
+
+
@Override
@JsonIgnore
public String getUsername() {
@@ -24,7 +27,13 @@ public class KeycloakUser extends AccessToken implements User {
@Override
@JsonIgnore
public Collection getRoles() {
- return getRealmAccess().getRoles();
+ return roles;
+ }
+
+ @Override
+ @JsonIgnore
+ public void setRoles(Collection roles) {
+ this.roles = roles;
}
@Override
diff --git a/src/main/java/org/gcube/common/authorization/utils/user/User.java b/src/main/java/org/gcube/common/authorization/utils/user/User.java
index 1eb5af4..558da35 100644
--- a/src/main/java/org/gcube/common/authorization/utils/user/User.java
+++ b/src/main/java/org/gcube/common/authorization/utils/user/User.java
@@ -11,6 +11,8 @@ public interface User {
public Collection getRoles();
+ public void setRoles(Collection roles);
+
public String getGivenName();
public String getFamilyName();