Хотя есть очень похожий post, он не отвечает.Является ли Tyrus nessary для реализации проверки подлинности Java WebSocket?
Моя JavaFX приложение с WebSocket будет
- отправить идентификатор пользователя, пароль к серверу
- сохранить сессию, чтобы позволить пользователю сделать что-то вроде управления личными данными.
Учась
Oracle WebSocket, Tyrus 8,14 Клиент HTTP Authentication
У меня есть:
@ClientEndPoint
public class loginEndPoint {
final ClientEndpointConfig cec = ClientEndpointConfig.Builder.create().build();
public static void main(String [] args) {
AuthConfig authConfig = AuthConfig.Builder.create().disableBasicAuth().build();
Credentials credentials = new Credentials("ws_user", "password");
client.getProperties().put(ClientProperties.AUTH_CONFIG, authConfig);
client.getProperties().put(ClientProperties.CREDENTIALS, credentials);
client.connectToServer(new Endpoint() {
@Override
public void onOpen(Session session, EndpointConfig config) {
try {
session.addMessageHandler((MessageHandler.Whole<String>) (String message) -> {
System.out.println("Received message: "+message);
messageLatch.countDown();
});
//let user do some data management
} catch (IOException e) {
System.out.println("Connect Fail.");
}
}
}, cec, new URI("ws://localhost/myApp/login"));
}
}
Является ли это код правильно делать аутентификацию? И где я могу сделать проверку подлинности на стороне сервера на @ServerEndPoint?
@ServerEndpoint
public class loginServerEndPoint {
}
Спасибо за помощь.
Мне очень жаль. Я действительно не понимаю. Почему пример относится к «web.xml»? Вы имеете в виду все, что мне нужно делать на стороне сервера, задавая web.xml? Я думал, что смысл аутентификации: сторона сервера проверит id и пароль, а затем сохранит что-то в переменной сеанса. Не понимаю ли я все это? – chiahao
Извините, вы имеете в виду, что web.xml определяет, где находится программа аутентификации на стороне сервера? Не могли бы вы сказать мне, какой тег выполняет эту работу? Одинаково ли это и в tomcat? Как вы это понимаете, потому что я не вижу никакой подсказки в [Tyrus guide] (https://tyrus.java.net/documentation/1.9/user-guide.html). Спасибо за Ваш ответ. – chiahao