package com.ejie.x38.rss.security;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
/**
* Wrapper de la request HTTP utilizado para añadir información de autorización
* del usaurio al contenido RSS.
*
* @author UDA
*
*/
public class RssHttpServletRequestWrapper extends HttpServletRequestWrapper {
/**
* Lista de cookies añadidas a la request HTTP
*/
public List<Cookie> extraCookies;
/**
* Crea una nueva request HTTP a partir de la indicada por parámetro. Se le
* añadirán las cookies existentes en la propiedad extraCookies.
*
* @param paramHttpServletRequest
*/
public RssHttpServletRequestWrapper(HttpServletRequest paramHttpServletRequest) {
super(paramHttpServletRequest);
extraCookies = new ArrayList<Cookie>();
Cookie[] cookies = paramHttpServletRequest.getCookies();
if (cookies != null && cookies.length > 0) {
List<Cookie> asList = Arrays.asList();
extraCookies.addAll(asList);
}
}
/**
* Añade una cookie a la propiedad que contiene la lista extra de cookies.
*
* @param cookie
* Cookie extra a añadir a la propiedad extraCookies.
*/
public void addCookie(Cookie cookie) {
extraCookies.add(cookie);
}
/**
* {@inheritDoc}
*/
@Override
public Cookie[] getCookies() {
Cookie[] cookieArray = new Cookie[extraCookies.size()];
return this.extraCookies.toArray(cookieArray);
}
}