Bonjour,
je suis actuellement en stage et je dois développer un portail pour une entreprise en utilisant JBoss Portal.
Depuis quelques jours je suis bloqué sur un problème que je n'arrive pas à résoudre. Il éxiste déjà un portail en place avec une authentification faite grâce à une valve Tomcat, j'aimerai pouvoir utiliser cette valve afin d'être reconnu directement dans le portail JBoss avec les droits associés aux utilisateurs.
J'aimerai dans un premier temps expérimenté avec un petite valve qui me permettrai de me connecter en forçant la connexion en tant qu'administrateur. J'ai donc créer un classe java toute simple :
et j'ai modifié le fichier jboss-portal-2.6.4/server/default/deploy/jboss-web.deployer/server.xml
Code : 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 package com.portal.security; import java.io.IOException; import java.security.Principal; import javax.servlet.ServletException; import org.apache.catalina.Authenticator; import org.apache.catalina.Realm; import org.apache.catalina.Session; import org.apache.catalina.connector.Request; import org.apache.catalina.connector.Response; import org.apache.catalina.valves.ValveBase; public class PortalAuthenticator extends ValveBase implements Authenticator { public void invoke(Request request, Response response) throws IOException, ServletException { Realm realm = null; Principal principal = null; if (getContainer() != null) { realm = getContainer().getRealm(); } System.out.println(realm.toString()); if (realm != null){ principal = realm.authenticate("admin", "admin"); } if (principal != null) { System.out.println("principal " + principal.getName()); request.setUserPrincipal(principal); request.setAuthType("SSO"); Session session = request.getSessionInternal(principal != null); } getNext().invoke(request, response); return; } }
en y ajoutant la valve :
J'ai laissé le realm par défaut de JBoss c'est à dire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<Valve className="com.portal.security.PortalAuthenticator"/>
Le problème c'est que le Principal est toujours null.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <Realm className="org.jboss.web.tomcat.security.JBossSecurityMgrRealm" certificatePrincipal="org.jboss.security.auth.certs.SubjectDNMapping" allRolesMode="authOnly" debug="2" />
Voilà un bout du log du serveur qui concerne le moment où les portlets se chargent.
Si quelqu'un a une idée pour corriger ce problème ce serait super2008-03-06 14:36:51,145 TRACE [org.jboss.web.tomcat.security.JBossSecurityMgrRealm] Begin authenticate, username=admin
2008-03-06 14:36:51,146 TRACE [org.jboss.ejb3.naming.SimpleMultiplexer] contextClassLoader = org.jboss.mx.loading.UnifiedClassLoader3@152e961{ url=file:/home/swingApps/jboss-portal-2.6.4/server/default/deploy/jboss-web.deployer/ ,addedOrder=6} ctxOne = org.jnp.interfaces.NamingContext@a294ec
2008-03-06 14:36:51,146 TRACE [org.jboss.web.tomcat.security.JBossSecurityMgrRealm] No security context for authenticate(String, String)
2008-03-06 14:36:51,146 DEBUG [org.apache.catalina.authenticator.AuthenticatorBase] Security checking request GET /portal/auth/portal/DelfingenPortal/default2008-03-06 14:36:51,146 DEBUG [org.apache.catalina.realm.RealmBase] Checking constraint 'SecurityConstraint[Authenticated]' against GET /auth/portal/DelfingenPortal/default --> true
2008-03-06 14:36:51,146 DEBUG [org.apache.catalina.realm.RealmBase] Checking constraint 'SecurityConstraint[Secure]' against GET /auth/portal/DelfingenPortal/default --> false
2008-03-06 14:36:51,146 DEBUG [org.apache.catalina.realm.RealmBase] Checking constraint 'SecurityConstraint[Secure+Authenticated]' against GET /auth/portal/DelfingenPortal/default --> false
2008-03-06 14:36:51,146 DEBUG [org.apache.catalina.realm.RealmBase] Checking constraint 'SecurityConstraint[Authenticated]' against GET /auth/portal/DelfingenPortal/default --> true
2008-03-06 14:36:51,146 DEBUG [org.apache.catalina.realm.RealmBase] Checking constraint 'SecurityConstraint[Secure]' against GET /auth/portal/DelfingenPortal/default --> false
2008-03-06 14:36:51,146 DEBUG [org.apache.catalina.realm.RealmBase] Checking constraint 'SecurityConstraint[Secure+Authenticated]' against GET /auth/portal/DelfingenPortal/default --> false
2008-03-06 14:36:51,146 DEBUG [org.apache.catalina.authenticator.AuthenticatorBase] Calling hasUserDataPermission()
2008-03-06 14:36:51,146 DEBUG [org.apache.catalina.realm.RealmBase] User data constraint has no restrictions
2008-03-06 14:36:51,146 DEBUG [org.apache.catalina.authenticator.AuthenticatorBase] Calling authenticate()
2008-03-06 14:36:51,146 DEBUG [org.apache.catalina.authenticator.FormAuthenticator] Save request in session '0D126B007958F72D979642C38AE79380'
2008-03-06 14:36:51,147 TRACE [org.apache.catalina.core.StandardWrapper] Returning non-STM instance
2008-03-06 14:36:51,147 TRACE [org.jboss.web.tomcat.security.RunAsListener] jsp, runAs: null
2008-03-06 14:36:51,147 TRACE [org.jboss.web.tomcat.security.RunAsListener] jsp, runAs: null
Merci.
Partager