
com.zandero.rest.context.BaseRequestContext Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of rest.context Show documentation
Show all versions of rest.context Show documentation
REST easy request and security context
The newest version!
package com.zandero.rest.context;
import com.google.inject.servlet.RequestScoped;
import com.zandero.http.RequestUtils;
import com.zandero.utils.extra.UrlUtils;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
/**
* Base request context to be expanded
*/
@RequestScoped
public abstract class BaseRequestContext implements RequestContext {
private final int port;
private final String scheme;
private final String domainName;
private final String clientIpAddress;
private final Map headers;
private final String query;
private final String path;
@Inject
public BaseRequestContext(HttpServletRequest servletRequest) {
scheme = RequestUtils.getScheme(servletRequest);
port = servletRequest.getServerPort();
domainName = UrlUtils.resolveDomain(servletRequest.getServerName());
path = servletRequest.getContextPath() + servletRequest.getPathInfo();
clientIpAddress = RequestUtils.getClientIpAddress(servletRequest);
headers = getHeaders(servletRequest);
query = servletRequest.getQueryString();
}
@Override
public Map getHeaders(HttpServletRequest servletRequest) {
Map map = new HashMap<>();
Enumeration e = servletRequest.getHeaderNames();
if (e != null) {
while (e.hasMoreElements()) {
String name = (String) e.nextElement();
String value = servletRequest.getHeader(name);
map.put(name, value);
}
}
return map;
}
@Override
public String getScheme() {
return scheme;
}
@Override
public String getDomainName() {
return domainName;
}
@Override
public int getPort() {
return port;
}
@Override
public String getClientIP() {
return clientIpAddress;
}
@Override
public String getHeader(String name) {
if (headers == null) {
return null;
}
return headers.get(name);
}
@Override
public Map getHeaders() {
return headers;
}
@Override
public String getQuery() {
return query;
}
@Override
public String getBaseUrl() {
return UrlUtils.composeUrl(scheme, domainName, port);
}
@Override
public String getPath() {
return path;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy