Skip to content
This repository was archived by the owner on Sep 28, 2022. It is now read-only.

Commit ec721a0

Browse files
author
Dominik František Bučík
authored
Merge pull request #250 from dBucik/removeForceauthn
fix: 🐛 Remove forceAuthn for MFA
2 parents bdbf99e + e3ff40c commit ec721a0

File tree

4 files changed

+4
-38
lines changed

4 files changed

+4
-38
lines changed

perun-oidc-server-webapp/src/main/webapp/WEB-INF/web-context.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -569,6 +569,10 @@
569569
</bean>
570570

571571
<bean id="samlEntryPoint" class="cz.muni.ics.oidc.saml.PerunSamlEntryPoint">
572+
<constructor-arg name="config" ref="perunOidcConfig"/>
573+
<constructor-arg name="facilityAttrsConfig" ref="facilityAttrsConfig"/>
574+
<constructor-arg name="perunAdapter" ref="perunAdapter"/>
575+
<constructor-arg name="samlProperties" ref="samlProperties"/>
572576
<property name="defaultProfileOptions" ref="webSSOProfileOptions"/>
573577
</bean>
574578

perun-oidc-server/src/main/java/cz/muni/ics/oidc/saml/PerunPostEncoder.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,10 @@
66
import org.opensaml.saml2.binding.encoding.HTTPPostEncoder;
77
import org.opensaml.ws.message.MessageContext;
88
import org.opensaml.ws.message.encoder.MessageEncodingException;
9-
import org.slf4j.Logger;
10-
import org.slf4j.LoggerFactory;
119
import org.springframework.util.StringUtils;
1210

1311
public class PerunPostEncoder extends HTTPPostEncoder {
1412

15-
private static final Logger log = LoggerFactory.getLogger(PerunPostEncoder.class);
16-
1713
public PerunPostEncoder(VelocityEngine engine, String templateId) {
1814
super(engine, templateId);
1915
}

perun-oidc-server/src/main/java/cz/muni/ics/oidc/saml/PerunSamlEntryPoint.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import static cz.muni.ics.oidc.server.filters.AuthProcFilterConstants.IDP_ENTITY_ID_PREFIX;
88
import static cz.muni.ics.oidc.server.filters.AuthProcFilterConstants.PARAM_CLIENT_ID;
99
import static cz.muni.ics.oidc.server.filters.AuthProcFilterConstants.PARAM_PROMPT;
10-
import static cz.muni.ics.oidc.server.filters.AuthProcFilterConstants.REFEDS_MFA;
1110

1211
import cz.muni.ics.oidc.models.Facility;
1312
import cz.muni.ics.oidc.models.PerunAttributeValue;
@@ -33,7 +32,6 @@
3332
import org.opensaml.saml2.metadata.SPSSODescriptor;
3433
import org.opensaml.saml2.metadata.provider.MetadataProviderException;
3534
import org.opensaml.ws.message.encoder.MessageEncodingException;
36-
import org.springframework.beans.factory.annotation.Autowired;
3735
import org.springframework.security.core.AuthenticationException;
3836
import org.springframework.security.saml.SAMLConstants;
3937
import org.springframework.security.saml.SAMLEntryPoint;
@@ -50,7 +48,6 @@ public class PerunSamlEntryPoint extends SAMLEntryPoint {
5048
private final FacilityAttrsConfig facilityAttrsConfig;
5149
private final SamlProperties samlProperties;
5250

53-
@Autowired
5451
public PerunSamlEntryPoint(PerunAdapter perunAdapter,
5552
PerunOidcConfig config,
5653
FacilityAttrsConfig facilityAttrsConfig,
@@ -140,17 +137,9 @@ protected void initializeSSO(HttpServletRequest request, SAMLMessageContext cont
140137
private void addExtraParams(HttpServletRequest request, WebSSOProfileOptions options) {
141138
log.debug("Transforming OIDC params to SAML");
142139
processAcrValues(request, options);
143-
processForceAuthn(request, options);
144140
processPrompt(request, options);
145141
}
146142

147-
private void processForceAuthn(HttpServletRequest request, WebSSOProfileOptions options) {
148-
if (PerunSamlUtils.needsReAuthByForceAuthn(request)) {
149-
log.debug("Transformed forceAuthn parameter to SAML forceAuthn=true");
150-
options.setForceAuthN(true);
151-
}
152-
}
153-
154143
private void processPrompt(HttpServletRequest request, WebSSOProfileOptions options) {
155144
if (PerunSamlUtils.needsReAuthByPrompt(request)) {
156145
log.debug("Transformed prompt parameter ({}) to SAML forceAuthn=true",
@@ -173,11 +162,6 @@ private void processAcrValues(HttpServletRequest request, WebSSOProfileOptions o
173162
}
174163
}
175164

176-
if (PerunSamlUtils.needsReAuthByMfa(request)) {
177-
log.debug("ACRs include {}, added forceAuthn to proxy request", REFEDS_MFA);
178-
options.setForceAuthN(true);
179-
}
180-
181165
if (StringUtils.hasText(request.getParameter(PARAM_CLIENT_ID)) && config.isAddClientIdToAcrs()) {
182166
String clientIdAcr = CLIENT_ID_PREFIX + request.getParameter(PARAM_CLIENT_ID);
183167
log.debug("Adding client_id ACR ({}) to list of AuthnContextClassRefs for purposes" +
Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,9 @@
11
package cz.muni.ics.oidc.saml;
22

3-
import static cz.muni.ics.oidc.server.filters.AuthProcFilterConstants.PARAM_ACR_VALUES;
4-
import static cz.muni.ics.oidc.server.filters.AuthProcFilterConstants.PARAM_FORCE_AUTHN;
53
import static cz.muni.ics.oidc.server.filters.AuthProcFilterConstants.PARAM_PROMPT;
64
import static cz.muni.ics.oidc.server.filters.AuthProcFilterConstants.PROMPT_LOGIN;
75
import static cz.muni.ics.oidc.server.filters.AuthProcFilterConstants.PROMPT_SELECT_ACCOUNT;
86

9-
import cz.muni.ics.oidc.server.filters.AuthProcFilterConstants;
107
import javax.servlet.ServletRequest;
118
import lombok.extern.slf4j.Slf4j;
129
import org.springframework.util.StringUtils;
@@ -22,19 +19,4 @@ public static boolean needsReAuthByPrompt(ServletRequest request) {
2219
return res;
2320
}
2421

25-
public static boolean needsReAuthByForceAuthn(ServletRequest request) {
26-
String forceAuthn = request.getParameter(PARAM_FORCE_AUTHN);
27-
boolean res = (StringUtils.hasText(forceAuthn) && Boolean.parseBoolean(forceAuthn));
28-
log.debug("requires reAuth by forceAuthn - {}", res);
29-
return res;
30-
}
31-
32-
public static boolean needsReAuthByMfa(ServletRequest request) {
33-
String acrValues = request.getParameter(PARAM_ACR_VALUES);
34-
boolean res = StringUtils.hasText(acrValues)
35-
&& acrValues.contains(AuthProcFilterConstants.REFEDS_MFA);
36-
log.debug("requires reAuth by MFA acr - {}", res);
37-
return res;
38-
}
39-
4022
}

0 commit comments

Comments
 (0)