我正在从码头this._empService.GetEmpList().subscribe(
data => {
this.empListDataSource = new MatTableDataSource<empToShow>(Object.values(data))
this.empListDataSource.paginator = this.paginator
}
)
迁移到9.0
显然,从9.4
9.3.0
我检查了api文档,但没有得到任何替代,也没有在public void checkKeyStore()
中弃用,而是在9.2.x
中直接将其删除。
我不是安全专家,但是这是我的代码,我不确定在9.3.0
9.4.x
答案 0 :(得分:1)
在Jetty 9.0.0到9.2.0中checkKeyStore()
的作用仅仅是试图从磁盘加载密钥库。对SslContextFactory
的任何其他影响都将视为错误。
这是您的替代实现。
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import org.eclipse.jetty.util.IO;
import org.eclipse.jetty.util.StringUtil;
import org.eclipse.jetty.util.ssl.SslContextFactory;
private static void check(SslContextFactory ssl) throws IOException
{
if (ssl.getKeyStore() == null) // too late, already loaded?
{
if (StringUtil.isNotBlank(ssl.getKeyStorePath())) // no path, no check
{
Path keystorePath = Paths.get(ssl.getKeyStorePath());
try (InputStream inputStream = Files.newInputStream(keystorePath);
OutputStream outputStream = new ByteArrayOutputStream())
{
IO.copy(inputStream, outputStream);
}
}
}
}
Jetty 9.3.0中引入了对SNI的支持后,checkKeyStore()
方法在2015年4月被删除,该方法引入了具有SslContextFactory
实现的层次结构的功能。
checkKeyStore()
提供的行为被转移到loadKeyStore()
方法,该方法总是在doStart()
的{{1}}期间调用。
简而言之,在Jetty 9.0.0 SslContextFactory
中总是运行,现在在Jetty 9.4.18中,它的行为始终保持静止,但是在另一个地方。新行为还将检查TrustStore,您的SNI设置,密码套件选择,协议选择等。新技术的作用远远超过旧技术。
由于您使用的是checkKeyStore()
,因此考虑而不是检查embedded-jetty
,只需让生命周期在SslContextFactory
调用中失败即可。
注意:对于server.start()
,请确保设置WebAppContext
以允许其报告整个生命周期中的故障。