Il existe moins bien mais c’est plus cher !
Développement
Spring Security & Apache Tiles
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).
Environnement
- Moteur MVC : Struts 2.1.8.1
- IoC : Spring 3.0.3
- Securité : Spring Security 3.0.3
- Moteur de template : Apache Tiles 2.2
Description du contexte
Une application web, contenant les composants techniques précités. La mise ne page est assurée par Tiles, et Dojo (version de Struts2).
Problème
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.
Explication
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.
Solution
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 ^^
Parce que y’en a marre des erreurs de merge d’espace !
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 !
gCC – green Coding Concept
29/07/09
Après une longue période d’inactivité de mon blog, due au travail, à la recherche d’appartement, les travaux d’emménagement et une bonne dose de flemme, je me décide à couper court à ce désert.
Hier en discutant avec ervin sur IRC (#atisi), qui m’expliquait comment RMS utilisait le mode déconnecté dans tout son art pour consulter de manière asynchrone les sites internet qui l’intéressaient. J’ai eu un flash comme ça m’arrive souvent mais d’habitude c’est plutôt dans un haut lieu de solitude et de créativité qui se pourrait être : mes toilettes. Oui bien c’est comme ça, je choisi pas lol !
Bref, qu’est ce que le “green Coding Concept” ?
Imaginez un développeur, qui code avec ses pieds (Force 10 sur l’ echelle de goret), vous imaginez que ces petites fantaisies ont un impact sur le nombre de cycle CPU, par conséquent sur la consommation électrique, et donc sur l’émission de CO2, pour faire simple :
Un mauvais développeur pollue !
Voici la solution “gCC” (et non pas GCC : GNU C Compiler) mais bien “green Code Compiler”, un programme de vérification automatisée :
- Propreté (compléxité)
- Gaspillage (code mort, memory leak)
- Recyclage (couplage, dépendances)
Le but du programme est d’estimer en fonction des métriques relevées la “consommation éléctrique statistique bidonesque”. C’est juste pour avoir une valeur !
En fonction de cela, on pourrait avoir un label et une certification (c’est la mode en ce moment ^^).
Good Code saves Trees
Design Patterns Cheat Sheet
8/08/08
On va encore dire que je suis obsédé par les “design patterns” je sais ! Mais bon j’ai toujours pas trouvé une fiche avec les DP bien présentés, je sens que je vais en faire une comme ça, j’aurais ce que je veux …
En attendant en voici une qui s’approche de ce que je souhaite.
Katan : Colons de catane, modélisation.
5/08/08
Bonsoir à tous, ça fait un petit bout de temps que ce modèle traine sur mon PC, je suis en train de faire le ménage en vue de changement de matériel, et j’ai donc décidé de publier ce modèle.
Il est a prendre comme il est, il nécessite certainement un travail de “refactoring”, cependant ce n’est pas le diagramme de classe final.
A vous les retours, si vous en avez ! Je peux vous fournir le projet Bouml (Merci à Bruno Pagès, pour cet outil ^^) sur demande.



