[java-plugin-shibd-oidc] branch main updated: Fix some null issues and remove implicit output handling.
Codeberg
noreply at shibboleth.net
Wed May 20 17:16:50 UTC 2026
This is an automated email from the git hooks/post-receive script.
codeberg pushed a commit to branch main
in repository java-plugin-shibd-oidc.
View the commit online:
https://codeberg.org/Shibboleth/java-plugin-shibd-oidc/commit/53a4d7779438f16d8266705921a8bb0290b0b8d7
The following commit(s) were added to refs/heads/main by this push:
new 53a4d77 Fix some null issues and remove implicit output handling.
53a4d77 is described below
commit 53a4d7779438f16d8266705921a8bb0290b0b8d7
Author: Scott Cantor <scott at restingparrotsoftware.com>
AuthorDate: Wed May 20 13:16:36 2026 -0400
Fix some null issues and remove implicit output handling.
---
.../idp/flows/sp/consumer/oidc/oidc-beans.xml | 3 +-
.../idp/flows/sp/initiator/oidc/oidc-beans.xml | 3 +-
.../flows/AbstractOIDCTokenConsumerFlowTest.java | 5 +-
.../oidc/flows/OIDCSessionInitiatorFlowTest.java | 4 +-
.../sp/oidc/flows/OIDCTokenConsumerFlowTest.java | 27 ++-
.../net/shibboleth/idp/module/conf/logback.xml | 210 ---------------------
.../profile/impl/PrepareAgentResponseTest.java | 7 +-
.../impl/ValidateUserInfoJSONObjectClaimsTest.java | 21 +--
8 files changed, 39 insertions(+), 241 deletions(-)
diff --git a/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/oidc/oidc-beans.xml b/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/oidc/oidc-beans.xml
index e5ceda3..fc12541 100644
--- a/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/oidc/oidc-beans.xml
+++ b/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/consumer/oidc/oidc-beans.xml
@@ -35,8 +35,7 @@
class="net.shibboleth.sp.profile.impl.RecoverStateData" scope="prototype"
p:stateTokenLookupStrategy-ref="OAuthStateLookup"
p:errorFatal="true"
- p:stateDataClass="net.shibboleth.sp.oidc.profile.AuthenticationRequestStateData"
- p:createOutputObjects="true"/>
+ p:stateDataClass="net.shibboleth.sp.oidc.profile.AuthenticationRequestStateData" />
<bean id="OAuthStateLookup" class="net.shibboleth.sp.oidc.messaging.context.navigate.StateFromResponseLookupFunction"/>
diff --git a/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/initiator/oidc/oidc-beans.xml b/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/initiator/oidc/oidc-beans.xml
index a681ad8..0083f44 100644
--- a/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/initiator/oidc/oidc-beans.xml
+++ b/sp-oidc-conf-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/sp/initiator/oidc/oidc-beans.xml
@@ -286,7 +286,6 @@
-->
<bean id="PreserveState"
class="net.shibboleth.sp.profile.PreserveStateDataAction" scope="prototype"
- p:createOutputObjects="true"
p:stateDataContextLookupStrategy-ref="shibboleth.ChildLookup.StateDataContext"
p:errorFatal="%{sp.stateToken.errorsFatal:true}" />
@@ -343,7 +342,7 @@
</bean>
<bean id="EncodeMessage" class="net.shibboleth.sp.profile.impl.EncodeMessage" scope="prototype"
- p:createOutputObjects="true" p:messageEncoderFactory-ref="messageEncoderFactory" />
+ p:messageEncoderFactory-ref="messageEncoderFactory" />
<!-- Message Encoder factory is a prototype to allow reuse of the encoders -->
<bean id="messageEncoderFactory"
diff --git a/sp-oidc-conf-impl/src/test/java/net/shibboleth/sp/oidc/flows/AbstractOIDCTokenConsumerFlowTest.java b/sp-oidc-conf-impl/src/test/java/net/shibboleth/sp/oidc/flows/AbstractOIDCTokenConsumerFlowTest.java
index f61a494..3c15ac8 100644
--- a/sp-oidc-conf-impl/src/test/java/net/shibboleth/sp/oidc/flows/AbstractOIDCTokenConsumerFlowTest.java
+++ b/sp-oidc-conf-impl/src/test/java/net/shibboleth/sp/oidc/flows/AbstractOIDCTokenConsumerFlowTest.java
@@ -323,13 +323,16 @@ public abstract class AbstractOIDCTokenConsumerFlowTest extends AbstractSPFlowTe
if (output == null) {
fail("DDF output can not be null");
}
+ assert output != null;
// Check cookies are unset
final DDF headers = output.getmember("http.headers");
// Check that any Set-Cookie is an unset, we do not set new cookies in the consumer flow
if (headers.islist()) {
headers.forEach(header -> {
+ assert header != null;
if (header.isstring() && "Set-Cookie".equals(header.name())){
- Assert.assertTrue(header.string().contains("Max-Age=0"),"Cookies must be unset");
+ final String val = header.string();
+ Assert.assertTrue(val != null && val.contains("Max-Age=0"),"Cookies must be unset");
}
});
}
diff --git a/sp-oidc-conf-impl/src/test/java/net/shibboleth/sp/oidc/flows/OIDCSessionInitiatorFlowTest.java b/sp-oidc-conf-impl/src/test/java/net/shibboleth/sp/oidc/flows/OIDCSessionInitiatorFlowTest.java
index 2c9123a..96ce49e 100644
--- a/sp-oidc-conf-impl/src/test/java/net/shibboleth/sp/oidc/flows/OIDCSessionInitiatorFlowTest.java
+++ b/sp-oidc-conf-impl/src/test/java/net/shibboleth/sp/oidc/flows/OIDCSessionInitiatorFlowTest.java
@@ -25,6 +25,7 @@ import java.net.URISyntaxException;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
@@ -39,7 +40,6 @@ import org.springframework.context.ApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.web.WebAppConfiguration;
-import org.springframework.util.ObjectUtils;
import org.springframework.webflow.engine.impl.FlowExecutionImpl;
import org.springframework.webflow.executor.FlowExecutionResult;
import org.testng.Assert;
@@ -602,7 +602,7 @@ public class OIDCSessionInitiatorFlowTest extends AbstractSPFlowTest {
if (requestObjectClaims != null) {
claimValue = requestObjectClaims.getClaim(claim);
}
- assertTrue(ObjectUtils.nullSafeEquals(claimValue, expectedClaimValue));
+ assertTrue(Objects.equals(claimValue, expectedClaimValue));
}
/**
diff --git a/sp-oidc-conf-impl/src/test/java/net/shibboleth/sp/oidc/flows/OIDCTokenConsumerFlowTest.java b/sp-oidc-conf-impl/src/test/java/net/shibboleth/sp/oidc/flows/OIDCTokenConsumerFlowTest.java
index 2e724ea..a06afe6 100644
--- a/sp-oidc-conf-impl/src/test/java/net/shibboleth/sp/oidc/flows/OIDCTokenConsumerFlowTest.java
+++ b/sp-oidc-conf-impl/src/test/java/net/shibboleth/sp/oidc/flows/OIDCTokenConsumerFlowTest.java
@@ -247,7 +247,8 @@ public class OIDCTokenConsumerFlowTest extends AbstractOIDCTokenConsumerFlowTest
assertFlowExecutionResult(result, TestConstants.FLOW_ID);
assertFlowExecutionOutcome(result.getOutcome());
final DDF output = assertOutputMessageEvent(result, EventIds.MESSAGE_PROC_ERROR);
- System.out.println("test output: " + output.toString());
+ assert output != null;
+ System.out.println("DDF: " + output.toString());
TestHelper.validateAssertionError(output, "No authentication time found in token");
}
@@ -348,7 +349,8 @@ public class OIDCTokenConsumerFlowTest extends AbstractOIDCTokenConsumerFlowTest
assertFlowExecutionResult(result, TestConstants.FLOW_ID);
assertFlowExecutionOutcome(result.getOutcome());
final DDF output = assertOutputMessageEvent(result, EventIds.MESSAGE_PROC_ERROR);
- System.out.println("test output: " + output.toString());
+ assert output != null;
+ System.out.println("DDF: " + output.toString());
TestHelper.validateAssertionError(output,
"Did not receive one of the requested ACR claim values. Requested '[loa1]', received 'loa2'");
@@ -453,7 +455,8 @@ public class OIDCTokenConsumerFlowTest extends AbstractOIDCTokenConsumerFlowTest
assertFlowExecutionResult(result, TestConstants.FLOW_ID);
assertFlowExecutionOutcome(result.getOutcome());
final DDF output = assertOutputMessageEvent(result, EventIds.MESSAGE_PROC_ERROR);
- System.out.println("test output: " + output.toString());
+ assert output != null;
+ System.out.println("DDF: " + output.toString());
TestHelper.validateAssertionError(output,
"JWT \"azp\" claim has value bad-azp but should be testspclientid");
}
@@ -486,12 +489,14 @@ public class OIDCTokenConsumerFlowTest extends AbstractOIDCTokenConsumerFlowTest
assertFlowExecutionResult(result, TestConstants.FLOW_ID);
assertFlowExecutionOutcome(result.getOutcome());
final DDF output = assertOutputMessageEvent(result, EventIds.MESSAGE_PROC_ERROR);
- System.out.println("test output: " + output.toString());
+ assert output != null;
+ System.out.println("DDF: " + output.toString());
TestHelper.validateAssertionError(output,
"JWT \"nonce\" claim has value bad-idtoken-nonce but should be bd1b5f211250c57e");
}
- /** Test an error response from the Token endpoint.*/
+ /** Test an error response from the Token endpoint.
+ * @throws Exception */
@Test
public void testFail_ErrorFromTokenExchange() throws Exception {
@@ -514,7 +519,8 @@ public class OIDCTokenConsumerFlowTest extends AbstractOIDCTokenConsumerFlowTest
assertFlowExecutionResult(result, TestConstants.FLOW_ID);
assertFlowExecutionOutcome(result.getOutcome());
final DDF output = assertOutputMessageEvent(result, EventIds.MESSAGE_PROC_ERROR);
- System.out.println("test output: " + output.toString());
+ assert output != null;
+ System.out.println("DDF: " + output.toString());
}
/**
@@ -576,7 +582,8 @@ public class OIDCTokenConsumerFlowTest extends AbstractOIDCTokenConsumerFlowTest
assertFlowExecutionResult(result, TestConstants.FLOW_ID);
assertFlowExecutionOutcome(result.getOutcome());
final DDF output = assertOutputMessageEvent(result, EventIds.MESSAGE_PROC_ERROR);
- System.out.println("test output: " + output.toString());
+ assert output != null;
+ System.out.println("DDF: " + output.toString());
}
@@ -601,7 +608,8 @@ public class OIDCTokenConsumerFlowTest extends AbstractOIDCTokenConsumerFlowTest
assertFlowExecutionResult(result, TestConstants.FLOW_ID);
assertFlowExecutionOutcome(result.getOutcome());
final DDF output = assertOutputMessageEvent(result, EventIds.MESSAGE_PROC_ERROR);
- System.out.println("DDF: "+output.toString());
+ assert output != null;
+ System.out.println("DDF: " + output.toString());
validateCookiesAreUnset(output);
}
@@ -631,7 +639,8 @@ public class OIDCTokenConsumerFlowTest extends AbstractOIDCTokenConsumerFlowTest
assertFlowExecutionResult(result, TestConstants.FLOW_ID);
assertFlowExecutionOutcome(result.getOutcome());
final DDF output = assertOutputMessageEvent(result, EventIds.MESSAGE_PROC_ERROR);
- System.out.println("DDF: "+output.toString());
+ assert output != null;
+ System.out.println("DDF: " + output.toString());
validateCookiesAreUnset(output);
// Now construct a valid response using the state sent in the failed response, as the state is re-used this
diff --git a/sp-oidc-conf-impl/src/test/resources/net/shibboleth/idp/module/conf/logback.xml b/sp-oidc-conf-impl/src/test/resources/net/shibboleth/idp/module/conf/logback.xml
deleted file mode 100644
index f22dd67..0000000
--- a/sp-oidc-conf-impl/src/test/resources/net/shibboleth/idp/module/conf/logback.xml
+++ /dev/null
@@ -1,210 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration>
-
- <!-- Variables for simplifying logging configuration. http://logback.qos.ch/manual/configuration.html#variableSubstitution -->
-
- <!-- If you want to use custom properties in this config file, we load the main property file for you. -->
- <variable file="${idp.home}/conf/idp.properties" />
-
- <!-- Location and retention. -->
-
- <variable name="idp.logfiles" value="${idp.logfiles:-${idp.home}/logs}" />
- <variable name="idp.loghistory" value="${idp.loghistory:-180}" />
-
- <!-- Much higher performance if you operate on DEBUG. -->
- <!-- <variable name="idp.process.appender" value="ASYNC_PROCESS" /> -->
-
- <!-- Logging level shortcuts. -->
- <variable name="idp.loglevel.idp" value="${idp.loglevel.idp:-OFF}" />
- <variable name="idp.loglevel.ldap" value="${idp.loglevel.ldap:-OFF}" />
- <variable name="idp.loglevel.messages" value="${idp.loglevel.messages:-OFF}" />
- <variable name="idp.loglevel.encryption" value="${idp.loglevel.encryption:-OFF}" />
- <variable name="idp.loglevel.opensaml" value="${idp.loglevel.opensaml:-OFF}" />
- <variable name="idp.loglevel.props" value="${idp.loglevel.props:-OFF}" />
- <variable name="idp.loglevel.httpclient" value="${idp.loglevel.httpclient:-OFF}" />
-
- <variable name="idp.loglevel.oidc" value="${idp.loglevel.oidc:-OFF}" />
- <variable name="idp.loglevel.oidc-rp" value="${idp.loglevel.oidc-rp:-OFF}" />
-
- <!-- Don't turn these up unless you want a *lot* of noise. -->
- <variable name="idp.loglevel.spring" value="${idp.loglevel.spring:-OFF}" />
- <variable name="idp.loglevel.container" value="${idp.loglevel.container:-OFF}" />
- <variable name="idp.loglevel.xmlsec" value="${idp.loglevel.xmlsec:-OFF}" />
-
- <!-- =========================================================== -->
- <!-- ============== Logging Categories and Levels ============== -->
- <!-- =========================================================== -->
-
- <!-- Logs IdP, but not OpenSAML, messages -->
- <logger name="net.shibboleth" level="${idp.loglevel.idp}"/>
- <logger name="net.shibboleth.oidc" level="${idp.loglevel.oidc}"/>
- <logger name="net.shibboleth.sp" level="${idp.loglevel.oidc-rp}"/>
-
- <!-- Logs OpenSAML, but not IdP, messages -->
- <logger name="org.opensaml.saml" level="${idp.loglevel.opensaml}"/>
-
- <!-- Logs LDAP related messages -->
- <logger name="org.ldaptive" level="${idp.loglevel.ldap}"/>
-
- <!-- Logs embedded HTTP client messages -->
- <logger name="org.apache.http" level="${idp.loglevel.httpclient}"/>
-
- <!-- Logs inbound and outbound protocols messages at DEBUG level -->
- <logger name="PROTOCOL_MESSAGE" level="${idp.loglevel.messages}" />
-
- <!-- Logs unencrypted SAML at DEBUG level -->
- <logger name="org.opensaml.saml.saml2.encryption.Encrypter" level="${idp.loglevel.encryption}" />
- <logger name="org.opensaml.saml.saml2.encryption.Decrypter" level="${idp.loglevel.encryption}" />
-
- <!-- Logs system properties during startup at DEBUG level -->
- <logger name="net.shibboleth.idp.log.LogbackLoggingService" level="${idp.loglevel.props}" />
-
- <!-- Especially chatty. -->
- <logger name="org.apache.xml.security" level="${idp.loglevel.xmlsec}" />
- <logger name="org.springframework" level="${idp.loglevel.spring}"/>
- <logger name="org.apache.catalina" level="${idp.loglevel.container}"/>
- <logger name="org.eclipse.jetty" level="${idp.loglevel.container}"/>
-
-
- <!-- =========================================================== -->
- <!-- ============== Low Level Details or Changes =============== -->
- <!-- =========================================================== -->
-
- <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
- <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
- <evaluator>
- <matcher>
- <Name>VelocityStatusViewFilter</Name>
- <regex>ResourceManager : unable to find resource 'status.vm' in any resource loader.</regex>
- </matcher>
- <expression>VelocityStatusViewFilter.matches(formattedMessage)</expression>
- </evaluator>
- <OnMatch>DENY</OnMatch>
- </filter>
- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
- <charset>UTF-8</charset>
- <Pattern>%date{ISO8601} - %level [%logger:%line] - %msg%n</Pattern>
- </encoder>
- </appender>
-
- <!-- Process log. -->
- <appender name="IDP_PROCESS" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <File>${idp.logfiles}/idp-process.log</File>
-
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${idp.logfiles}/idp-process-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
- <maxHistory>${idp.loghistory}</maxHistory>
- </rollingPolicy>
-
- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
- <charset>UTF-8</charset>
- <Pattern>%date{ISO8601} - %mdc{idp.remote_addr} - %level [%logger:%line] - %msg%n%ex{short}</Pattern>
- </encoder>
-
- <!-- Ignore Velocity status page error. -->
- <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
- <evaluator>
- <matcher>
- <Name>VelocityStatusMatcher</Name>
- <regex>ResourceManager\s*: unable to find resource 'status\.vm' in any resource loader\.</regex>
- </matcher>
- <expression>VelocityStatusMatcher.matches(formattedMessage)</expression>
- </evaluator>
- <OnMatch>DENY</OnMatch>
- </filter>
- </appender>
-
- <appender name="ASYNC_PROCESS" class="ch.qos.logback.classic.AsyncAppender">
- <appender-ref ref="IDP_PROCESS" />
- <discardingThreshold>0</discardingThreshold>
- </appender>
-
- <appender name="IDP_WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <!-- Suppress anything below WARN. -->
- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
- <level>WARN</level>
- </filter>
-
- <File>${idp.logfiles}/idp-warn.log</File>
-
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${idp.logfiles}/idp-warn-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
- <maxHistory>${idp.loghistory}</maxHistory>
- </rollingPolicy>
-
- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
- <charset>UTF-8</charset>
- <Pattern>%date{ISO8601} - %mdc{idp.remote_addr} - %level [%logger:%line] - %msg%n%ex{full}</Pattern>
- </encoder>
-
- <!-- Ignore Velocity status page error. -->
- <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
- <evaluator>
- <matcher>
- <Name>VelocityStatusMatcher</Name>
- <regex>ResourceManager\s*: unable to find resource 'status\.vm' in any resource loader\.</regex>
- </matcher>
- <expression>VelocityStatusMatcher.matches(formattedMessage)</expression>
- </evaluator>
- <OnMatch>DENY</OnMatch>
- </filter>
- </appender>
-
- <!-- Audit log. -->
- <appender name="IDP_AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <File>${idp.logfiles}/idp-audit.log</File>
-
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${idp.logfiles}/idp-audit-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
- <maxHistory>${idp.loghistory}</maxHistory>
- </rollingPolicy>
-
- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
- <charset>UTF-8</charset>
- <Pattern>%msg%n</Pattern>
- </encoder>
- </appender>
-
- <!-- Consent audit log. -->
- <appender name="IDP_CONSENT_AUDIT" class="ch.qos.logback.core.rolling.RollingFileAppender">
- <File>${idp.logfiles}/idp-consent-audit.log</File>
-
- <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
- <fileNamePattern>${idp.logfiles}/idp-consent-audit-%d{yyyy-MM-dd}.log.gz</fileNamePattern>
- <maxHistory>${idp.loghistory}</maxHistory>
- </rollingPolicy>
-
- <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
- <charset>UTF-8</charset>
- <Pattern>%msg%n</Pattern>
- </encoder>
- </appender>
-
- <!-- F-TICKS syslog destination. -->
- <appender name="IDP_FTICKS" class="ch.qos.logback.classic.net.SyslogAppender">
- <syslogHost>${idp.fticks.loghost:-localhost}</syslogHost>
- <port>${idp.fticks.logport:-514}</port>
- <facility>AUTH</facility>
- <suffixPattern>[%thread] %logger %msg</suffixPattern>
- </appender>
-
- <logger name="Shibboleth-Audit" level="${idp.loglevel.audit:-OFF}">
- <appender-ref ref="${idp.audit.appender:-IDP_AUDIT}"/>
- </logger>
-
- <logger name="Shibboleth-FTICKS" level="${idp.loglevel.fticks:-OFF}" additivity="false">
- <appender-ref ref="${idp.fticks.appender:-IDP_FTICKS}"/>
- </logger>
-
- <logger name="Shibboleth-Consent-Audit" level="${idp.loglevel.consent-audit:-OFF}">
- <appender-ref ref="${idp.consent.appender:-IDP_CONSENT_AUDIT}"/>
- </logger>
-
- <root level="${idp.loglevel.root:-OFF}">
- <appender-ref ref="${idp.process.appender:-IDP_PROCESS}"/>
- <appender-ref ref="${idp.warn.appender:-IDP_WARN}" />
- <appender-ref ref="CONSOLE" />
- </root>
-
-
-</configuration>
diff --git a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/PrepareAgentResponseTest.java b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/PrepareAgentResponseTest.java
index 25f532b..e6b6e95 100644
--- a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/PrepareAgentResponseTest.java
+++ b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/PrepareAgentResponseTest.java
@@ -43,6 +43,7 @@ import net.shibboleth.sp.ddf.DDF;
import net.shibboleth.sp.messaging.RemotedHttpServletResponse;
import net.shibboleth.sp.profile.ConsumerConstants;
import net.shibboleth.sp.profile.impl.BaseApplicationActionTest;
+import net.shibboleth.sp.profile.impl.CreateOutputMessage;
/**
* Tests for {@link PrepareAgentResponse}.
@@ -71,7 +72,11 @@ public class PrepareAgentResponseTest extends BaseApplicationActionTest{
rpConfig = new DefaultOIDCAuthorizationConfiguration();
partyContext.setProfileConfig(rpConfig);
prc.addSubcontext(partyContext);
-
+
+ final CreateOutputMessage createAction = new CreateOutputMessage();
+ createAction.setCreateServletResponse(true);
+ createAction.initialize();
+ ActionTestingSupport.assertProceedEvent(createAction.execute(src));
}
diff --git a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/ValidateUserInfoJSONObjectClaimsTest.java b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/ValidateUserInfoJSONObjectClaimsTest.java
index 18d7cbf..2c23ef2 100644
--- a/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/ValidateUserInfoJSONObjectClaimsTest.java
+++ b/sp-oidc-impl/src/test/java/net/shibboleth/sp/oidc/profile/impl/ValidateUserInfoJSONObjectClaimsTest.java
@@ -15,8 +15,6 @@
package net.shibboleth.sp.oidc.profile.impl;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertNull;
import java.time.Instant;
@@ -38,6 +36,7 @@ import com.nimbusds.openid.connect.sdk.claims.ClaimsSet;
import com.nimbusds.openid.connect.sdk.claims.UserInfo;
import com.nimbusds.openid.connect.sdk.token.OIDCTokens;
+import net.shibboleth.idp.profile.testing.ActionTestingSupport;
import net.shibboleth.oidc.profile.context.AccessTokenResponseContext;
import net.shibboleth.oidc.profile.context.UserInfoResponseContext;
import net.shibboleth.oidc.profile.core.OidcEventIds;
@@ -99,8 +98,7 @@ public class ValidateUserInfoJSONObjectClaimsTest extends BaseOIDCAuthentication
action.initialize();
final Event event = action.execute(src);
- assertNotNull(event);
- assertEquals(event.getId(), EventIds.INVALID_PROFILE_CTX);
+ ActionTestingSupport.assertEvent(event, EventIds.INVALID_PROFILE_CTX);
}
@Test
@@ -109,8 +107,7 @@ public class ValidateUserInfoJSONObjectClaimsTest extends BaseOIDCAuthentication
action.initialize();
final Event event = action.execute(src);
- assertNotNull(event);
- assertEquals(event.getId(), EventIds.INVALID_PROFILE_CTX);
+ ActionTestingSupport.assertEvent(event, EventIds.INVALID_PROFILE_CTX);
}
@Test
@@ -119,8 +116,7 @@ public class ValidateUserInfoJSONObjectClaimsTest extends BaseOIDCAuthentication
action.initialize();
final Event event = action.execute(src);
- assertNotNull(event);
- assertEquals(event.getId(), EventIds.INVALID_PROFILE_CTX);
+ ActionTestingSupport.assertEvent(event, EventIds.INVALID_PROFILE_CTX);
}
@Test
@@ -128,8 +124,7 @@ public class ValidateUserInfoJSONObjectClaimsTest extends BaseOIDCAuthentication
action.setUserInfoResponseContextLookupStrategy(prc -> new UserInfoResponseContext());
action.initialize();
final Event event = action.execute(src);
- assertNotNull(event);
- assertEquals(event.getId(), EventIds.INVALID_PROFILE_CTX);
+ ActionTestingSupport.assertEvent(event, EventIds.INVALID_PROFILE_CTX);
}
@Test
@@ -168,8 +163,7 @@ public class ValidateUserInfoJSONObjectClaimsTest extends BaseOIDCAuthentication
});
action.initialize();
final Event event = action.execute(src);
- assertNotNull(event);
- assertEquals(event.getId(), OidcEventIds.INVALID_USERINFO_CLAIMS);
+ ActionTestingSupport.assertEvent(event, OidcEventIds.INVALID_USERINFO_CLAIMS);
}
@Test
@@ -186,8 +180,7 @@ public class ValidateUserInfoJSONObjectClaimsTest extends BaseOIDCAuthentication
});
action.initialize();
final Event event = action.execute(src);
- assertNotNull(event);
- assertEquals(event.getId(), OidcEventIds.INVALID_USERINFO_CLAIMS);
+ ActionTestingSupport.assertEvent(event, OidcEventIds.INVALID_USERINFO_CLAIMS);
}
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list