From a62013bc5b358ee2e05c449ab4824c8489082ab9 Mon Sep 17 00:00:00 2001 From: jgomer2001 Date: Wed, 19 Jun 2024 08:26:56 -0500 Subject: [PATCH 1/2] fix: use uid of the user when existing #8734 Signed-off-by: jgomer2001 --- .../io/jans/casa/acctlinking/UidUtils.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/jans-casa/plugins/acct-linking/extras/agama/lib/io/jans/casa/acctlinking/UidUtils.java b/jans-casa/plugins/acct-linking/extras/agama/lib/io/jans/casa/acctlinking/UidUtils.java index a71d993bb22..80d6ec840aa 100644 --- a/jans-casa/plugins/acct-linking/extras/agama/lib/io/jans/casa/acctlinking/UidUtils.java +++ b/jans-casa/plugins/acct-linking/extras/agama/lib/io/jans/casa/acctlinking/UidUtils.java @@ -17,22 +17,24 @@ public class UidUtils { public static String lookupUid(String uidRef, String uid, String extUid, String jansExtAttrName, String jansExtUid) throws IOException { - - if (uidRef == null) { - boolean uidPassed = uid != null; - - if (uidPassed) { - logger.debug("Using uid passed: {}", uid); - return uid; - } - + + if (uidRef == null) { //Find if the external account is already linked to a local one User user = CdiUtil.bean(UserService.class).getUserByAttribute(jansExtAttrName, jansExtUid, true); + if (user == null) { + boolean uidPassed = uid != null; + + if (uidPassed) { + logger.debug("Using uid passed: {}", uid); + return uid; + } + logger.info("Building a uid based on external id {}", extUid); return extUid + "-" + randSuffix(3); } - logger.info("Using uid of the account already linked to {}", extUid); + + logger.info("Using uid of the account already linked to {}", jansExtUid); return user.getUserId(); } From 88486b4aa3bde78e96a14ed771a0bc337b43471f Mon Sep 17 00:00:00 2001 From: jgomer2001 Date: Wed, 19 Jun 2024 08:27:27 -0500 Subject: [PATCH 2/2] doc: fix broken link #8734 Signed-off-by: jgomer2001 --- docs/casa/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/casa/index.md b/docs/casa/index.md index 5a85b2d4d9b..cdf67a66451 100644 --- a/docs/casa/index.md +++ b/docs/casa/index.md @@ -50,7 +50,7 @@ Besides a comprehensive graphical [admin console](./administration/admin-console Casa is a plugin-oriented, Java web application. Existing functionality can be extended and new functionality and APIs can be introduced through plugins. Currently, there are plugins available for the following: -- [Accounts linking](./plugins/accts-linking/index.md) +- [Accounts linking](./plugins/accts-linking/account-linking-index.md) - [Consent management](./plugins/consent-management.md) - [Custom branding](./plugins/custom-branding.md) - [2FA settings](./plugins/2fa-settings.md)