New portal client to be used as infrastructure manager actor and URL objects are sused instead of strings for endpoints

This commit is contained in:
Mauro Mugnaini 2020-06-18 12:09:45 +02:00
parent 502a7442e9
commit 6c6f896b77
1 changed files with 39 additions and 28 deletions

View File

@ -1,18 +1,21 @@
package com.nubisware.oidc.lr62; package org.gcube.portal.oidc.lr62;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.gcube.oidc.rest.OpenIdConnectConfiguration;
import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.liferay.portal.kernel.util.PrefsPropsUtil; import com.liferay.portal.kernel.util.PrefsPropsUtil;
import com.liferay.portal.security.auth.CompanyThreadLocal; import com.liferay.portal.security.auth.CompanyThreadLocal;
import com.liferay.portal.util.PortalUtil; import com.liferay.portal.util.PortalUtil;
import com.nubisware.oidc.rest.OpenIdConnectConfiguration;
public class LiferayOpenIdConnectConfiguration implements OpenIdConnectConfiguration { public class LiferayOpenIdConnectConfiguration implements OpenIdConnectConfiguration {
@ -22,11 +25,12 @@ public class LiferayOpenIdConnectConfiguration implements OpenIdConnectConfigura
.synchronizedMap(new HashMap<Long, LiferayOpenIdConnectConfiguration>()); .synchronizedMap(new HashMap<Long, LiferayOpenIdConnectConfiguration>());
private Long companyId; private Long companyId;
private String authorizationUrl; private URL authorizationURL;
private String tokenUrl; private URL tokenURL;
private String logoutUrl; private URL logoutURL;
private String issuerUrl; private URL issuerURL;
private String clientId; private String portalClientId;
private String portalClientSecret;
private String scope; private String scope;
private boolean logoutOnPortalLogout; private boolean logoutOnPortalLogout;
private boolean createUnexistingUser; private boolean createUnexistingUser;
@ -53,22 +57,24 @@ public class LiferayOpenIdConnectConfiguration implements OpenIdConnectConfigura
log.info("Creating config from companyId: " + companyId); log.info("Creating config from companyId: " + companyId);
this.companyId = companyId; this.companyId = companyId;
try { try {
this.authorizationUrl = PrefsPropsUtil.getString(companyId, "d4science.oidc-authorization"); this.authorizationURL = new URL(PrefsPropsUtil.getString(companyId, "d4science.oidc-authorization"));
this.tokenUrl = PrefsPropsUtil.getString(companyId, "d4science.oidc-token"); this.tokenURL = new URL(PrefsPropsUtil.getString(companyId, "d4science.oidc-token"));
this.logoutUrl = PrefsPropsUtil.getString(companyId, "d4science.oidc-logout"); this.logoutURL = new URL(PrefsPropsUtil.getString(companyId, "d4science.oidc-logout"));
this.issuerUrl = PrefsPropsUtil.getString(companyId, "d4science.oidc-issuer"); this.issuerURL = new URL(PrefsPropsUtil.getString(companyId, "d4science.oidc-issuer"));
this.clientId = PrefsPropsUtil.getString(companyId, "d4science.oidc-client-id"); this.portalClientId = PrefsPropsUtil.getString(companyId, "d4science.oidc-portal-client-id");
this.portalClientSecret = PrefsPropsUtil.getString(companyId, "d4science.oidc-portal-client-secret");
this.scope = PrefsPropsUtil.getString(companyId, "d4science.oidc-scope"); this.scope = PrefsPropsUtil.getString(companyId, "d4science.oidc-scope");
this.logoutOnPortalLogout = PrefsPropsUtil.getBoolean(companyId, "d4science.oidc-logout-on-portal-logout"); this.logoutOnPortalLogout = PrefsPropsUtil.getBoolean(companyId, "d4science.oidc-logout-on-portal-logout");
this.createUnexistingUser = PrefsPropsUtil.getBoolean(companyId, "d4science.oidc-create-unexisting-user"); this.createUnexistingUser = PrefsPropsUtil.getBoolean(companyId, "d4science.oidc-create-unexisting-user");
} catch (SystemException e) { } catch (SystemException | MalformedURLException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
log.info("authorizationUrl=" + getAuthorizationUrl()); log.info("authorizationURL=" + getAuthorizationURL());
log.info("tokenUrl=" + getTokenUrl()); log.info("tokenURL=" + getTokenURL());
log.info("logoutUrl=" + getLogoutUrl()); log.info("logoutURL=" + getLogoutURL());
log.info("issuerUrl=" + getIssuerUrl()); log.info("issuerURL=" + getIssuerURL());
log.info("clientId=" + getClientId()); log.info("portalClientId=" + getPortalClientId());
log.info("portalClientSecret=" + getPortalClientSecret());
log.info("scope=" + getScope()); log.info("scope=" + getScope());
log.info("logoutOnPortalLogout=" + logoutOnPortalLogout()); log.info("logoutOnPortalLogout=" + logoutOnPortalLogout());
log.info("createUnexistingUser=" + createUnexistingUser()); log.info("createUnexistingUser=" + createUnexistingUser());
@ -79,28 +85,32 @@ public class LiferayOpenIdConnectConfiguration implements OpenIdConnectConfigura
} }
@Override @Override
public String getAuthorizationUrl() { public URL getAuthorizationURL() {
return this.authorizationUrl; return this.authorizationURL;
} }
@Override @Override
public String getTokenUrl() { public URL getTokenURL() {
return this.tokenUrl; return this.tokenURL;
} }
@Override @Override
public String getLogoutUrl() { public URL getLogoutURL() {
return this.logoutUrl; return this.logoutURL;
} }
@Override @Override
public String getIssuerUrl() { public URL getIssuerURL() {
return this.issuerUrl; return this.issuerURL;
} }
@Override @Override
public String getClientId() { public String getPortalClientId() {
return this.clientId; return this.portalClientId;
}
public String getPortalClientSecret() {
return this.portalClientSecret;
} }
@Override @Override
@ -115,4 +125,5 @@ public class LiferayOpenIdConnectConfiguration implements OpenIdConnectConfigura
public boolean createUnexistingUser() { public boolean createUnexistingUser() {
return this.createUnexistingUser; return this.createUnexistingUser;
} }
} }