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

io.tracee.contextlogger.data.subdata.servlet.ServletSessionContextProvider Maven / Gradle / Ivy

The newest version!
package io.tracee.contextlogger.data.subdata.servlet;

import io.tracee.contextlogger.api.Flatten;
import io.tracee.contextlogger.api.TraceeContextLogProvider;
import io.tracee.contextlogger.api.TraceeContextLogProviderMethod;
import io.tracee.contextlogger.api.WrappedContextData;
import io.tracee.contextlogger.data.Order;
import io.tracee.contextlogger.data.subdata.NameStringValuePair;

import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;

/**
 * Context provider for HttpSession.
 * Created by Tobias Gindler, holisticon AG on 19.03.14.
 */
@TraceeContextLogProvider(displayName = "servletSession", order = Order.SERVLET)
public final class ServletSessionContextProvider implements WrappedContextData {

    private HttpSession session;

    public ServletSessionContextProvider() {
    }

    public ServletSessionContextProvider(HttpSession session) {
        this.session = session;
    }

    @Override
    public void setContextData(Object instance) throws ClassCastException {
        this.session = (HttpSession) instance;
    }

    @Override
    public Class getWrappedType() {
        return HttpSession.class;
    }


    @SuppressWarnings("unused")
    @Flatten
    @TraceeContextLogProviderMethod(displayName = "DYNAMIC", propertyName = "DYNAMIC")
    public List getSessionAttributes() {

        if (session == null) {
            return null;
        }

        final List sessionAttributes = new ArrayList();

        if (session != null) {
            final Enumeration attributeNames = session.getAttributeNames();
            while (attributeNames.hasMoreElements()) {

                final String key = attributeNames.nextElement();
                final Object value = session.getAttribute(key);

                sessionAttributes.add(new NameStringValuePair(key, value != null ? value.toString() : null));

            }
        }

        return (sessionAttributes.size() > 0 ? sessionAttributes : null);

    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy