• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

wmixvideo / nfe / #6468

02 Jun 2016 11:49PM UTC coverage: 79.364% (+2.0%) from 77.372%
#6468

push

travis-ci

fincatto
Atualizado xsd de validacao de envio de lote, que valida as notas com assinatura.
Atualizado para versão 2.0.0-SNAPSHOT, pois o codigo quebrou a compatibilidade.

0 of 1 new or added line in 1 file covered. (0.0%)

277 existing lines in 65 files now uncovered.

4742 of 5975 relevant lines covered (79.36%)

50.29 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/main/java/com/fincatto/nfe310/webservices/NFSocketFactory.java
1
package com.fincatto.nfe310.webservices;
2

3
import com.fincatto.nfe310.NFeConfig;
4
import org.apache.commons.httpclient.params.HttpConnectionParams;
5
import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
6

7
import javax.net.ssl.KeyManager;
8
import javax.net.ssl.SSLContext;
9
import javax.net.ssl.TrustManager;
10
import javax.net.ssl.TrustManagerFactory;
11
import javax.net.ssl.X509KeyManager;
12
import java.io.IOException;
13
import java.net.InetAddress;
14
import java.net.InetSocketAddress;
15
import java.net.Socket;
16
import java.security.KeyManagementException;
17
import java.security.KeyStore;
18
import java.security.KeyStoreException;
19
import java.security.NoSuchAlgorithmException;
20
import java.security.Principal;
21
import java.security.PrivateKey;
22
import java.security.UnrecoverableKeyException;
23
import java.security.cert.CertificateException;
24
import java.security.cert.X509Certificate;
25
import java.util.Enumeration;
26

27
class NFSocketFactory implements ProtocolSocketFactory {
28

29
    private final SSLContext sslContext;
30

UNCOV
31
    NFSocketFactory(final NFeConfig config) throws CertificateException, UnrecoverableKeyException, NoSuchAlgorithmException, KeyStoreException, KeyManagementException, IOException {
×
UNCOV
32
        this.sslContext = this.createSSLContext(config);
×
UNCOV
33
    }
×
34

35
    @Override
36
    public Socket createSocket(final String host, final int port, final InetAddress localAddress, final int localPort, final HttpConnectionParams params) throws IOException {
37
        final Socket socket = this.sslContext.getSocketFactory().createSocket();
×
38
        socket.bind(new InetSocketAddress(localAddress, localPort));
×
39
        socket.connect(new InetSocketAddress(host, port), 60000);
×
UNCOV
40
        return socket;
×
41
    }
42

43
    @Override
44
    public Socket createSocket(final String host, final int port, final InetAddress clientHost, final int clientPort) throws IOException {
45
        return this.sslContext.getSocketFactory().createSocket(host, port, clientHost, clientPort);
×
46
    }
47

48
    @Override
49
    public Socket createSocket(final String host, final int port) throws IOException {
UNCOV
50
        return this.sslContext.getSocketFactory().createSocket(host, port);
×
51
    }
52

53
    private SSLContext createSSLContext(final NFeConfig config) throws UnrecoverableKeyException, CertificateException, NoSuchAlgorithmException, KeyStoreException, IOException, KeyManagementException {
54
        final KeyManager[] keyManagers = this.createKeyManagers(config);
×
UNCOV
55
        final TrustManager[] trustManagers = this.createTrustManagers(config);
×
UNCOV
56
        final SSLContext sslContext = SSLContext.getInstance(config.getSSLProtocolo());
×
UNCOV
57
        sslContext.init(keyManagers, trustManagers, null);
×
UNCOV
58
        return sslContext;
×
59
    }
60

61
    private KeyManager[] createKeyManagers(final NFeConfig config) throws UnrecoverableKeyException, KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException {
UNCOV
62
        final String alias = getAlias(config.getCertificadoKeyStore());
×
UNCOV
63
        final X509Certificate certificate = (X509Certificate) config.getCertificadoKeyStore().getCertificate(alias);
×
64
        final PrivateKey privateKey = (PrivateKey) config.getCertificadoKeyStore().getKey(alias, config.getCertificadoSenha().toCharArray());
×
UNCOV
65
        return new KeyManager[]{new NFKeyManager(certificate, privateKey)};
×
66
    }
67

68
    private TrustManager[] createTrustManagers(final NFeConfig config) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException {
UNCOV
69
        final TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
×
UNCOV
70
        trustManagerFactory.init(config.getCadeiaCertificadosKeyStore());
×
UNCOV
71
        return trustManagerFactory.getTrustManagers();
×
72
    }
73

74
    private static String getAlias(final KeyStore ks) throws KeyStoreException {
UNCOV
75
        final Enumeration<String> aliasesEnum = ks.aliases();
×
76
        while (aliasesEnum.hasMoreElements()) {
×
77
            final String alias = aliasesEnum.nextElement();
×
78
            if (ks.isKeyEntry(alias)) {
×
79
                return alias;
×
80
            }
UNCOV
81
        }
×
UNCOV
82
        throw new KeyStoreException("Nenhum alias encontrado no certificado");
×
83
    }
84
}
85

86
class NFKeyManager implements X509KeyManager {
87

88
    private final X509Certificate certificate;
89
    private final PrivateKey privateKey;
90

91
    NFKeyManager(final X509Certificate certificate, final PrivateKey privateKey) {
×
UNCOV
92
        this.certificate = certificate;
×
UNCOV
93
        this.privateKey = privateKey;
×
UNCOV
94
    }
×
95

96
    @Override
97
    public String chooseClientAlias(final String[] arg0, final Principal[] arg1, final Socket arg2) {
98
        return this.certificate.getIssuerDN().getName();
×
99
    }
100

101
    @Override
102
    public String chooseServerAlias(final String arg0, final Principal[] arg1, final Socket arg2) {
UNCOV
103
        return null;
×
104
    }
105

106
    @Override
107
    public X509Certificate[] getCertificateChain(final String arg0) {
UNCOV
108
        return new X509Certificate[]{this.certificate};
×
109
    }
110

111
    @Override
112
    public String[] getClientAliases(final String arg0, final Principal[] arg1) {
113
        return new String[]{this.certificate.getIssuerDN().getName()};
×
114
    }
115

116
    @Override
117
    public PrivateKey getPrivateKey(final String arg0) {
118
        return this.privateKey;
×
119
    }
120

121
    @Override
122
    public String[] getServerAliases(final String arg0, final Principal[] arg1) {
123
        return null;
×
124
    }
125
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc