[英]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.