Feature #24755 asks for a fresh token anytime the button is clicked

This commit is contained in:
Massimiliano Assante 2023-03-20 16:59:44 +01:00
parent 4d90f27835
commit 2c47f5e01e
3 changed files with 16 additions and 3 deletions

View File

@ -1,5 +1,9 @@
# Changelog # Changelog
## [v1.1.0-SNAPSHOT] - 2023-03-20
- Feature #24755 - igenerate a fresh token anytime the button is clicked.
## [v1.0.1] - 2022-05-25 ## [v1.0.1] - 2022-05-25
- Bug #23411 fix to the context list when deplyed at VRE level - Bug #23411 fix to the context list when deplyed at VRE level

View File

@ -13,7 +13,7 @@
<artifactId>rpt-token-portlet</artifactId> <artifactId>rpt-token-portlet</artifactId>
<packaging>war</packaging> <packaging>war</packaging>
<name>RPT UMA Token Portlet</name> <name>RPT UMA Token Portlet</name>
<version>1.0.1</version> <version>1.1.0-SNAPSHOT</version>
<description> <description>
Requesting Party Token Portlet Requesting Party Token Portlet
</description> </description>
@ -38,7 +38,7 @@
<dependency> <dependency>
<groupId>org.gcube.distribution</groupId> <groupId>org.gcube.distribution</groupId>
<artifactId>maven-portal-bom</artifactId> <artifactId>maven-portal-bom</artifactId>
<version>3.6.3</version> <version>3.6.4-SNAPSHOT</version>
<type>pom</type> <type>pom</type>
<scope>import</scope> <scope>import</scope>
</dependency> </dependency>

View File

@ -14,13 +14,18 @@ import javax.servlet.http.HttpServletRequest;
import org.gcube.common.portal.PortalContext; import org.gcube.common.portal.PortalContext;
import org.gcube.common.scope.impl.ScopeBean; import org.gcube.common.scope.impl.ScopeBean;
import org.gcube.common.scope.impl.ScopeBean.Type; import org.gcube.common.scope.impl.ScopeBean.Type;
import org.gcube.oidc.rest.JWTToken;
import org.gcube.oidc.rest.OpenIdConnectConfiguration;
import org.gcube.oidc.rest.OpenIdConnectRESTHelper;
import org.gcube.portal.oidc.lr62.LiferayOpenIdConnectConfiguration;
import org.gcube.portal.oidc.lr62.OIDCUmaUtil; import org.gcube.portal.oidc.lr62.OIDCUmaUtil;
import org.gcube.vomanagement.usermanagement.GroupManager; import org.gcube.vomanagement.usermanagement.GroupManager;
import org.gcube.vomanagement.usermanagement.impl.LiferayGroupManager; import org.gcube.vomanagement.usermanagement.impl.LiferayGroupManager;
import org.gcube.vomanagement.usermanagement.model.GCubeGroup; import org.gcube.vomanagement.usermanagement.model.GCubeGroup;
import org.gcube.oidc.rest.JWTToken;
import com.liferay.portal.kernel.json.JSONFactoryUtil; import com.liferay.portal.kernel.json.JSONFactoryUtil;
import com.liferay.portal.kernel.json.JSONObject; import com.liferay.portal.kernel.json.JSONObject;
import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.liferay.portal.kernel.util.ParamUtil; import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.portal.model.User; import com.liferay.portal.model.User;
import com.liferay.portal.util.PortalUtil; import com.liferay.portal.util.PortalUtil;
@ -30,6 +35,7 @@ import com.liferay.util.bridges.mvc.MVCPortlet;
* Portlet implementation class RPTTokenReader * Portlet implementation class RPTTokenReader
*/ */
public class RPTTokenReader extends MVCPortlet { public class RPTTokenReader extends MVCPortlet {
private static com.liferay.portal.kernel.log.Log log = LogFactoryUtil.getLog(RPTTokenReader.class);
@Override @Override
public void render(RenderRequest renderRequest, RenderResponse renderResponse) throws PortletException, IOException { public void render(RenderRequest renderRequest, RenderResponse renderResponse) throws PortletException, IOException {
@ -72,7 +78,10 @@ public class RPTTokenReader extends MVCPortlet {
JWTToken umaToken = null; JWTToken umaToken = null;
try { try {
String username = PortalUtil.getUser(resourceRequest).getScreenName(); String username = PortalUtil.getUser(resourceRequest).getScreenName();
OpenIdConnectConfiguration configuration = LiferayOpenIdConnectConfiguration.getConfiguration(httpReq);
umaToken = OIDCUmaUtil.getUMAToken(httpReq, username, context); umaToken = OIDCUmaUtil.getUMAToken(httpReq, username, context);
umaToken = OpenIdConnectRESTHelper.refreshToken(configuration.getTokenURL(), umaToken);
log.debug("Got a refreshed UMA token " + umaToken.getTokenEssentials());
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
JSONObject jsonObject = JSONFactoryUtil.createJSONObject(); JSONObject jsonObject = JSONFactoryUtil.createJSONObject();