如何使用 Javaconfig 在 Spring 应用程序中添加安全提供程序?

Eri*_* B. 5 java security spring bouncycastle spring-java-config

我正在尝试将 BouncyCastle 添加到我的 Spring 应用程序中,但我不确定如何java.security.Security使用 JavaConfig 将提供程序添加到提供程序列表中。

使用 XML 配置,我可以使用MethodInvokingFactoryBean类似以下内容:

<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
  <property name="staticMethod" value="java.security.Security.addProvider"/>
  <property name="arguments">
    <list>
      <bean class="org.bouncycastle.jce.provider.BouncyCastleProvider"/>
    </list>
  </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

但是,我不确定使用 JavaConfig 执行此操作的正确方法。我还应该使用吗MethodInvokingFactoryBean?我想因为它是纯java,所以会有更直接的方法。目前,我已将该指令添加到@PostConstructJavaConfig 对象中的一个方法中,但对此并不太兴奋 - 对我来说这似乎有点“hacky”:

@Configuration
public class AppConfig {
    // other @Bean definitions

    @PostConstruct
    public void init(){
        Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
    }
}
Run Code Online (Sandbox Code Playgroud)

Nic*_*ick 2

MethodInvokingBeanBouncyCastleProvider将是添加到的事实上的选择,java.security.Security因为您不需要暴露于您的应用程序上下文。