|
54 | 54 | import org.opensaml.saml.saml2.core.Issuer;
|
55 | 55 | import org.opensaml.saml.saml2.core.NameID;
|
56 | 56 | import org.opensaml.saml.saml2.core.OneTimeUse;
|
| 57 | +import org.opensaml.saml.saml2.core.ProxyRestriction; |
57 | 58 | import org.opensaml.saml.saml2.core.Response;
|
58 | 59 | import org.opensaml.saml.saml2.core.Status;
|
59 | 60 | import org.opensaml.saml.saml2.core.StatusCode;
|
|
63 | 64 | import org.opensaml.saml.saml2.core.impl.EncryptedAssertionBuilder;
|
64 | 65 | import org.opensaml.saml.saml2.core.impl.EncryptedIDBuilder;
|
65 | 66 | import org.opensaml.saml.saml2.core.impl.NameIDBuilder;
|
| 67 | +import org.opensaml.saml.saml2.core.impl.ProxyRestrictionBuilder; |
66 | 68 | import org.opensaml.saml.saml2.core.impl.StatusBuilder;
|
67 | 69 | import org.opensaml.saml.saml2.core.impl.StatusCodeBuilder;
|
68 | 70 | import org.opensaml.xmlsec.encryption.impl.EncryptedDataBuilder;
|
@@ -832,6 +834,19 @@ public void authenticateWhenAssertionIssuerNotValidThenFailsWithInvalidIssuer()
|
832 | 834 | .withMessageContaining("did not match any valid issuers");
|
833 | 835 | }
|
834 | 836 |
|
| 837 | + // gh-14931 |
| 838 | + @Test |
| 839 | + public void authenticateWhenAssertionHasProxyRestrictionThenParses() { |
| 840 | + OpenSaml4AuthenticationProvider provider = new OpenSaml4AuthenticationProvider(); |
| 841 | + Response response = response(); |
| 842 | + Assertion assertion = assertion(); |
| 843 | + ProxyRestriction condition = new ProxyRestrictionBuilder().buildObject(); |
| 844 | + assertion.getConditions().getConditions().add(condition); |
| 845 | + response.getAssertions().add(assertion); |
| 846 | + Saml2AuthenticationToken token = token(signed(response), verifying(registration())); |
| 847 | + provider.authenticate(token); |
| 848 | + } |
| 849 | + |
835 | 850 | private <T extends XMLObject> T build(QName qName) {
|
836 | 851 | return (T) XMLObjectProviderRegistrySupport.getBuilderFactory().getBuilder(qName).buildObject(qName);
|
837 | 852 | }
|
|
0 commit comments