Chcę, aby moja aplikacja komunikowała się z serwerem bez szyfrowania przed wydaniem STARTTLS, a następnie zaktualizowała gniazdo do zaszyfrowania po tym. Czy mogę połączyć się z portem (np. 5222) i użyć STARTTLS do żądania TLS przy użyciu java? Jeśli tak, który obiekt Socket powinienem użyć do tego?Uaktualnij gniazdo Java do zaszyfrowania po uruchomieniu numerów startowych
8
A
Odpowiedz
9
Pewnie, że możesz. Użyj SSLSocketFactory stworzyć gniazdo zawijania istniejącego regularnego java.net.Socket:
SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket(
socket,
socket.getInetAddress().getHostAddress(),
socket.getPort(),
true);
5
@ odpowiedź Jana był pomocny (i głosowałem na niego), ale musiałem podkręcić trochę zmusić go do pracy mi:
SSLSocket sslSocket = (SSLSocket) ((SSLSocketFactory) SSLSocketFactory.getDefault()).createSocket(
socket,
socket.getInetAddress().getHostAddress(),
socket.getPort(),
true);
InputStream inputStream = sslSocket.getInputStream();
OutputStream outputStream = sslSocket.getOutputStream();
// reads from the socket
Scanner scanner = new Scanner(inputStream);
// writes to the socket
OutputStream outputStream = new BufferedOutputStream(outputStream);
Testowane z Java 7 i Gmaila (smtp.gmail.com) na porcie 587.
1
Oto możliwa poprawa: Jeśli kod jest na stronie serwera, a nie po stronie klienta, należy dodać to, i będzie działać poprawnie:
sslsocket.setUseClientMode(false);
sslsocket.startHandshake();
Powiązane problemy
- 1. Uruchamianie agenta Java po uruchomieniu programu
- 2. Uaktualnij jQuery 1.4.2 do 1.9.1
- 3. Java: Wykrywanie wiersz użytkownika po uruchomieniu skryptu wsadowego z Java
- 4. Monitorowanie po uruchomieniu exe
- 5. Zamknij gniazdo po zakończeniu aplikacji
- 6. Uaktualnij procesor PHP XSLT do XSLT 2.0
- 7. Dołączanie debuggera do aplikacji IOS po uruchomieniu
- 8. wykonać timer po uruchomieniu?
- 9. Opóźnienie punktu zaszyfrowania debugera Eclipse w/Glassfish
- 10. Dlaczego wydajność mojego programu Java spada znacząco po uruchomieniu?
- 11. Okno JFrame Java nie pojawia się po uruchomieniu z Eclipse
- 12. Po uruchomieniu kodu po załadowaniu Railsa?
- 13. CakePHP ClassRegistry :: startowych
- 14. iOS zamiar tle po uruchomieniu
- 15. Odzyskiwanie po nieudanym ponownym uruchomieniu
- 16. kontrola do następnej instrukcji po uruchomieniu polecenia eval
- 17. Dodawanie numerów linii do textarea
- 18. Awaria aplikacji natychmiast po uruchomieniu
- 19. Sortuj Java String tablicą przez wielu numerów
- 20. Lista głównych numerów wersji formatu pliku Java?
- 21. Zamknij plik wsadowy po uruchomieniu pliku JAR
- 22. Właściwości zmieniają się po ponownym uruchomieniu serwera.
- 23. Jak prawidłowo zamknąć gniazdo po wychwyceniu wyjątku?
- 24. startowych z protokołem delegata
- 25. zamknij() gniazdo bezpośrednio po wysłaniu(): niebezpieczne?
- 26. Przesyłanie wielu plików Java przez gniazdo
- 27. jenkins - mieszana historia kompilacji po ponownym uruchomieniu
- 28. .exe zamyka się natychmiast po uruchomieniu po dwukrotnym kliknięciu
- 29. Gniazdo Java IOException - odmowa udzielenia zgody
- 30. Uaktualnij bazę danych SQLite z jednej wersji do drugiej?