org.springframework.boot.context.properties.ConfigurationPropertiesBindException#com.sun.security.auth.login.ConfigFile源码实例Demo

下面列出了org.springframework.boot.context.properties.ConfigurationPropertiesBindException#com.sun.security.auth.login.ConfigFile 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

@Test
public void testConfigurationWithUnknownControlFlag() throws Exception {
	ConfigFile configFile = new ConfigFile(
			new ClassPathResource("jaas-sample-kafka-only.conf").getURI());

	assertThatThrownBy(() -> SpringApplication.run(SimpleApplication.class,
			"--spring.cloud.stream.kafka.binder.jaas.options.useKeyTab=true",
			"--spring.cloud.stream.kafka.binder.jaas.controlFlag=unknown",
			"--spring.cloud.stream.kafka.binder.jaas.options.storeKey=true",
			"--spring.cloud.stream.kafka.binder.jaas.options.keyTab=/etc/security/keytabs/kafka_client.keytab",
			"--spring.[email protected]EXAMPLE.COM",
			"--spring.jmx.enabled=false"))
					.isInstanceOf(ConfigurationPropertiesBindException.class)
					.hasMessageContaining(
							"Error creating bean with name 'configurationProperties'");
}
 
@Test
@Ignore("CI randomly fails this test, need to investigate further. ")
public void testConfigurationParsedCorrectlyWithKafkaClientAndDefaultControlFlag()
		throws Exception {
	ConfigFile configFile = new ConfigFile(
			new ClassPathResource("jaas-sample-kafka-only.conf").getURI());
	final AppConfigurationEntry[] kafkaConfigurationArray = configFile
			.getAppConfigurationEntry("KafkaClient");

	final ConfigurableApplicationContext context = SpringApplication.run(
			SimpleApplication.class,
			"--spring.cloud.stream.kafka.binder.jaas.options.useKeyTab=true",
			"--spring.cloud.stream.kafka.binder.jaas.options.storeKey=true",
			"--spring.cloud.stream.kafka.binder.jaas.options.keyTab=/etc/security/keytabs/kafka_client.keytab",
			"--spring.[email protected]EXAMPLE.COM",
			"--spring.jmx.enabled=false");
	javax.security.auth.login.Configuration configuration = javax.security.auth.login.Configuration
			.getConfiguration();

	final AppConfigurationEntry[] kafkaConfiguration = configuration
			.getAppConfigurationEntry("KafkaClient");
	assertThat(kafkaConfiguration).hasSize(1);
	assertThat(kafkaConfiguration[0].getOptions())
			.isEqualTo(kafkaConfigurationArray[0].getOptions());
	assertThat(kafkaConfiguration[0].getControlFlag())
			.isEqualTo(AppConfigurationEntry.LoginModuleControlFlag.REQUIRED);
	context.close();
}
 
@Test
@Ignore("CI randomly fails this test, need to investigate further. ")
public void testConfigurationParsedCorrectlyWithKafkaClientAndNonDefaultControlFlag()
		throws Exception {
	ConfigFile configFile = new ConfigFile(
			new ClassPathResource("jaas-sample-kafka-only.conf").getURI());
	final AppConfigurationEntry[] kafkaConfigurationArray = configFile
			.getAppConfigurationEntry("KafkaClient");

	final ConfigurableApplicationContext context = SpringApplication.run(
			SimpleApplication.class,
			"--spring.cloud.stream.kafka.binder.jaas.options.useKeyTab=true",
			"--spring.cloud.stream.kafka.binder.jaas.controlFlag=requisite",
			"--spring.cloud.stream.kafka.binder.jaas.options.storeKey=true",
			"--spring.cloud.stream.kafka.binder.jaas.options.keyTab=/etc/security/keytabs/kafka_client.keytab",
			"--spring.[email protected]EXAMPLE.COM",
			"--spring.jmx.enabled=false");
	javax.security.auth.login.Configuration configuration = javax.security.auth.login.Configuration
			.getConfiguration();

	final AppConfigurationEntry[] kafkaConfiguration = configuration
			.getAppConfigurationEntry("KafkaClient");
	assertThat(kafkaConfiguration).hasSize(1);
	assertThat(kafkaConfiguration[0].getOptions())
			.isEqualTo(kafkaConfigurationArray[0].getOptions());
	assertThat(kafkaConfiguration[0].getControlFlag())
			.isEqualTo(AppConfigurationEntry.LoginModuleControlFlag.REQUISITE);
	context.close();
}