簡體   English   中英

在Web應用程序中添加安全提供程序的位置?

[英]Where to add the security provider in a web-app?

我正在處理部署在Tomcat服務器上的Java Web應用程序。 我在應用程序的幾個點上使用了幾個加密函數。 我想使用Bouncycastle作為我的安全提供商。

我不知道在哪里我必須調用Security.addProvider(new BouncyCastleProvider()); 這是否必須按照每個方法進行,或者只在啟動時關閉。 添加提供商的地方?

通常,我更喜歡以惰性方式配置安全提供程序,以便我的代碼不依賴於先前初始化的提供程序。 如果使用依賴項注入,則可以定義類如下所示的類:

public class SecurityProvider {

    public SecurityProvider() {
       if (Security.getProvider(BouncyCastleProvider.PROVIDER_NAME) == null) {
          Security.addProvider(new BouncyCastleProvider());
       }
}

並將其注入任何需要初始化SecurityProvider的對象。 依賴注入容器將根據需要實例化SecurityProvider。

如果您使用普通servlet,則可以注冊初始化SecurityProvider的ServletContextListener。

public class SecurityProviderInitializer implements ServletContextListener {

   @Override
   public void contextInitialized(ServletContextEvent event) {
       if (Security.getProvider(BouncyCastleProvider.PROVIDER_NAME) == null) {
           Security.addProvider(new BouncyCastleProvider());
       } 
   }

   @Override
   public void contextDestroyed(ServletContextEvent event) {}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM