我正在尝试使用spark-java实现一个经过相互身份验证的REST API服务器,并且从documentation我看到:
secure(keystoreFilePath,keystorePassword,truststoreFilePath,truststorePassword);
......看起来就像我需要的那样。但是,我只能对服务器进行单向身份验证,客户端证书似乎永远不会针对信任库进行验证。我正在使用2.1版本,任何建议或指针将不胜感激。
答案 0 :(得分:2)
似乎Spark 2.6.0版已经添加了你需要的东西。现在,有setNeedClientAuth(true)
的第二个版本:
/** (...) * @param needsClientCert Whether to require client certificate to be supplied in * request (...) */ public synchronized Service secure(String keystoreFile, String keystorePassword, String truststoreFile, String truststorePassword, boolean needsClientCert)
它在底层Jetty Web服务器SslContextFactory对象上设置setWantClientAuth(true)
和urls <- c('https://opendata.arcgis.com/datasets/73cd2f2858714cd1a7e2859f8e6e4de4_33.csv',
'https://opendata.arcgis.com/datasets/fdacfbdda7654e06a161352247d3a2f0_34.csv',
'https://opendata.arcgis.com/datasets/9d5485ffae914c5f97047a7dd86e115b_35.csv',
'https://opendata.arcgis.com/datasets/010ac88c55b1409bb67c9270c8fc18b5_11.csv',
'https://opendata.arcgis.com/datasets/5fa2e43557f7484d89aac9e1e76158c9_10.csv',
'https://opendata.arcgis.com/datasets/6eaf3e9713de44d3aa103622d51053b5_9.csv',
'https://opendata.arcgis.com/datasets/35034fcb3b36499c84c94c069ab1a966_27.csv',
'https://opendata.arcgis.com/datasets/bda20763840448b58f8383bae800a843_26.csv'
)
。