[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