ZeNiTHaR'z BLoG
Il existe moins bien mais c’est plus cher !
Il existe moins bien mais c’est plus cher !
7/08/10
Je viens d’être conforonté à un problème particulièrement énervant et difficile à diagnostiquer. C’est pour cela que je vous donne ma solution (il y a peut être mieux mais bon ça marche).
Une application web, contenant les composants techniques précités. La mise ne page est assurée par Tiles, et Dojo (version de Struts2).
Lorsque l’on charge la page, toutes les tiles ne sont pas affichées, et aucun message d’erreur n’est produit, ni exception; cependant lors de l’appel des liens vers les tiles, tout fonctionne correctement.
C’est un problème qui vient de l’utilisation de Spring Security, et de Tiles dans la même application. La nature asynchrone de la génération des tiles provoque des requête qui sont hors contexte de sécurité contrôlé par Spring Security. De plus le traitement des tiles demande plusieurs accès au contexte sécurité par requête ce qui est interdit par Spring Security d’où l’affichage incomplet.
Lorsque que l’on clique sur les liens seule la Tile est appelée donc convient au spécification d’utilisation Spring Security.
Pour cela il faut donc dire à Spring Security qu’il est possible d’accéder au contexte plusieurs fois par requête.
Cela se configure comme ceci dans votre applicationContext.xml (ou equiv.) :
<sec:http access-denied-page="/accessDenied.jsp" use-expressions="true" auto-config="false" entry-point-ref="authenticationProcessingFilterEntryPoint" lowercase-comparisons="false" once-per-request="false" realm="Pouet">
Ajouter l’attribut “once-per-request=”false”” à votre configuration.
Compilez, Assemblez, Deployez, Testez, … et normalement tout va marcher correctement.
Si ce n’est pas le cas essayez en enlevant INCLUDE au FilterDispatcher.
<filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> <dispatcher>REQUEST</dispatcher> <!-- <dispatcher>INCLUDE</dispatcher> --> <dispatcher>FORWARD</dispatcher> </filter-mapping>
Si cela ne marche pas, c’est que c’est un autre problème. Bon courage cependant ^^
2/08/10
Vous avez certainement déja vu ça, dans la configuration suivante :
Un problème d’affichage des caractères pouvant être mis en évidence par une sortie en ligne de commande suivante :
(firefox-bin:19337): Pango-CRITICAL **: No modules found: No builtin or dynamically loaded modules were found. PangoFc will not work correctly. This probably means there was an error in the creation of: '/etc/pango/pango.modules' You should create this file by running: pango-querymodules > '/etc/pango/pango.modules'
Il suffit de saisir les commandes suivantes :
-- Mise à jour des modules GTK / GDK / Pango 32 Bits -- #> gtk-query-immodules-2.0-32 > /etc/gtk-2.0/i686-pc-linux-gnu/gtk.immodules #> gdk-pixbuf-query-loaders32 > /etc/gtk-2.0/i686-pc-linux-gnu/gdk-pixbuf.loaders #> pango-querymodules32 > /etc/pango/i686-pc-linux-gnu/pango.modules
Et voila ! Vos applications 32Bits utilisant GTK ne parleront plus le marsien !
9/07/10
Voici une astuce pour vos dépôts GIT permettant de formater le code avant le commit sur le dépôt pour que tous les développeurs utilisent le même référentiel de formatage de code :
A placer dans le .git/hooks/pre-commit
function format_java {
file="${1}";
echo "${file}" | grep -ie "^.*\.java$" > /dev/null
if [ "$?" -eq 0 ] ; then
if [ -f "${file}" ] ; then
set -e
astyle --mode=java --style=java "${file}"
rm -f "${file}.orig"
git add "${file}"
set +e
fi
fi
}
for file in `git diff-index --cached --name-only HEAD` ; do
format_java "${file}"
doneVoila terminé les problèmes de merge à cause du formatage ! Tout le monde aura la même mise en forme !
1/07/10
Je suis à la recherche d’un développeur iPhone / iPad, pour un projet professionnel avec un éditeur de logiciel local sur Toulouse.
Compétences :
Si vous êtes intéressé, contactez moi, svp.
Merci d’avance.
EDIT : Meric à tous les postulants, ce poste est actuellement fermé.

23/05/10
“OAuth permet aux utilisateurs de donner, à une application ou un site « consommateur », l’accès à des informations personnelles sur un site “fournisseur” de service. OAuth permet de gérer ces autorisations sans avoir besoin de donner son identité.” [Wikipédia]
Pour résumer, c’est un procédé d’authentification auprès de webservices, un peu plus complexe qu’une API key ou autre. Cela ressemble (je vais peut être me faire taper) à OpenID dans le principe.
Je recherche des personnes ayant déjà travaillées dans le cadre de projets personnels et/ou professionnels avec la technologie OAuth.
Si vous avez des retours, je suis preneur.
Références :
15/04/10
Et oui, déjà plus de 6 mois que je n’ai rien posté. Pourquoi ? Un gros manque de motivation, beaucoup de boulot, pas de mal de choses ont changés aussi pendant ce temps (changement de boite, de métier, déménagement de DNS, etc.).
Comme je viens de le dire, oui j’ai quitté mon activité dans la Sécurité, pour me rediriger vers ma veine principale, l’ingénierie du logiciel. Pourquoi ce changement ? Et bien c’est difficile à expliquer.
Bon voila pour le vieux, maintenant passons au nouveau, je viens de mettre en place une forge (Git / Redmine) permettant de publier mes projets personnels en cours. Je vous invite à y faire un petit tour (f0rge de l’esprit).
Pour l’instant peu de choses sont publiées :
Merci à tous mes lecteurs (enfin ceux qui sont encore là !)
13/11/09
9/10/09
Pour reprendre la citation d’un amis :
On choisit ses amis,
On ne choisit pas sa famille,
On ne choisit pas ses collègues.
J’espère pouvoir te compter parmis mes amis.
OUI, Ow !
C’est avec un peu de mélancolie, que je vous remercie pour cette année en votre compagnie, merci encore.
Philippe, Stéph, David, Laurent, Johann, Mathieu, Alexandra, Nico, Sylvain, Eric, la fouine (Alan), Carine (& Franck ^^), Greg, Arnaud, Gilles (qui reprend le flambeau) et tous les autres ^^
Merci et bonne continuation à tous.
9/09/09
Bonsoir à tous, je me suis enfin motivé pour rédiger un multi-post, même si a mon avis un blog n’est pas fait dans cet objectif. (c’est plus le rôle d’un wiki)
Je vais parler de la mise en service LAMP (Linux Apache MySQL PHP) avancée, en y ajoutant des contraintes de sécurité.
Ce post sera pour une fois, orienté besoin, et non pas tartine technologique associé à un “Lego System”.
Je vais essayer de répondre à un besoin croissant en sécurité tout en répondant à des critères d’évaluation qui seront la disponibilité, l’intégrité, la confidentialité, l’auditabilité (noté DICA). Chaque configuration sera exposée à un risque qui sera évalué et coté selon ces mêmes critères.