diff --git a/components/org.wso2.carbon.identity.application.authenticator.magiclink/src/main/java/org/wso2/carbon/identity/application/authenticator/magiclink/MagicLinkAuthenticator.java b/components/org.wso2.carbon.identity.application.authenticator.magiclink/src/main/java/org/wso2/carbon/identity/application/authenticator/magiclink/MagicLinkAuthenticator.java index eba5754..2e56d39 100644 --- a/components/org.wso2.carbon.identity.application.authenticator.magiclink/src/main/java/org/wso2/carbon/identity/application/authenticator/magiclink/MagicLinkAuthenticator.java +++ b/components/org.wso2.carbon.identity.application.authenticator.magiclink/src/main/java/org/wso2/carbon/identity/application/authenticator/magiclink/MagicLinkAuthenticator.java @@ -114,7 +114,7 @@ public AuthenticatorFlowStatus process(HttpServletRequest request, HttpServletRe LogoutFailedException { this.authenticationContext = context; - if (!isIdfInitiatedFromMagicLink()) { + if (!isIdfInitiatedFromMagicLink() || !isUsernameAvailableInRequest(request)) { return super.process(request, response, authenticationContext); } if (context.isLogoutRequest()) { @@ -517,6 +517,11 @@ private String validateIdentifierFromRequest(HttpServletRequest request, Authent return identifierFromRequest; } + private boolean isUsernameAvailableInRequest(HttpServletRequest request) { + + return StringUtils.isNotBlank(request.getParameter(USER_NAME)); + } + /** * This method is used to resolve the user from authentication response from identifier handler. * diff --git a/components/org.wso2.carbon.identity.application.authenticator.magiclink/src/test/java/org/wso2/carbon/identity/application/authenticator/magiclink/MagicLinkAuthenticatorTest.java b/components/org.wso2.carbon.identity.application.authenticator.magiclink/src/test/java/org/wso2/carbon/identity/application/authenticator/magiclink/MagicLinkAuthenticatorTest.java index 5583c5b..24910c3 100644 --- a/components/org.wso2.carbon.identity.application.authenticator.magiclink/src/test/java/org/wso2/carbon/identity/application/authenticator/magiclink/MagicLinkAuthenticatorTest.java +++ b/components/org.wso2.carbon.identity.application.authenticator.magiclink/src/test/java/org/wso2/carbon/identity/application/authenticator/magiclink/MagicLinkAuthenticatorTest.java @@ -93,7 +93,7 @@ AbstractUserStoreManager.class, MagicLinkAuthContextCache.class, MagicLinkServiceDataHolder.class, ConfigurationFacade.class, FrameworkUtils.class, MultitenantUtils.class, UserCoreUtil.class, FrameworkServiceDataHolder.class, LoggerUtils.class }) -@PowerMockIgnore({ "javax.net.*", "javax.security.*", "javax.crypto.*", "javax.xml.*" }) +@PowerMockIgnore({ "javax.net.*", "javax.security.*", "javax.crypto.*", "javax.xml.*", "jdk.internal.reflect.*" }) public class MagicLinkAuthenticatorTest { private static final String USER_STORE_DOMAIN = "PRIMARY";