Eviter l’exception « Too many redirects at URL » sur Google App Engine

Salut,

Ce soir, je vous fais part d’une petite « astuce » qui m’a permis de surpasser les limitations de Google App Engine en matière de redirection. En effet, l’utilisation du service URLFecthService ne supporte pas les pages web avec plus de 5 redirections.

Du coup, j’ai mis au point un petit bout de code pour passer outre cette limitation.

package com.roisoleil.redirectexception;

import java.io.IOException;
import java.net.URL;
import java.util.List;

import com.google.appengine.api.urlfetch.FetchOptions.Builder;
import com.google.appengine.api.urlfetch.HTTPHeader;
import com.google.appengine.api.urlfetch.HTTPMethod;
import com.google.appengine.api.urlfetch.HTTPRequest;
import com.google.appengine.api.urlfetch.HTTPResponse;
import com.google.appengine.api.urlfetch.URLFetchService;
import com.google.appengine.api.urlfetch.URLFetchServiceFactory;

public class RedirectUtils {

	public final static String LOCATION = "Location";

	public final static int REDIRECT_CODE = 301;

	public final static int REDIRECT_CODE_2 = 302;

	public static URL resolveRedirect(URL url, HTTPMethod httpMethod)
			throws IOException {
		URL resolvedURL = url;
		URLFetchService urlFetchService = URLFetchServiceFactory
				.getURLFetchService();
		HTTPResponse httpResponse = urlFetchService.fetch(new HTTPRequest(url,
				httpMethod, Builder.doNotFollowRedirects()));
		if (REDIRECT_CODE == httpResponse.getResponseCode()
				|| REDIRECT_CODE_2 == httpResponse.getResponseCode()) {
			String location = getLocation(httpResponse.getHeaders());
			resolvedURL = resolveRedirect(new URL(location), httpMethod);
		}
		return resolvedURL;
	}

	public static String getLocation(List httpHeaders) {
		HTTPHeader locationHeader = null;
		for (HTTPHeader httpHeader : httpHeaders) {
			if (LOCATION.equals(httpHeader.getName())) {
				locationHeader = httpHeader;
				break;
			}
		}
		return locationHeader.getValue();
	}

}

Le code ne fait que « Fetcher » l’URL souhaitée sans suivre la possible redirection et si il y a redirection continue jusqu’à avoir l’adresse finale.

Pour faire mes tester, j’ai créé une application à cette URL qui permet de tester mon code.

Avec qui fait une boucle de redirection

Avec qui fais appel directiement à URLFecthService

et qui fait appel à mon code avant de faire appel à URLFetchService

Voilà … en espérant que cela aide 😉

Permettre l’exécution en mode sudo sans renseigner le mot de passe

Salut les copains,

Voici un cours tutoriel qui vous permettra d’exécuter un commande en « sudo » sans avoir à taper le mot de passe.

Pour ce faire rien de plus simple, sous Ubuntu et sur la plupart des systèmes Linux, il existe un répertoire « /etc/sudoers.d » ou l’on peux créé un fichier permettant d’ajouter des exceptions à la demande du mot de passe lors de l’utilisation de la commande « sudo ».

Pour ce tutorial, je vais prendre comme exemple la commande « apt-get update » qui permet de mettre à jour les dépots et qui doit être lancée avec des droits root et qui dit droit root, dit sudo et dit mot de passe à renseigner. Ce qui peut être contraignant à la longue 😉 Voila ce que cela donne normalement :

no-exception

Pour ne plus avoir à renseigner le mot de passe, il faut créer un fichier dans « /etc/sudoers.d/ » que nous allons appeler « apt-no-password » et y ajouter la ligne « toto ALL = (root) NOPASSWD: /usr/bin/apt-get » ou toto correspond à votre nom d’utilisateur. Pour créer ce fichier, il faut avoir les droit root et par exemple taper la commande :

echo 'gilles ALL = (root) NOPASSWD: /usr/bin/apt-get' | sudo tee -a /etc/sudoers.d/apt-get-no-password

add-file

Et maintenant, il ne nous reste plus qu’à tester que cela fonctionne bien.

sudo apt-get update

no-password

Et voilà ….

PS : Avec une vidéo c’est toujours plus claire 😉

Activer l’envoi d’article depuis WordPress for Android

Bonjour à tous,

Ca fait un petit bail que je n’ai pas posté un nouvel article sur le blog mais bon ce week end après un petit retour en famille … j’ai essayé de posté depuis mon téléphone Android en utilisant l’application WordPress for Android.

Or il faut avoir activé l’option avant de pouvoir poster depuis l’application, je l’ai fais et du coup je partage ça avec vous :

Le menu a cliquer ou l’adresse pour configurer
Et la petite checkbox à cocher
Et la petite checkbox à cocher

Enregistrer les modifications et voila vous devriez pouvoir utiliser WordPress for Android pour poster des articles sur votre blog 😉

Mon premier billet !!!

Bonjour à tous,

Voici mon premier billet et j’en suis trés content. Je ne sais pas encore avec quelle périodicité je vais écrire des articles mais j’essaierais d’en poster au moins un par semaine 😉

Pour commencer, je me suis servie de ce tuto pour mettre WordPress 3.4.1 sur mon serveur OVH car comme tout bon G33K, il me faut absolument la dernière version disponible …

Mercredi, je pars à Rome et je compte faire un petit résumé de mon trip au pays des pâtes 😉

A bientôt pour mon prochain billet.