User management
This commit is contained in:
parent
4c9455fd76
commit
3a2a42f3b8
|
@ -64,6 +64,12 @@
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.gcube.common</groupId>
|
||||||
|
<artifactId>authorization-utils</artifactId>
|
||||||
|
<version>[2.0.0, 3.0.0-SNAPSHOT)</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<!-- MONGO -->
|
<!-- MONGO -->
|
||||||
<!-- https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver -->
|
<!-- https://mvnrepository.com/artifact/org.mongodb/mongo-java-driver -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
|
|
@ -7,10 +7,9 @@ import org.gcube.application.geoportal.common.model.document.accounting.Accounti
|
||||||
import org.gcube.application.geoportal.common.model.document.accounting.Context;
|
import org.gcube.application.geoportal.common.model.document.accounting.Context;
|
||||||
import org.gcube.application.geoportal.common.model.document.accounting.User;
|
import org.gcube.application.geoportal.common.model.document.accounting.User;
|
||||||
import org.gcube.common.authorization.library.provider.AccessTokenProvider;
|
import org.gcube.common.authorization.library.provider.AccessTokenProvider;
|
||||||
import org.gcube.common.authorization.library.provider.AuthorizationProvider;
|
|
||||||
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.scope.api.ScopeProvider;
|
import org.gcube.common.authorization.utils.manager.SecretManager;
|
||||||
|
import org.gcube.common.authorization.utils.manager.SecretManagerProvider;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -24,25 +23,19 @@ public class UserUtils {
|
||||||
public static List<String> DEFAULT_ROLES=new ArrayList<>();
|
public static List<String> DEFAULT_ROLES=new ArrayList<>();
|
||||||
|
|
||||||
public static AuthenticatedUser getCurrent() throws SecurityException {
|
public static AuthenticatedUser getCurrent() throws SecurityException {
|
||||||
String context=ScopeProvider.instance.get();
|
log.debug("Loading caller info..");
|
||||||
|
|
||||||
|
SecretManager cm = SecretManagerProvider.instance.get();
|
||||||
|
String context = cm.getContext();
|
||||||
if(context==null) throw new SecurityException("Cannot determine context");
|
if(context==null) throw new SecurityException("Cannot determine context");
|
||||||
|
org.gcube.common.authorization.utils.user.User user = cm.getUser();
|
||||||
|
log.info("Identified caller {} in context {}",user.getUsername(),context);
|
||||||
|
|
||||||
log.debug("Context is {}, checking tokens..",context);
|
|
||||||
|
|
||||||
ClientInfo client = null;
|
|
||||||
Set<String> roles=new HashSet<>();
|
Set<String> roles=new HashSet<>();
|
||||||
try{
|
roles.addAll(user.getRoles());
|
||||||
client = AuthorizationProvider.instance.get().getClient();
|
|
||||||
roles= new HashSet<>(client.getRoles());
|
|
||||||
}catch(Throwable e) {
|
|
||||||
log.warn("Unable to get client info ",e);
|
|
||||||
roles = new HashSet<>();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
AuthenticatedUser toReturn =
|
AuthenticatedUser toReturn =
|
||||||
new AuthenticatedUser(client,roles, AccessTokenProvider.instance.get(),SecurityTokenProvider.instance.get(),context);
|
new AuthenticatedUser(user,roles, AccessTokenProvider.instance.get(),SecurityTokenProvider.instance.get(),context);
|
||||||
|
|
||||||
log.info("Current User is {} ",toReturn);
|
log.info("Current User is {} ",toReturn);
|
||||||
return toReturn;
|
return toReturn;
|
||||||
|
@ -52,7 +45,8 @@ public class UserUtils {
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@Getter
|
@Getter
|
||||||
public static class AuthenticatedUser {
|
public static class AuthenticatedUser {
|
||||||
private ClientInfo user;
|
|
||||||
|
private org.gcube.common.authorization.utils.user.User user;
|
||||||
|
|
||||||
private Set<String> roles;
|
private Set<String> roles;
|
||||||
|
|
||||||
|
@ -86,11 +80,11 @@ public class UserUtils {
|
||||||
AccountingInfo info=new AccountingInfo();
|
AccountingInfo info=new AccountingInfo();
|
||||||
User user = new User();
|
User user = new User();
|
||||||
try{
|
try{
|
||||||
user.setUsername(this.getUser().getId());
|
user.setUsername(this.getUser().getUsername());
|
||||||
user.setRoles(roles);
|
user.setRoles(roles);
|
||||||
}catch(Exception e){
|
}catch(Exception e){
|
||||||
log.warn("Unable to determine user id, using FAKE",e);
|
log.warn("Unable to determine user id, using FAKE",e);
|
||||||
user.setUsername("fabio.sinibaldi");
|
user.setUsername("FAKE");
|
||||||
user.setRoles(new HashSet<>());
|
user.setRoles(new HashSet<>());
|
||||||
user.getRoles().addAll(DEFAULT_ROLES);
|
user.getRoles().addAll(DEFAULT_ROLES);
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,7 +58,7 @@ public class ProfiledConcessioniTests extends AbstractProfiledDocumentsTests{
|
||||||
"$.posizionamentoScavo."+ Field.CHILDREN+"[?(@.fileset)]",
|
"$.posizionamentoScavo."+ Field.CHILDREN+"[?(@.fileset)]",
|
||||||
null,
|
null,
|
||||||
RegisterFileSetRequest.ClashOptions.MERGE_EXISTING,
|
RegisterFileSetRequest.ClashOptions.MERGE_EXISTING,
|
||||||
"pos.shp");
|
"concessioni/pos.shp");
|
||||||
|
|
||||||
|
|
||||||
System.out.println("Registered posizionamento, result is "+ Serialization.write(doc));
|
System.out.println("Registered posizionamento, result is "+ Serialization.write(doc));
|
||||||
|
@ -66,7 +66,7 @@ public class ProfiledConcessioniTests extends AbstractProfiledDocumentsTests{
|
||||||
StepExecutionRequest submitReq=new StepExecutionRequest();
|
StepExecutionRequest submitReq=new StepExecutionRequest();
|
||||||
submitReq.setStepID("SUBMIT-FOR-REVIEW");
|
submitReq.setStepID("SUBMIT-FOR-REVIEW");
|
||||||
// doc=step(doc.getId(),submitReq);
|
// doc=step(doc.getId(),submitReq);
|
||||||
doc=step("630f912755e2947b0278c1be",submitReq);
|
doc=step(doc.getId(),submitReq);
|
||||||
System.out.println(doc);
|
System.out.println(doc);
|
||||||
assertTrue(doc.getLifecycleInformation().getLastOperationStatus().equals(LifecycleInformation.Status.OK));
|
assertTrue(doc.getLifecycleInformation().getLastOperationStatus().equals(LifecycleInformation.Status.OK));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue