[java-idp-plugin-duo] branch main updated: Support changes to include claim sets in validation lookup strategies
Phil Smart
philip.smart at jisc.ac.uk
Fri Jan 29 14:59:58 UTC 2021
This is an automated email from the git hooks/post-receive script.
philsmart pushed a commit to branch main
in repository java-idp-plugin-duo.
View the commit online:
http://git.shibboleth.net/view/?p=java-idp-plugin-duo.git;a=commit;h=cd206e7d311f86bb664a30a0eb26d8e684dd641c
The following commit(s) were added to refs/heads/main by this push:
new cd206e7 Support changes to include claim sets in validation lookup strategies
cd206e7 is described below
commit cd206e7d311f86bb664a30a0eb26d8e684dd641c
Author: Phil Smart <philip.smart at jisc.ac.uk>
AuthorDate: Fri Jan 29 14:59:56 2021 +0000
Support changes to include claim sets in validation lookup strategies
---
.../plugin/authn/duo/impl/DuoAudienceClaimLookupStrategy.java | 9 ++++++---
.../idp/plugin/authn/duo/impl/DuoIssuerClaimLookupStrategy.java | 8 ++++++--
.../idp/plugin/authn/duo/impl/DuoNonceClaimLookupStrategy.java | 9 ++++++---
.../plugin/authn/duo/impl/DuoUsernameClaimLookupStrategy.java | 9 ++++++---
.../authn/duo/impl/DuoAudienceClaimLookupStrategyTest.java | 8 +++++---
.../plugin/authn/duo/impl/DuoIssuerClaimLookupStrategyTest.java | 8 +++++---
.../plugin/authn/duo/impl/DuoNonceClaimLookupStrategyTest.java | 8 +++++---
.../authn/duo/impl/DuoUsernameClaimLookupStrategyTest.java | 8 +++++---
8 files changed, 44 insertions(+), 23 deletions(-)
diff --git a/idp-duo-impl/src/main/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoAudienceClaimLookupStrategy.java b/idp-duo-impl/src/main/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoAudienceClaimLookupStrategy.java
index bc50b09..3e5f413 100644
--- a/idp-duo-impl/src/main/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoAudienceClaimLookupStrategy.java
+++ b/idp-duo-impl/src/main/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoAudienceClaimLookupStrategy.java
@@ -17,12 +17,14 @@
package net.shibboleth.idp.plugin.authn.duo.impl;
-import java.util.function.Function;
+import java.util.function.BiFunction;
import javax.annotation.Nonnull;
import org.opensaml.profile.context.ProfileRequestContext;
+import com.nimbusds.jwt.JWTClaimsSet;
+
import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.plugin.authn.duo.DuoOIDCIntegration;
import net.shibboleth.idp.plugin.authn.duo.context.DuoOIDCAuthenticationContext;
@@ -31,10 +33,11 @@ import net.shibboleth.idp.plugin.authn.duo.context.DuoOIDCAuthenticationContext;
* Looks up the audience from the clientID in the {@link DuoOIDCIntegration} inside the context.
* Returns null if it fails to find the clientID. Used for JWT ID Token audience claims verification.
*/
-public class DuoAudienceClaimLookupStrategy implements Function<ProfileRequestContext,String>{
+public class DuoAudienceClaimLookupStrategy implements BiFunction<ProfileRequestContext, JWTClaimsSet, String> {
@Override
- public String apply(@Nonnull final ProfileRequestContext context) {
+ public String apply(@Nonnull final ProfileRequestContext context,
+ @Nonnull final JWTClaimsSet cliams) {
final AuthenticationContext authnContext = context.getSubcontext(AuthenticationContext.class);
if (authnContext == null) {
diff --git a/idp-duo-impl/src/main/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoIssuerClaimLookupStrategy.java b/idp-duo-impl/src/main/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoIssuerClaimLookupStrategy.java
index 6261922..ae22af8 100644
--- a/idp-duo-impl/src/main/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoIssuerClaimLookupStrategy.java
+++ b/idp-duo-impl/src/main/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoIssuerClaimLookupStrategy.java
@@ -17,12 +17,15 @@
package net.shibboleth.idp.plugin.authn.duo.impl;
+import java.util.function.BiFunction;
import java.util.function.Function;
import javax.annotation.Nonnull;
import org.opensaml.profile.context.ProfileRequestContext;
+import com.nimbusds.jwt.JWTClaimsSet;
+
import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.authn.duo.context.DuoAuthenticationContext;
import net.shibboleth.idp.plugin.authn.duo.DuoOIDCIntegration;
@@ -33,7 +36,7 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
/**
* Find the issuer from the {@link DuoOIDCIntegration}. Returns null if not found.
*/
-public class DuoIssuerClaimLookupStrategy implements Function<ProfileRequestContext, String> {
+public class DuoIssuerClaimLookupStrategy implements BiFunction<ProfileRequestContext, JWTClaimsSet, String> {
/** HTTPS scheme protocol.*/
@Nonnull @NotEmpty public static final String HTTPS = "https://";
@@ -54,7 +57,8 @@ public class DuoIssuerClaimLookupStrategy implements Function<ProfileRequestCont
}
@Override
- public String apply(@Nonnull final ProfileRequestContext context) {
+ public String apply(@Nonnull final ProfileRequestContext context,
+ @Nonnull final JWTClaimsSet cliams) {
final AuthenticationContext authnContext = context.getSubcontext(AuthenticationContext.class);
if (authnContext == null) {
diff --git a/idp-duo-impl/src/main/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoNonceClaimLookupStrategy.java b/idp-duo-impl/src/main/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoNonceClaimLookupStrategy.java
index c765f47..9d8a97b 100644
--- a/idp-duo-impl/src/main/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoNonceClaimLookupStrategy.java
+++ b/idp-duo-impl/src/main/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoNonceClaimLookupStrategy.java
@@ -17,12 +17,14 @@
package net.shibboleth.idp.plugin.authn.duo.impl;
-import java.util.function.Function;
+import java.util.function.BiFunction;
import javax.annotation.Nonnull;
import org.opensaml.profile.context.ProfileRequestContext;
+import com.nimbusds.jwt.JWTClaimsSet;
+
import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.authn.duo.context.DuoAuthenticationContext;
import net.shibboleth.idp.plugin.authn.duo.context.DuoOIDCAuthenticationContext;
@@ -30,10 +32,11 @@ import net.shibboleth.idp.plugin.authn.duo.context.DuoOIDCAuthenticationContext;
/**
* Find the nonce from the {@link DuoAuthenticationContext}. Returns null if not found.
*/
-public class DuoNonceClaimLookupStrategy implements Function<ProfileRequestContext, String> {
+public class DuoNonceClaimLookupStrategy implements BiFunction<ProfileRequestContext,JWTClaimsSet, String> {
@Override
- public String apply(@Nonnull final ProfileRequestContext context) {
+ public String apply(@Nonnull final ProfileRequestContext context,
+ @Nonnull final JWTClaimsSet cliams) {
final AuthenticationContext authnContext = context.getSubcontext(AuthenticationContext.class);
if (authnContext == null) {
diff --git a/idp-duo-impl/src/main/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoUsernameClaimLookupStrategy.java b/idp-duo-impl/src/main/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoUsernameClaimLookupStrategy.java
index 18ed4bf..adb5133 100644
--- a/idp-duo-impl/src/main/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoUsernameClaimLookupStrategy.java
+++ b/idp-duo-impl/src/main/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoUsernameClaimLookupStrategy.java
@@ -17,12 +17,14 @@
package net.shibboleth.idp.plugin.authn.duo.impl;
-import java.util.function.Function;
+import java.util.function.BiFunction;
import javax.annotation.Nonnull;
import org.opensaml.profile.context.ProfileRequestContext;
+import com.nimbusds.jwt.JWTClaimsSet;
+
import net.shibboleth.idp.authn.context.AuthenticationContext;
import net.shibboleth.idp.authn.duo.context.DuoAuthenticationContext;
import net.shibboleth.idp.plugin.authn.duo.context.DuoOIDCAuthenticationContext;
@@ -30,10 +32,11 @@ import net.shibboleth.idp.plugin.authn.duo.context.DuoOIDCAuthenticationContext;
/**
* Find the authenticating principals username from the {@link DuoAuthenticationContext}. Returns null if not found.
*/
-public class DuoUsernameClaimLookupStrategy implements Function<ProfileRequestContext, String> {
+public class DuoUsernameClaimLookupStrategy implements BiFunction<ProfileRequestContext,JWTClaimsSet, String> {
@Override
- public String apply(@Nonnull final ProfileRequestContext context) {
+ public String apply(@Nonnull final ProfileRequestContext context,
+ @Nonnull final JWTClaimsSet cliams) {
final AuthenticationContext authnContext = context.getSubcontext(AuthenticationContext.class);
if (authnContext == null) {
diff --git a/idp-duo-impl/src/test/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoAudienceClaimLookupStrategyTest.java b/idp-duo-impl/src/test/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoAudienceClaimLookupStrategyTest.java
index b0d0ce3..cb64c5e 100644
--- a/idp-duo-impl/src/test/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoAudienceClaimLookupStrategyTest.java
+++ b/idp-duo-impl/src/test/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoAudienceClaimLookupStrategyTest.java
@@ -3,6 +3,8 @@ package net.shibboleth.idp.plugin.authn.duo.impl;
import org.testng.annotations.Test;
+import com.nimbusds.jwt.JWTClaimsSet;
+
import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
import static org.testng.Assert.assertEquals;
@@ -33,20 +35,20 @@ public class DuoAudienceClaimLookupStrategyTest extends AbstractDuoActionTest{
public void applySuccess() {
addDuoContext();
addDuoIntegrationToContext();
- final String audience = strategy.apply(prc);
+ final String audience = strategy.apply(prc,new JWTClaimsSet.Builder().build());
assertEquals(audience, dc.getIntegration().getClientId());
}
@Test
public void applyNoDuoContext() {
- final String audience = strategy.apply(prc);
+ final String audience = strategy.apply(prc,new JWTClaimsSet.Builder().build());
assertEquals(audience, null);
}
@Test
public void applyNoDuoIntegration() {
addDuoContext();
- final String audience = strategy.apply(prc);
+ final String audience = strategy.apply(prc,new JWTClaimsSet.Builder().build());
assertEquals(audience, null);
}
}
diff --git a/idp-duo-impl/src/test/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoIssuerClaimLookupStrategyTest.java b/idp-duo-impl/src/test/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoIssuerClaimLookupStrategyTest.java
index b6ad8cd..d18b53d 100644
--- a/idp-duo-impl/src/test/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoIssuerClaimLookupStrategyTest.java
+++ b/idp-duo-impl/src/test/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoIssuerClaimLookupStrategyTest.java
@@ -3,6 +3,8 @@ package net.shibboleth.idp.plugin.authn.duo.impl;
import org.testng.annotations.Test;
+import com.nimbusds.jwt.JWTClaimsSet;
+
import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
import static org.testng.Assert.assertEquals;
@@ -35,20 +37,20 @@ public class DuoIssuerClaimLookupStrategyTest extends AbstractDuoActionTest{
addDuoIntegrationToContext();
//set a different path for testing.
strategy.setIssuerPath("/oauth/v2/token");
- final String issuer = strategy.apply(prc);
+ final String issuer = strategy.apply(prc,new JWTClaimsSet.Builder().build());
assertEquals(issuer, "https://"+dc.getIntegration().getAPIHost()+"/oauth/v2/token");
}
@Test
public void applyNoDuoContext() {
- final String issuer = strategy.apply(prc);
+ final String issuer = strategy.apply(prc,new JWTClaimsSet.Builder().build());
assertEquals(issuer, null);
}
@Test
public void applyNoDuoIntegration() {
addDuoContext();
- final String issuer = strategy.apply(prc);
+ final String issuer = strategy.apply(prc,new JWTClaimsSet.Builder().build());
assertEquals(issuer, null);
}
}
diff --git a/idp-duo-impl/src/test/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoNonceClaimLookupStrategyTest.java b/idp-duo-impl/src/test/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoNonceClaimLookupStrategyTest.java
index c998253..d8c2fd0 100644
--- a/idp-duo-impl/src/test/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoNonceClaimLookupStrategyTest.java
+++ b/idp-duo-impl/src/test/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoNonceClaimLookupStrategyTest.java
@@ -3,6 +3,8 @@ package net.shibboleth.idp.plugin.authn.duo.impl;
import org.testng.annotations.Test;
+import com.nimbusds.jwt.JWTClaimsSet;
+
import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
import static org.testng.Assert.assertEquals;
@@ -34,20 +36,20 @@ public class DuoNonceClaimLookupStrategyTest extends AbstractDuoActionTest{
addDuoContext();
addDuoIntegrationToContext();
dc.setNonce("testnonce");
- final String nonce = strategy.apply(prc);
+ final String nonce = strategy.apply(prc,new JWTClaimsSet.Builder().build());
assertEquals(nonce, "testnonce");
}
@Test
public void applyNoDuoContext() {
- final String nonce = strategy.apply(prc);
+ final String nonce = strategy.apply(prc,new JWTClaimsSet.Builder().build());
assertEquals(nonce, null);
}
@Test
public void applyNoDuoIntegration() {
addDuoContext();
- final String nonce = strategy.apply(prc);
+ final String nonce = strategy.apply(prc,new JWTClaimsSet.Builder().build());
assertEquals(nonce, null);
}
}
diff --git a/idp-duo-impl/src/test/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoUsernameClaimLookupStrategyTest.java b/idp-duo-impl/src/test/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoUsernameClaimLookupStrategyTest.java
index 626b085..cab2e77 100644
--- a/idp-duo-impl/src/test/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoUsernameClaimLookupStrategyTest.java
+++ b/idp-duo-impl/src/test/java/net/shibboleth/idp/plugin/authn/duo/impl/DuoUsernameClaimLookupStrategyTest.java
@@ -3,6 +3,8 @@ package net.shibboleth.idp.plugin.authn.duo.impl;
import org.testng.annotations.Test;
+import com.nimbusds.jwt.JWTClaimsSet;
+
import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
import static org.testng.Assert.assertEquals;
@@ -34,7 +36,7 @@ public class DuoUsernameClaimLookupStrategyTest extends AbstractDuoActionTest{
addDuoContext();
addDuoIntegrationToContext();
dc.setUsername("username");
- final String username = strategy.apply(prc);
+ final String username = strategy.apply(prc,new JWTClaimsSet.Builder().build());
assertEquals(username, "username");
}
@@ -43,13 +45,13 @@ public class DuoUsernameClaimLookupStrategyTest extends AbstractDuoActionTest{
addDuoContext();
addDuoIntegrationToContext();
dc.setUsername(null);
- final String username = strategy.apply(prc);
+ final String username = strategy.apply(prc,new JWTClaimsSet.Builder().build());
assertEquals(username, null);
}
@Test
public void applyNoDuoContext() {
- final String username = strategy.apply(prc);
+ final String username = strategy.apply(prc,new JWTClaimsSet.Builder().build());
assertEquals(username, null);
}
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list