Added avatar retrieve/update at every login (#19726)

This commit is contained in:
Mauro Mugnaini 2020-08-12 20:14:54 +02:00
parent b0a19768fd
commit 705b9129da
5 changed files with 15 additions and 46 deletions

View File

@ -1,7 +1,9 @@
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
# Changelog for "oidc-enrollment-hook"
## [v1.1.0-SNAPSHOT]
- Added avatar retrieve/update at every login (#19726)
## [v1.0.0-SNAPSHOT]
- First release (#19143) (#19225) (#19226) (#19227) (#19228)
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

View File

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ID></ID>
<Type>Portlet</Type>
<Profile>
<Description>${project.description}</Description>
<Class>PortletUser</Class>
<Name>${project.artifactId}</Name>
<Version>1.0.0</Version>
<Packages>
<Software>
<Name>${project.artifactId}</Name>
<Description>${project.description}</Description>
<MavenCoordinates>
<groupId>${project.groupId}</groupId>
<artifactId>${project.artifactId}</artifactId>
<version>${project.version}</version>
</MavenCoordinates>
<Files>
<File>${project.build.finalName}.${project.packaging}</File>
</Files>
</Software>
</Packages>
</Profile>
</Resource>

View File

@ -1,18 +0,0 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>descriptor.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>servicearchive</id>
<phase>install</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>

View File

@ -10,6 +10,7 @@ import javax.servlet.http.HttpServletResponse;
import org.gcube.oidc.URLEncodedContextMapper;
import org.gcube.oidc.rest.JWTToken;
import org.gcube.oidc.rest.OpenIdConnectRESTHelper;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
@ -21,6 +22,7 @@ import com.liferay.portal.model.User;
import com.liferay.portal.security.auth.BaseAutoLogin;
import com.liferay.portal.service.ServiceContext;
import com.liferay.portal.service.UserLocalServiceUtil;
import com.liferay.portal.service.UserServiceUtil;
import com.liferay.portal.util.PortalUtil;
import com.liferay.util.PwdGenerator;
@ -115,6 +117,13 @@ public class OpenIdConnectAutoLogin extends BaseAutoLogin {
if (updateUser) {
UserLocalServiceUtil.updateUser(user);
}
byte[] userAvatar = OpenIdConnectRESTHelper.getUserAvatar(configuration.getAvatarURL(), token);
if (userAvatar != null) {
UserServiceUtil.updatePortrait(user.getUserId(), userAvatar);
} else {
UserServiceUtil.deletePortrait(user.getUserId());
}
} catch (SystemException | PortalException e) {
throw new RuntimeException(e);
}

View File

@ -7,3 +7,4 @@ d4science.oidc-scope=openid profile email
d4science.oidc-logout=https://nubis2.int.d4science.net/auth/realms/d4science/protocol/openid-connect/logout
d4science.oidc-logout-on-portal-logout=true
d4science.oidc-create-unexisting-user=true
d4science.oidc-keycloak_avatar=https://nubis2.int.d4science.net/realms/d4science/avatar-provider/avatar