From f582b233afc688cd7090aa01ee1a0af61597bef1 Mon Sep 17 00:00:00 2001 From: Joachim Kuebart Date: Tue, 9 Mar 2021 15:26:30 +0100 Subject: [PATCH] feat: support Microsoft SSO Signed-off-by: Joachim Kuebart --- auth-juniper.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/auth-juniper.c b/auth-juniper.c index 5eca0dd0..edcd1e8c 100644 --- a/auth-juniper.c +++ b/auth-juniper.c @@ -135,6 +135,10 @@ static int parse_input_node(struct openconnect_info *vpninfo, struct oc_auth_for ret = -ENOMEM; goto out; } + if (!strcmp(form->auth_id, "loginForm") && + !strcmp(opt->name, "VerificationCode") && + !can_gen_tokencode(vpninfo, form, opt)) + opt->type = OC_FORM_OPT_TOKEN; } else if (!strcasecmp(type, "username") || !strcasecmp(type, "email")) { opt->type = OC_FORM_OPT_TEXT; xmlnode_get_prop(node, "name", &opt->name); @@ -781,6 +785,13 @@ int oncp_obtain_cookie(struct openconnect_info *vpninfo) ret = -EINVAL; break; } + } else if ((form_name && !strcmp(form_name, "hiddenform")) || + (form_id && !strcmp(form_id, "formSAMLSSO"))) { + form = parse_form_node(vpninfo, node, "submit"); + if (!form) { + ret = -EINVAL; + break; + } } else { char *form_action = (char *)xmlGetProp(node, (unsigned char *)"action"); if (form_action && strstr(form_action, "remediate.cgi")) { -- 2.49.0