Source:
<code>private SAML2ClientConfiguration(final KeyStore keyStore, final String keyStoreAlias, final String keyStoreType, <START> final Resource keystoreResource, final String keystorePath, final String keystorePassword, <END> final String privateKeyPassword, final Resource identityProviderMetadataResource, final String identityProviderMetadataPath, final String identityProviderEntityId, final String serviceProviderEntityId) { this.keyStore = keyStore; this.keyStoreAlias = keyStoreAlias; this.keyStoreType = keyStoreType; this.keystoreResource = keystoreResource; this.keystorePath = keystorePath; this.keystorePassword = keystorePassword; this.privateKeyPassword = privateKeyPassword; this.identityProviderMetadataResource = identityProviderMetadataResource; this.identityProviderMetadataPath = identityProviderMetadataPath; this.identityProviderEntityId = identityProviderEntityId; this.serviceProviderEntityId = serviceProviderEntityId; CommonHelper.assertNotBlank("keystorePath", this.keystorePath); CommonHelper.assertNotBlank("keystorePassword", this.keystorePassword); CommonHelper.assertNotBlank("privateKeyPassword", this.privateKeyPassword); CommonHelper.assertTrue( this.identityProviderMetadataResource != null || CommonHelper.isNotBlank(identityProviderMetadataPath), "Either identityProviderMetadataResource or identityProviderMetadataPath must be provided"); final BasicSignatureSigningConfiguration config = DefaultSecurityConfigurationBootstrap.buildDefaultSignatureSigningConfiguration(); this.blackListedSignatureSigningAlgorithms = new ArrayList<>(config.getBlacklistedAlgorithms()); this.signatureAlgorithms = new ArrayList<>(config.getSignatureAlgorithms()); this.signatureReferenceDigestMethods = new ArrayList<>(config.getSignatureReferenceDigestMethods()); this.signatureReferenceDigestMethods.remove("<LINK_0>"); this.signatureCanonicalizationAlgorithm = config.getSignatureCanonicalizationAlgorithm(); }</code><technical_language>do a keystoreResource a keystorePath</technical_language>

Target:
private SAML2ClientConfiguration(final KeyStore keyStore, final String keyStoreAlias, final String keyStoreType, final Resource keystoreResource, final String keystorePath, final String keystorePassword, final String privateKeyPassword, final Resource identityProviderMetadataResource, final String identityProviderMetadataPath, final String identityProviderEntityId, final String serviceProviderEntityId) { this.keyStore = keyStore; this.keyStoreAlias = keyStoreAlias; this.keyStoreType = keyStoreType; this.keystoreResource = keystoreResource; if (this.keystoreResource == null) { this.keystoreResource = CommonHelper.getResource(keystorePath); } this.keystorePassword = keystorePassword; this.privateKeyPassword = privateKeyPassword; this.identityProviderMetadataResource = identityProviderMetadataResource; if (this.identityProviderMetadataResource == null) { this.identityProviderMetadataResource = CommonHelper.getResource(identityProviderMetadataPath); } this.identityProviderEntityId = identityProviderEntityId; this.serviceProviderEntityId = serviceProviderEntityId; CommonHelper.assertNotBlank("keystorePassword", this.keystorePassword); CommonHelper.assertNotBlank("privateKeyPassword", this.privateKeyPassword); CommonHelper.assertTrue( this.identityProviderMetadataResource != null || CommonHelper.isNotBlank(identityProviderMetadataPath), "Either identityProviderMetadataResource or identityProviderMetadataPath must be provided"); final BasicSignatureSigningConfiguration config = DefaultSecurityConfigurationBootstrap.buildDefaultSignatureSigningConfiguration(); this.blackListedSignatureSigningAlgorithms = new ArrayList<>(config.getBlacklistedAlgorithms()); this.signatureAlgorithms = new ArrayList<>(config.getSignatureAlgorithms()); this.signatureReferenceDigestMethods = new ArrayList<>(config.getSignatureReferenceDigestMethods()); this.signatureReferenceDigestMethods.remove("<LINK_0>"); this.signatureCanonicalizationAlgorithm = config.getSignatureCanonicalizationAlgorithm(); }