diff --git a/pom.xml b/pom.xml index 56faf4e..7119646 100644 --- a/pom.xml +++ b/pom.xml @@ -222,6 +222,11 @@ jedis 2.9.0 + + com.google.code.gson + gson + 2.6.2 + @@ -231,7 +236,7 @@ org.apache.maven.plugins maven-compiler-plugin - 3.1 + 3.7.0 1.8 1.8 @@ -269,6 +274,8 @@ + + + uoa-repository-manager-service + + + src/main/resources + true + + diff --git a/src/main/java/eu/dnetlib/repo/manager/service/config/Config.java b/src/main/java/eu/dnetlib/repo/manager/service/config/Config.java index d6ef090..142f474 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/config/Config.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/config/Config.java @@ -49,8 +49,10 @@ public class Config { @Bean public CookieSerializer cookieSerializer() { DefaultCookieSerializer serializer = new DefaultCookieSerializer(); - serializer.setCookieName("SESSION"); // <1> - serializer.setCookiePath("/"); // <2> + serializer.setCookieName("openAIRESession"); + serializer.setCookiePath("/"); + // serializer.setDomainName(".openaire.eu"); + serializer.setDomainName(".di.uoa.gr"); LOGGER.info("Serializer : " + serializer); return serializer; } diff --git a/src/main/java/eu/dnetlib/repo/manager/service/config/FrontEndLinkURIAuthenticationSuccessHandler.java b/src/main/java/eu/dnetlib/repo/manager/service/config/FrontEndLinkURIAuthenticationSuccessHandler.java index c777822..90c93bb 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/config/FrontEndLinkURIAuthenticationSuccessHandler.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/config/FrontEndLinkURIAuthenticationSuccessHandler.java @@ -1,16 +1,18 @@ package eu.dnetlib.repo.manager.service.config; +import com.google.gson.JsonObject; import org.apache.log4j.Logger; import org.mitre.openid.connect.model.OIDCAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.security.web.authentication.AuthenticationSuccessHandler; -import javax.annotation.PostConstruct; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.net.URLEncoder; +import com.google.gson.*; public class FrontEndLinkURIAuthenticationSuccessHandler implements AuthenticationSuccessHandler { @@ -27,12 +29,47 @@ public class FrontEndLinkURIAuthenticationSuccessHandler implements Authenticati public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { OIDCAuthenticationToken authOIDC = (OIDCAuthenticationToken) authentication; - Cookie sessionCookie = new Cookie("currentUser", authOIDC.getSub()); - int expireSec = -1; - sessionCookie.setMaxAge(expireSec); - sessionCookie.setPath("/"); -// sessionCookie.setDomain(); - response.addCookie(sessionCookie); + JsonObject userInfo = new JsonObject(); + + if (authOIDC.getUserInfo().getSub() == null) + userInfo.addProperty("sub", ""); + else + userInfo.addProperty("sub", URLEncoder.encode(authOIDC.getUserInfo().getSub(), "UTF-8")); + + userInfo.addProperty("fullname", URLEncoder.encode(authOIDC.getUserInfo().getName(), "UTF-8")); + + if (authOIDC.getUserInfo().getGivenName() == null) + userInfo.addProperty("firstname", ""); + else + userInfo.addProperty("firstname", URLEncoder.encode(authOIDC.getUserInfo().getGivenName(), "UTF-8") + ""); + + if (authOIDC.getUserInfo().getFamilyName() == null) + userInfo.addProperty("lastname", ""); + else + userInfo.addProperty("lastname", URLEncoder.encode(authOIDC.getUserInfo().getFamilyName(), "UTF-8") + ""); + + userInfo.addProperty("email", authOIDC.getUserInfo().getEmail() + ""); + if (authOIDC.getUserInfo().getSource().getAsJsonArray("edu_person_entitlements") == null) + userInfo.addProperty("role", ""); + else + userInfo.addProperty("role", URLEncoder.encode(authOIDC.getUserInfo() + .getSource().getAsJsonArray("edu_person_entitlements").toString(), "UTF-8") + ""); + + + Gson gson = new GsonBuilder().create(); + Cookie openAIREUser = new Cookie("openAIREUser", new Gson().toJson(userInfo) ); + openAIREUser .setMaxAge(14400); +// openAIREUser .setDomain(".openaire.eu"); + openAIREUser .setDomain(".di.uoa.gr"); + response.addCookie(openAIREUser); + + + Cookie accessToken = new Cookie("AccessToken", authOIDC.getAccessTokenValue()); + accessToken.setMaxAge(14400); +// accessToken.setDomain(".openaire.eu"); + accessToken.setDomain(".di.uoa.gr"); + response.addCookie(accessToken); + response.sendRedirect(frontEndURI); } diff --git a/src/main/java/eu/dnetlib/repo/manager/service/controllers/EmailUtilsImpl.java b/src/main/java/eu/dnetlib/repo/manager/service/controllers/EmailUtilsImpl.java index 7dbc189..5e6e2fa 100644 --- a/src/main/java/eu/dnetlib/repo/manager/service/controllers/EmailUtilsImpl.java +++ b/src/main/java/eu/dnetlib/repo/manager/service/controllers/EmailUtilsImpl.java @@ -73,7 +73,7 @@ public class EmailUtilsImpl implements EmailUtils { "Authentication token - " + piwikInfo.getAuthenticationToken() + "\n" + "\n" + "For more information about this request, go here: \n" + - this.baseUrl + "/#admin/metrics\n" + + this.baseUrl + "/admin/metrics\n" + "\n" + "Best,\n" + "The OpenAIRE team"; @@ -107,7 +107,7 @@ public class EmailUtilsImpl implements EmailUtils { "the OpenAIRE team in repositoryusagestats@openaire.eu in order to find a solution.\n" + "\n" + "For more information about your request and configuration details, go here: \n" + - this.baseUrl + "/#getImpact/instructions/" + piwikInfo.getRepositoryId() + "\n" + + this.baseUrl + "/getImpact/instructions/" + piwikInfo.getRepositoryId() + "\n" + "\n" + "Once you have finished configuring your repository or if you have any questions, please notify the OpenAIRE team by sending \n" + "an email to repositoryusagestats@openaire.eu\n" + @@ -142,7 +142,7 @@ public class EmailUtilsImpl implements EmailUtils { "Best,\n" + "The OpenAIRE team"; - this.sendMail(piwikInfo.getRequestorEmail(), subject, message, false, null); + this.sendMail(this.usageStatsAdminEmail, subject, message, false, null); } catch (Exception e) { LOGGER.error("Error while sending metrics enabled notification email to administator: " + this.usageStatsAdminEmail, e); @@ -162,7 +162,7 @@ public class EmailUtilsImpl implements EmailUtils { "\" has been completed and validated and the usage statistics have been enabled in OpenAIRE.\n" + "\n" + "You can preview the statistics in your repository's dashboard: \n" + - this.baseUrl + "/#getImpact/" + piwikInfo.getRepositoryId() + "\n" + + this.baseUrl + "/getImpact/" + piwikInfo.getRepositoryId() + "\n" + "\n" + " For more information and questions, you can contact the openaire support team by sending an email to " + "repositoryusagestats@openaire.eu\n" + diff --git a/src/main/webapp/WEB-INF/log4j.properties b/src/main/webapp/WEB-INF/log4j.properties index e18e297..4a174dd 100644 --- a/src/main/webapp/WEB-INF/log4j.properties +++ b/src/main/webapp/WEB-INF/log4j.properties @@ -1,7 +1,32 @@ +#log4j.rootLogger = WARN, R +# +#log4j.logger.eu.dnetlib = DEBUG +#log4j.logger.eu.dnetlib.clients.data.datasourcemanager.ws.Converter = FATAL +#log4j.logger.org.springframework = DEBUG, S +#log4j.additivity.org.springframework = false +# +#log4j.logger.com.opensymphony.xwork2.ognl.OgnlValueStack = FATAL +#log4j.logger.com.opensymphony.xwork2.ObjectFactory = FATAL +# +#log4j.logger.eu.dnetlib.repo.manager=DEBUG +# +#log4j.appender.R=org.apache.log4j.RollingFileAppender +#log4j.appender.R.File=/var/log/dnet/repository-service/repository-service.log +#log4j.appender.R.MaxFileSize=10MB +#log4j.appender.R.MaxBackupIndex=10 +#log4j.appender.R.layout=org.apache.log4j.PatternLayout +#log4j.appender.R.layout.ConversionPattern= %d %p %t [%c] - %m%n +# +#log4j.appender.S=org.apache.log4j.RollingFileAppender +#log4j.appender.S.File=/var/log/dnet/repository-service/repository-service-spring.log +#log4j.appender.S.MaxFileSize=10MB +#log4j.appender.S.MaxBackupIndex=10 +#log4j.appender.S.layout=org.apache.log4j.PatternLayout +#log4j.appender.S.layout.ConversionPattern= %d %p %t [%c] - %m%n + + log4j.rootLogger = WARN, R -log4j.logger.eu.dnetlib = DEBUG -log4j.logger.eu.dnetlib.clients.data.datasourcemanager.ws.Converter = FATAL log4j.logger.org.springframework = DEBUG, S log4j.additivity.org.springframework = false @@ -10,26 +35,10 @@ log4j.logger.com.opensymphony.xwork2.ObjectFactory = FATAL log4j.logger.eu.dnetlib.repo.manager=DEBUG -log4j.appender.R=org.apache.log4j.RollingFileAppender -log4j.appender.R.File=/var/log/dnet/repository-service/repository-service.log -log4j.appender.R.MaxFileSize=10MB -log4j.appender.R.MaxBackupIndex=10 +log4j.appender.R=org.apache.log4j.ConsoleAppender log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern= %d %p %t [%c] - %m%n -log4j.appender.S=org.apache.log4j.RollingFileAppender -log4j.appender.S.File=/var/log/dnet/repository-service/repository-service-spring.log -log4j.appender.S.MaxFileSize=10MB -log4j.appender.S.MaxBackupIndex=10 +log4j.appender.S=org.apache.log4j.ConsoleAppender log4j.appender.S.layout=org.apache.log4j.PatternLayout -log4j.appender.S.layout.ConversionPattern= %d %p %t [%c] - %m%n - - -#org.apache.cxf.Logger=org.apache.cxf.common.logging.Log4jLogger -# -#log4j.rootLogger=INFO, CONSOLE -#log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender -#log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout -#log4j.appender.CONSOLE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n -# -#log4j.logger.eu.dnetlib.repo.manager=DEBUG \ No newline at end of file +log4j.appender.S.layout.ConversionPattern= %d %p %t [%c] - %m%n \ No newline at end of file