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

org.cometd.bayeux.server.BayeuxContext Maven / Gradle / Ivy

There is a newer version: 7.4.3.112-ga112
Show newest version
/*
 * Copyright (c) 2008-2018 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.cometd.bayeux.server;

import java.net.InetSocketAddress;
import java.security.Principal;
import java.util.List;
import java.util.Locale;

/**
 * 

The Bayeux Context provides information about the current context of a Bayeux message.

*

This information may be from an associated HTTP request, or a HTTP request used to * originally establish the connection (for example in a websocket handshake).

*/ public interface BayeuxContext { /** * @return The user Principal (if any) */ Principal getUserPrincipal(); /** * @param role the role to check whether the user belongs to * @return true if there is a known user and they are in the given role. */ boolean isUserInRole(String role); /** * @return the remote socket address */ InetSocketAddress getRemoteAddress(); /** * @return the local socket address */ InetSocketAddress getLocalAddress(); /** * Get a transport header.

* Get a header for any current transport mechanism (eg HTTP request). * For transports like websocket, the header may be from the initial handshake. * * @param name The name of the header * @return The header value or null if no current transport mechanism or no such header. */ String getHeader(String name); /** * Get a multi valued transport header.

* Get a header for any current transport mechanism (eg HTTP request). * For transports like websocket, the header may be from the initial handshake. * * @param name The name of the header * @return The header value or null if no current transport mechanism or no such header. */ List getHeaderValues(String name); /** * Get a transport parameter.

* Get a parameter for any current transport mechanism (eg HTTP request). * For transports like websocket, the parameter may be from the initial handshake. * * @param name The name of the parameter * @return The parameter value or null if no current transport mechanism or no such parameter. */ String getParameter(String name); /** * Get a multi valued transport parameter.

* Get a parameter for any current transport mechanism (eg HTTP request). * For transports like websocket, the parameter may be from the initial handshake. * * @param name The name of the parameter * @return The parameter value or null if no current transport mechanism or no such parameter. */ List getParameterValues(String name); /** * Get a transport cookie.

* Get a cookie for any current transport mechanism (eg HTTP request). * For transports like websocket, the cookie may be from the initial handshake. * * @param name The name of the cookie * @return The cookie value or null if no current transport mechanism or no such cookie. */ String getCookie(String name); /** * Access the HTTP Session (if any) ID. * The {@link ServerSession#getId()} should be used in preference to the HTTP Session. * * @return HTTP session ID or null */ String getHttpSessionId(); /** * Access the HTTP Session (if any) attributes. * The {@link ServerSession#getAttribute(String)} should be used in preference to the HTTP Session. * * @param name the attribute name * @return The attribute value */ Object getHttpSessionAttribute(String name); /** * Access the HTTP Session (if any) attributes. * The {@link ServerSession#setAttribute(String, Object)} should be used in preference to the HTTP Session. * * @param name the attribute name * @param value the attribute value */ void setHttpSessionAttribute(String name, Object value); /** * Invalidate the HTTP Session. * The {@link ServerSession#getId()} should be used in preference to the HTTP Session. */ void invalidateHttpSession(); /** * Access the Request (if any) attributes. * * @param name the attribute name * @return The attribute value */ Object getRequestAttribute(String name); /** * Access the ServletContext (if any) attributes. * * @param name the attribute name * @return The attribute value */ Object getContextAttribute(String name); /** * Access the ServletContext (if any) init parameter. * * @param name the init parameter name * @return The attribute value */ String getContextInitParameter(String name); /** * @return the application context path */ String getContextPath(); /** * @return the full request URI complete with query string if present. */ String getURL(); /** * @return the request Locales, in order of preference, or the default * server Locale if the request Locales are missing. */ List getLocales(); /** * @return a string containing the protocol name and version number */ String getProtocol(); /** * @return whether the request was made over a secure channel */ boolean isSecure(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy