2015-04-30 3 views
1

Это мой первый пост. Я видел некоторый ответ на этот вопрос - Jetty 8.1.1 Websocket client handshake Но использование подобного решения не помогло мне. Клиент подключается к серверу и отправляет сообщение, но на стороне сервера сервер не аутентифицирует клиента (недействительный токен) даже жестко. Я посылаю правильный токен. Я не могу понять, чего не хватает. То же самое в Javascript работает, но я должен реализовать его на Java.Настройка заголовков с использованием Jetty Websocket Client

Вот мой пример кода клиента. Любая помощь будет принята с благодарностью. Спасибо!

public class JettyWebSocketClient { 

    public static void main(String[] args) throws Exception { 
    JettyWebSocketClient app = new JettyWebSocketClient(); 
    app.test(); 
} 

    public void test() throws Exception { 
    ClientUpgradeRequest request = new ClientUpgradeRequest(); 
    request.setHeader("Authorization", "xyz=="); 
    WebSocketClient client = new WebSocketClient(new SslContextFactory()); 
    MyWebSocket socket = new MyWebSocket(); 
    client.start(); 
    URI destUri = new URI("wss://xyz.com:4443/ws"); 
    System.out.println("Connecting to " + destUri); 
    client.connect(socket, destUri, request); 
    socket.awaitClose(20, TimeUnit.SECONDS); 
    client.stop(); 
    } 
} 

ответ

1

Если сервер ожидает Basic Authentication, значение Authorization заголовка должно начинаться с "Basic".

Попробуйте изменить

request.setHeader("Authorization", "xyz=="); 

в

request.setHeader("Authorization", "Basic xyz=="); 
+0

Спасибо, но это не помогло. – PRE