Fixed corner case for a old authz token which is not an user
This commit is contained in:
parent
624174b7c0
commit
8e49a9be04
|
@ -1,16 +1,19 @@
|
||||||
package org.gcube.common.authorization.utils.secret;
|
package org.gcube.common.authorization.utils.secret;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import org.gcube.common.authorization.client.Constants;
|
import org.gcube.common.authorization.client.Constants;
|
||||||
import org.gcube.common.authorization.library.AuthorizationEntry;
|
import org.gcube.common.authorization.library.AuthorizationEntry;
|
||||||
|
import org.gcube.common.authorization.library.ClientType;
|
||||||
import org.gcube.common.authorization.library.exception.AuthorizationException;
|
import org.gcube.common.authorization.library.exception.AuthorizationException;
|
||||||
import org.gcube.common.authorization.library.provider.ClientInfo;
|
import org.gcube.common.authorization.library.provider.ClientInfo;
|
||||||
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
import org.gcube.common.authorization.library.provider.SecurityTokenProvider;
|
||||||
import org.gcube.common.authorization.library.utils.Caller;
|
import org.gcube.common.authorization.library.utils.Caller;
|
||||||
import org.gcube.common.authorization.utils.socialservice.SocialService;
|
import org.gcube.common.authorization.utils.socialservice.SocialService;
|
||||||
|
import org.gcube.common.authorization.utils.user.GCubeUser;
|
||||||
import org.gcube.common.authorization.utils.user.User;
|
import org.gcube.common.authorization.utils.user.User;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -89,7 +92,23 @@ public class GCubeSecret extends Secret {
|
||||||
public User getUser() {
|
public User getUser() {
|
||||||
if(user==null) {
|
if(user==null) {
|
||||||
try {
|
try {
|
||||||
user = SocialService.getSocialService().getUser(this);
|
ClientInfo clientInfo = getClientInfo();
|
||||||
|
ClientType clientType = clientInfo.getType();
|
||||||
|
|
||||||
|
switch (clientType) {
|
||||||
|
case USER:
|
||||||
|
user = SocialService.getSocialService().getUser(this);
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// The client is not an user. Trying to do the best
|
||||||
|
GCubeUser gCubeUser = new GCubeUser();
|
||||||
|
gCubeUser.setRoles(new HashSet<>(clientInfo.getRoles()));
|
||||||
|
gCubeUser.setUsername(clientInfo.getId());
|
||||||
|
user = gCubeUser;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new RuntimeException();
|
throw new RuntimeException();
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,6 +23,14 @@ public class GCubeUser implements User {
|
||||||
|
|
||||||
public GCubeUser() {
|
public GCubeUser() {
|
||||||
this.additionalProperties = new HashMap<>();
|
this.additionalProperties = new HashMap<>();
|
||||||
|
|
||||||
|
// This info are not always present. Setting an empty string to avoid null
|
||||||
|
this.givenName = "";
|
||||||
|
this.familyName = "";
|
||||||
|
this.eMail = "";
|
||||||
|
this.jobTitle = "";
|
||||||
|
this.picture = "";
|
||||||
|
this.middleName = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
@JsonProperty("id")
|
@JsonProperty("id")
|
||||||
|
@ -49,11 +57,18 @@ public class GCubeUser implements User {
|
||||||
return username;
|
return username;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setUsername(String username) {
|
||||||
|
this.username = username;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Collection<String> getRoles() {
|
public Collection<String> getRoles() {
|
||||||
return roles;
|
return roles;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setRoles(Set<String> roles) {
|
||||||
|
this.roles = roles;
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
public String getGivenName() {
|
public String getGivenName() {
|
||||||
return givenName;
|
return givenName;
|
||||||
|
|
Loading…
Reference in New Issue