Bonjour,
suite à mes investigations
j'ai mis en place l'authentification Basic sur mon tomcat. mais pour le dev nous utilisons maven et run-jetty-run dans éclipse.
pour faire fonctionner tous ça j'ai donc eu besoin de configurer run-jetty-run avec une authentification en fichier et tomcat avec LDAP
pour Jetty voici ce que j'ai fait
dans mon cas le rôle-name est mis à * car au final ldap ne gère pas les rôles (i.e. remplacer jettyuser par * dans web.xml et ignorer la vérification 3)MARCHE A SUIVRE
-> le but est d’ajouter une autentification http BASIC à une webapp lors d’une exécution via la plugin runjettyrun.
PREPARATION
- Dans le dossier src de la webapp ajouter le dossier jetty.
- Dans le dossier src/jetty créer le fichier jetty-run-config.xml.
- Editer le fichier jetty-run-config.xml.
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <?xml version="1.0"?> <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> <Configure class="org.mortbay.jetty.Server"> <Set name="UserRealms"> <Array type="org.mortbay.jetty.security.UserRealm"> <Item> <New class="org.mortbay.jetty.security.HashUserRealm"> <Set name="name">Jetty Realm</Set> <Set name="config"><SystemProperty name="jetty.home" default="."/>/src/jetty/jetty-realm.properties</Set> <Set name="refreshInterval">0</Set> </New> </Item> </Array> </Set> </Configure>- Dans le dossier src/jetty créer le fichier jetty-realm.properties.
- Editer le fichier jetty-realm.properties.
- user: secret,jettyuser
SECURISER LA WEBAPP
- Editer le fichier web.xml.
VERIFICATION
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <security-constraint> <web-resource-collection> <web-resource-name>JettyServer</web-resource-name> <url-pattern>/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>jettyuser</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>BASIC</auth-method> <realm-name>Jetty Realm</realm-name> </login-config> <security-role> <role-name>jettyuser</role-name> </security-role> </web-app>
- Le chemin /src/jetty/jetty-realm.properties dans le fichier jetty-run-config.xml doit correspondre au nom du fichier de propriétés jetty-realm.properties.
- La valeur de la propriété <realm-name> du fichier web.xml doit correspondre à celle de <Set name="name"> dans le fichier jetty-run-config.xml.
- La valeur de la propriété <role-name> du fichier web.xml doit correspondre au rôle de l’utilisateur dans le fichier jetty-realm.properties (valeur après la virgule).
DEMARRAGE
- Créer une nouvelle configuration de démarrage (menu « run »)
- Cocher la case Show Advanced Options.
- Dans le champ Additional Jetty .xml sélectionner le fichier jetty-run-config.xml.
- Exécuter
Côté tomcat ajout de l'authentification via LDAP (active Directory)
Dans le fichier serveur;xml sous <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
ajouter
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <Realm className="org.apache.catalina.realm.JNDIRealm" connectionURL="ldap://ds.server.fr:389" authentication="simple" referrals="follow" connectionName="TomcatUser@domainName" connectionPassword="supersecret" userSearch="(&(CN={0})(memberof=CN=MyGroup,OU=groupes,OU=-standard,DC=domain,DC=societe,DC=fr))" userBase="DC=domain,DC=societe,DC=fr" userSubtree="true" roleSearch="(cn=MyGroup)" roleName="cn" roleSubtree="true" roleBase="DC=DC=domain,DC=societe,DC=fr" allRolesMode="authOnly"/>
l'utilisateur est donc authentifié par ldap seul les membre du groupe MyGroup y ont accès.
le rôle n'est pas pris en compte allRolesMode="authOnly"
c'est ne nom du groupe qui est récupéré dans le rôle.
A+JYT
Partager