ACS-4888 Use Keycloak free tas-utility (#1827)

This commit is contained in:
Piotr Żurek
2023-03-23 18:29:19 +01:00
committed by GitHub
parent f2d858f911
commit fb119565dc
3 changed files with 7 additions and 11 deletions

View File

@@ -4,8 +4,6 @@ import org.alfresco.utility.data.AisToken;
import org.alfresco.utility.data.auth.DataAIS; import org.alfresco.utility.data.auth.DataAIS;
import org.alfresco.utility.model.UserModel; import org.alfresco.utility.model.UserModel;
import org.apache.chemistry.opencmis.commons.SessionParameter; import org.apache.chemistry.opencmis.commons.SessionParameter;
import org.keycloak.authorization.client.util.HttpResponseException;
import org.keycloak.representations.AccessTokenResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -86,9 +84,9 @@ public class AuthParameterProviderFactory
parameters.put(SessionParameter.OAUTH_REFRESH_TOKEN, aisToken.getRefreshToken()); parameters.put(SessionParameter.OAUTH_REFRESH_TOKEN, aisToken.getRefreshToken());
parameters.put(SessionParameter.OAUTH_EXPIRATION_TIMESTAMP, String.valueOf(System.currentTimeMillis() parameters.put(SessionParameter.OAUTH_EXPIRATION_TIMESTAMP, String.valueOf(System.currentTimeMillis()
+ (aisToken.getExpiresIn() * 1000))); // getExpiresIn is in seconds + (aisToken.getExpiresIn() * 1000))); // getExpiresIn is in seconds
parameters.put(SessionParameter.OAUTH_TOKEN_ENDPOINT, cmisProperties.aisProperty().getAdapterConfig().getAuthServerUrl() parameters.put(SessionParameter.OAUTH_TOKEN_ENDPOINT, cmisProperties.aisProperty().getAuthServerUrl()
+ "/realms/alfresco/protocol/openid-connect/token"); + "/realms/alfresco/protocol/openid-connect/token");
parameters.put(SessionParameter.OAUTH_CLIENT_ID, cmisProperties.aisProperty().getAdapterConfig().getResource()); parameters.put(SessionParameter.OAUTH_CLIENT_ID, cmisProperties.aisProperty().getResource());
return parameters; return parameters;
} }
@@ -110,10 +108,10 @@ public class AuthParameterProviderFactory
// Attempt to get an access token for userModel from AIS // Attempt to get an access token for userModel from AIS
aisToken = dataAIS.perform().getAccessToken(userModel); aisToken = dataAIS.perform().getAccessToken(userModel);
} }
catch (HttpResponseException e) catch (AssertionError e)
{ {
// Trying to authenticate with invalid user credentials so return an invalid access token // Trying to authenticate with invalid user credentials so return an invalid access token
if (e.getStatusCode() == 401) if (e.getMessage().contains("invalid_grant"))
{ {
STEP(String.format("%s Invalid user credentials were provided %s:%s. Using invalid token for reqest.", STEP(String.format("%s Invalid user credentials were provided %s:%s. Using invalid token for reqest.",
STEP_PREFIX, userModel.getUsername(), userModel.getPassword())); STEP_PREFIX, userModel.getUsername(), userModel.getPassword()));

View File

@@ -30,7 +30,6 @@ import static org.alfresco.utility.report.log.Step.STEP;
import org.alfresco.utility.data.AisToken; import org.alfresco.utility.data.AisToken;
import org.alfresco.utility.data.auth.DataAIS; import org.alfresco.utility.data.auth.DataAIS;
import org.alfresco.utility.model.UserModel; import org.alfresco.utility.model.UserModel;
import org.keycloak.authorization.client.util.HttpResponseException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -86,12 +85,11 @@ public class RestAisAuthentication
// Attempt to get an access token for userModel from AIS // Attempt to get an access token for userModel from AIS
aisToken = dataAIS.perform().getAccessToken(userModel); aisToken = dataAIS.perform().getAccessToken(userModel);
} }
catch (HttpResponseException e) catch (AssertionError e)
{ {
// Trying to authenticate with invalid user credentials or disabled // Trying to authenticate with invalid user credentials or disabled
// user so return an invalid access token // user so return an invalid access token
String httpResponse = new String(e.getBytes()); if (e.getMessage().contains("invalid_grant"))
if (e.getStatusCode() == 401 || httpResponse.contains(USER_DISABLED_MSG))
{ {
STEP(String.format("%s User disabled or invalid user credentials were provided %s:%s. Using invalid token for request.", STEP_PREFIX, STEP(String.format("%s User disabled or invalid user credentials were provided %s:%s. Using invalid token for request.", STEP_PREFIX,
userModel.getUsername(), userModel.getPassword())); userModel.getUsername(), userModel.getPassword()));

View File

@@ -123,7 +123,7 @@
<dependency.mysql.version>8.0.30</dependency.mysql.version> <dependency.mysql.version>8.0.30</dependency.mysql.version>
<dependency.mysql-image.version>8</dependency.mysql-image.version> <dependency.mysql-image.version>8</dependency.mysql-image.version>
<dependency.mariadb.version>2.7.4</dependency.mariadb.version> <dependency.mariadb.version>2.7.4</dependency.mariadb.version>
<dependency.tas-utility.version>3.0.61</dependency.tas-utility.version> <dependency.tas-utility.version>4.0.0</dependency.tas-utility.version>
<dependency.rest-assured.version>5.2.0</dependency.rest-assured.version> <dependency.rest-assured.version>5.2.0</dependency.rest-assured.version>
<dependency.tas-email.version>1.11</dependency.tas-email.version> <dependency.tas-email.version>1.11</dependency.tas-email.version>
<dependency.tas-webdav.version>1.7</dependency.tas-webdav.version> <dependency.tas-webdav.version>1.7</dependency.tas-webdav.version>