diff --git a/src/main/java/org/gcube/portal/oauth/OauthService.java b/src/main/java/org/gcube/portal/oauth/OauthService.java index ee7a628..f7bf7ef 100644 --- a/src/main/java/org/gcube/portal/oauth/OauthService.java +++ b/src/main/java/org/gcube/portal/oauth/OauthService.java @@ -146,8 +146,8 @@ public class OauthService { Status status = Status.BAD_REQUEST; logger.info("Request to exchange code for token"); - logger.info("Params are client_id = " + clientId + ", client_secret = " + clientSecret.substring(0, 10) + - "*******************"+ ", redirect_uri = " +redirectUri + ", code = " + code.substring(0, 10) + "*******************" + ", grant_type = " + grantType); + logger.info("Params are client_id = " + clientId + ", client_secret = " + clientSecret + + "*******************"+ ", redirect_uri = " +redirectUri + ", code = " + code + "*******************" + ", grant_type = " + grantType); try{ // check if something is missing diff --git a/src/main/java/org/gcube/portal/oauth/cache/CacheCleaner.java b/src/main/java/org/gcube/portal/oauth/cache/CacheCleaner.java index c8f2690..7381c55 100644 --- a/src/main/java/org/gcube/portal/oauth/cache/CacheCleaner.java +++ b/src/main/java/org/gcube/portal/oauth/cache/CacheCleaner.java @@ -37,17 +37,20 @@ public class CacheCleaner extends Thread { sleep(CHECK_AFTER_MS); logger.info("Going to clean up cache and old codes [" + new Date() + "]"); + int removedEntries = 0; + Iterator> iterator = cacheReference.entrySet().iterator(); while (iterator.hasNext()) { Map.Entry entry = (Map.Entry) iterator .next(); if(CacheBean.isExpired(entry.getValue())){ logger.debug("Removing entry " + entry.getValue()); + removedEntries ++; iterator.remove(); } } - logger.info("Going to sleep [" + new Date() + "]"); + logger.info("Going to sleep . Number of removed entries is " + removedEntries + " [" + new Date() + "]"); } catch (InterruptedException e) { logger.warn("Exception was " + e.getMessage()); diff --git a/src/main/java/org/gcube/portal/oauth/request/filter/OauthFilter.java b/src/main/java/org/gcube/portal/oauth/request/filter/OauthFilter.java deleted file mode 100644 index 8466ab3..0000000 --- a/src/main/java/org/gcube/portal/oauth/request/filter/OauthFilter.java +++ /dev/null @@ -1,56 +0,0 @@ -package org.gcube.portal.oauth.request.filter; - -import java.io.IOException; - -import javax.annotation.Priority; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.core.Context; -import javax.ws.rs.core.Form; -import javax.ws.rs.core.MultivaluedMap; -import javax.ws.rs.core.UriInfo; -import javax.ws.rs.ext.Provider; - -import org.gcube.portal.oauth.OauthService; -import org.glassfish.jersey.server.internal.InternalServerProperties; -import org.slf4j.LoggerFactory; - -/** - * This filter is used to manage request directed to the method "access-token". - * It maps the "security_code" of the request into the gcube-token and then redirect this call - * to the SmartGears's filters. Please note that FormParams are put by previous filters under - * a property named InternalServerProperties.FORM_DECODED_PROPERTY. - */ -@Provider -@Priority(value = 0) // it should be the highest (so that it is called before the smartgears'one) -public class OauthFilter implements ContainerRequestFilter{ - - private static final org.slf4j.Logger logger = LoggerFactory.getLogger(OauthFilter.class); - - @Context UriInfo info; - - @Override - public void filter(ContainerRequestContext requestContext) - throws IOException { - - logger.debug("Filter oauth called, checking the called method"); - logger.debug("Request method type is " + requestContext.getMethod()); - String pathRequest = info.getAbsolutePath().toString(); - logger.debug("Requested method url is " + info.getAbsolutePath()); - - if(pathRequest.endsWith(OauthService.OAUTH_TOKEN_GET_METHOD_NAME_REQUEST)){ - - Form propertiesForm = (Form)requestContext.getProperty(InternalServerProperties.FORM_DECODED_PROPERTY); - MultivaluedMap map = propertiesForm.asMap(); - logger.debug("Request form parameters are " + map); - - if(map.containsKey("client_secret")){ - requestContext.getHeaders().add("gcube-token", map.get("client_secret").get(0)); - }else{ - logger.error("Parameter client_secret is missing"); - } - } - } -} - - diff --git a/src/main/webapp/WEB-INF/gcube-handlers.xml b/src/main/webapp/WEB-INF/gcube-handlers.xml new file mode 100644 index 0000000..166068c --- /dev/null +++ b/src/main/webapp/WEB-INF/gcube-handlers.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index 4f7d83c..f97119d 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -4,13 +4,13 @@ http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> -RESTFul Web Service - OAUTH + RESTFul Web Service - OAUTH jersey-servlet org.glassfish.jersey.servlet.ServletContainer jersey.config.server.provider.packages - org.gcube.portal.oauth,org.gcube.portal.oauth.filter + org.gcube.portal.oauth 1 @@ -18,6 +18,7 @@ jersey-servlet /* + index.jsp