ews-java-api-2.0 访问SSL异常

ews-java-api-2.0 访问SSL异常

测试ews-java-api是否能和exchange服务通信,代码如下:

 ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);

            // 用户认证信息
            ExchangeCredentials credentials  = new WebCredentials(address.getUsername(),address.getPassword());
                    service.setCredentials(credentials);
             //该行抛出异常
            FindFoldersResults findResults = exchangeService.findFolders(WellKnownFolderName.MsgFolderRoot, new FolderView(Integer.MAX_VALUE)); //

异常信息:microsoft.exchange.webservices.data.core.exception.service.remote.ServiceRequestException: The request failed. The request failed. Certificate for <168.61.10.118> doesn’t match any of the subject alternative names: [mail.htsc.com, autodiscover.htsc.com, mailservice.htsc.com.cn, email.htsc.com]

解决方法如下:
通过修改域名验证器来解决,新建一个类

public class ExchangeServiceWithHostVerify extends ExchangeService {
    //不对任何域名做验证
    private final static HostnameVerifier hostnameVerifierWithOutVerfy = new HostnameVerifier() {
        @Override
        public boolean verify(String s, SSLSession sslSession) {
            return true;
        }
    };

    public ExchangeServiceWithHostVerify() {
        super();
    }

    public ExchangeServiceWithHostVerify(ExchangeVersion requestedServerVersion) {
        super(requestedServerVersion);
    }

    @Override
    protected Registry<ConnectionSocketFactory> createConnectionSocketFactoryRegistry() {
        try {
            return RegistryBuilder.<ConnectionSocketFactory>create().register(EWSConstants.HTTP_SCHEME, new PlainConnectionSocketFactory()).register(EWSConstants.HTTPS_SCHEME, EwsSSLProtocolSocketFactory.build(null, hostnameVerifierWithOutVerfy)).build();
        } catch (GeneralSecurityException e) {
            throw new RuntimeException("Could not initialize ConnectionSocketFactory instances for HttpClientConnectionManager", e);
        }
    }
}

然后

                    ExchangeService service = new ExchangeServiceWithHostVerify(ExchangeVersion.Exchange2010);
                    

问题解决,特此记录一下

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值