From 612cbeafea26d54e0c136f60c9aac8ad5f1ed9dc Mon Sep 17 00:00:00 2001 From: "k.triantafyllou" Date: Mon, 4 Oct 2021 07:20:00 +0000 Subject: [PATCH] [Authorization Library]: Add dnet45 parert --- pom.xml | 30 ++++++++++++------- .../AuthorizationConfiguration.java | 4 --- ...orizationLibraryCheckDeployController.java | 4 +-- .../security/AuthorizationService.java | 28 +++++++++++------ src/main/resources/application.properties | 1 - 5 files changed, 40 insertions(+), 27 deletions(-) diff --git a/pom.xml b/pom.xml index 1ee3f2a..72cf845 100644 --- a/pom.xml +++ b/pom.xml @@ -2,21 +2,19 @@ 4.0.0 - - eu.dnetlib + + eu.dnetlib + dnet45-parent + 1.0.0 + uoa-authorization-library 1.0.0-SNAPSHOT jar - + + scm:svn:https://svn.driver.research-infrastructures.eu/driver/dnet45/modules/uoa-authorization-library/trunk + uoa-authorization-library - - org.springframework.boot - spring-boot-starter-parent - 1.5.8.RELEASE - - - UTF-8 UTF-8 @@ -24,7 +22,17 @@ ${maven.build.timestamp} E MMM dd HH:mm:ss z yyyy - + + + + org.springframework.boot + spring-boot-dependencies + 1.5.8.RELEASE + pom + import + + + org.springframework.boot diff --git a/src/main/java/eu/dnetlib/uoaauthorizationlibrary/configuration/AuthorizationConfiguration.java b/src/main/java/eu/dnetlib/uoaauthorizationlibrary/configuration/AuthorizationConfiguration.java index 041b655..5ae0a4a 100644 --- a/src/main/java/eu/dnetlib/uoaauthorizationlibrary/configuration/AuthorizationConfiguration.java +++ b/src/main/java/eu/dnetlib/uoaauthorizationlibrary/configuration/AuthorizationConfiguration.java @@ -4,10 +4,6 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.context.annotation.*; @Configuration -//@PropertySources({ -// @PropertySource("classpath:authorization.properties"), -// @PropertySource(value = "classpath:dnet-override.properties", ignoreResourceNotFound = true) -//}) @EnableConfigurationProperties({SecurityConfig.class, GlobalVars.class}) @ComponentScan(basePackages = { "eu.dnetlib.uoaauthorizationlibrary" }) public class AuthorizationConfiguration { } diff --git a/src/main/java/eu/dnetlib/uoaauthorizationlibrary/controllers/AuthorizationLibraryCheckDeployController.java b/src/main/java/eu/dnetlib/uoaauthorizationlibrary/controllers/AuthorizationLibraryCheckDeployController.java index be94528..e1c9cc9 100644 --- a/src/main/java/eu/dnetlib/uoaauthorizationlibrary/controllers/AuthorizationLibraryCheckDeployController.java +++ b/src/main/java/eu/dnetlib/uoaauthorizationlibrary/controllers/AuthorizationLibraryCheckDeployController.java @@ -40,8 +40,8 @@ public class AuthorizationLibraryCheckDeployController { response.put("authorization.security.userInfoUrl", securityConfig.getUserInfoUrl()); response.put("authorization.security.originServer", securityConfig.getOriginServer()); - if(globalVars.date != null) { - response.put("Date of deploy", globalVars.date.toString()); + if(GlobalVars.date != null) { + response.put("Date of deploy", GlobalVars.date.toString()); } if(globalVars.getBuildDate() != null) { response.put("Date of build", globalVars.getBuildDate()); diff --git a/src/main/java/eu/dnetlib/uoaauthorizationlibrary/security/AuthorizationService.java b/src/main/java/eu/dnetlib/uoaauthorizationlibrary/security/AuthorizationService.java index bf62179..b8037ad 100644 --- a/src/main/java/eu/dnetlib/uoaauthorizationlibrary/security/AuthorizationService.java +++ b/src/main/java/eu/dnetlib/uoaauthorizationlibrary/security/AuthorizationService.java @@ -9,6 +9,7 @@ import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; @Component(value = "AuthorizationService") public class AuthorizationService { @@ -53,19 +54,28 @@ public class AuthorizationService { return mapType(type, false).toUpperCase() + "_" + id.toUpperCase(); } + public boolean isPortalAdmin() { + return getRoles().stream().anyMatch(authority -> authority.equalsIgnoreCase(PORTAL_ADMIN)); + } + + public boolean isCurator(String type) { + return getRoles().stream().anyMatch(authority -> authority.equalsIgnoreCase(curator(type))); + } + + public boolean isManager(String type, String id) { + return getRoles().stream().anyMatch(authority -> authority.equalsIgnoreCase(manager(type, id))); + } + + public boolean isMember(String type, String id) { + return getRoles().stream().anyMatch(authority -> authority.equalsIgnoreCase(member(type, id))); + } + public List getRoles() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); if (authentication != null) { - List authorities = (List) authentication.getAuthorities(); - if (authorities != null) { - List roles = new ArrayList<>(); - authorities.forEach((authority) -> { - roles.add(authority.getAuthority()); - }); - return roles; - } + return authentication.getAuthorities().stream().map(GrantedAuthority::getAuthority).collect(Collectors.toList()); } - return null; + return new ArrayList<>(); } public String getAaiId() { diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 5ff0285..e69de29 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1 +0,0 @@ -server.port=9090 \ No newline at end of file