All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ithit.webdav.integration.servlet.websocket.DavHttpSessionConfigurator Maven / Gradle / Ivy

package com.ithit.webdav.integration.servlet.websocket;

import jakarta.websocket.HandshakeResponse;
import jakarta.websocket.server.HandshakeRequest;
import jakarta.websocket.server.ServerEndpointConfig;

import static com.ithit.webdav.integration.utils.IntegrationUtil.INSTANCE_HEADER_NAME;

/**
 * Dav specific configuration class for WebSockets. Puts 'InstanceId' header in the
 * session UserProperties.
 */
public class DavHttpSessionConfigurator extends ServerEndpointConfig.Configurator {

    @Override
    public void modifyHandshake(ServerEndpointConfig config,
            HandshakeRequest request,
            HandshakeResponse response) {
        config.getUserProperties().put(INSTANCE_HEADER_NAME, request.getHeaders()
                .entrySet()
                .stream()
                .filter(x -> x.getKey().equalsIgnoreCase(INSTANCE_HEADER_NAME))
                .findFirst().map(x -> {
                    if (!x.getValue().isEmpty()) {
                        return x.getValue().get(0);
                    }
                    return "";
                })
                .orElse(""));
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy