使用Spark Java进行相互身份验证

时间:2017-01-15 20:02:38

标签: java spark-java

我正在尝试使用spark-java实现一个经过相互身份验证的REST API服务器,并且从documentation我看到:

secure(keystoreFilePath,keystorePassword,truststoreFilePath,truststorePassword);

......看起来就像我需要的那样。但是,我只能对服务器进行单向身份验证,客户端证书似乎永远不会针对信任库进行验证。我正在使用2.1版本,任何建议或指针将不胜感激。

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' )