In our company we are planning to switch to a jBoss 4.0.3 based application 
server array, but we need to authenticate the users against our OpenLDAP 
service. I've been trying in many ways but I can't seem to get the right 
configuration.

Our ldap structure is:
dc=comune,dc=grosseto,dc=it
  | |_
  | | ou=people
  | | |_
  | | |_uid=user1
  | | |_uid=user2
  | |   uid=user3
  | |_
  |   ou=groups
  |   |_
  |   |_ cn=admin
  |   |_ cn=manager
  |   |_ cn=dipendenti
  |      ...

The user's group is specified as a group property:
dn              cn=admin,ou=groups,dc=comune,dc=grosseto,dc=it
  | cn              admin
  | objectClass     groupOfUniqueNames
  | uniqueMember    uid=user2,ou=people,dc=comune,dc=grosseto,dc=it
  | uniqueMember    uid=user3,ou=people,dc=comune,dc=grosseto,dc=it

Our webapp has this jboss-web.xml:
<?xml version="1.0" encoding="UTF-8"?>
  | <jboss-web>
  |     <security-domain>java:/jaas/comunegr</security-domain>
  | </jboss-web>

while web.xml includes this constraint:
<security-constraint>
  |     <web-resource-collection>
  |             <web-resource-name>certificati</web-resource-name>
  |             <url-pattern>/browse/*</url-pattern>
  |     </web-resource-collection>
  |     <auth-constraint>
  |             <role-name>utenti</role-name>
  |     </auth-constraint>
  | </security-constraint>
  | <login-config>
  |     <auth-method>FORM</auth-method>
  |     <realm-name>comunegr</realm-name>
  |     <form-login-config>
  |             <form-login-page>/login/login.jsp</form-login-page>
  |             <form-error-page>/login/error.jsp</form-error-page>
  |     </form-login-config>
  | </login-config>
  | <security-role>
  |     <role-name>utenti</role-name>
  | </security-role>

Finally, I added these lines to the jBoss' login-config.xml:
<application-policy name = "comunegr">
  |     <authentication>
  |             <login-module 
code="org.jboss.security.auth.spi.LdapExtLoginModule" flag="required">
  |                     <module-option name="java.naming.factory.initial"> 
  |                             com.sun.jndi.ldap.LdapCtxFactory
  |                     </module-option>
  |                     <module-option name="java.naming.provider.url">
  |                             ldap://ldap01.comune.grosseto.it:389/
  |                     </module-option>
  |                     <module-option 
name="java.naming.security.authentication">
  |                             simple
  |                     </module-option>
  |                     <module-option name="java.naming.security.protocol">
  |                             *
  |                     </module-option>
  |                     <module-option name="bindDN">
  |                             cn=admin,dc=comune,dc=grosseto,dc=it
  |                     </module-option>
  |                     <module-option name="bindCredential">
  |                             [password]
  |                     </module-option>
  |                     <module-option name="baseCtxDN">
  |                             ou=people,dc=comune,dc=grosseto,dc=it
  |                     </module-option>
  |                     <module-option name="baseFilter">
  |                             (uid={0})
  |                     </module-option>
  |                     <module-option name="rolesCtxDN">
  |                             ou=groups,dc=comune,dc=grosseto,dc=it
  |                     </module-option>
  |                     <module-option name="roleFilter">
  |                             (uniqueMember={0})
  |                     </module-option>
  |                     <module-option 
name="roleAttributeIsDN">true</module-option>
  |                     <module-option 
name="roleNameAttributeID">cn</module-option>
  |             </login-module>
  |     </authentication>
  | </application-policy>

(I also tried to connect with LdapLoginModule (and jBoss 4.0.2) which has 
slightly different options, but still I could not authenticate)

As I call the webapp from the browser I get this error:
anonymous wrote : java.lang.NullPointerException
  |     at 
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
  |     at org.apache.jsp.index_jsp._jspService(org.apache.jsp.index_jsp:53)
  |     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
  |     at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
  |     at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
  |     at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
  |     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
  |     at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
  |     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
  |     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  |     at 
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
  |     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
  |     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  |     at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
  |     at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
  |     at 
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
  |     at 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:157)
  |     at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:407)
  |     at 
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
  |     at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
  |     at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
  |     at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
  |     at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
  |     at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
  |     at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
  |     at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
  |     at 
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
  |     at java.lang.Thread.run(Thread.java:595)
  | 

AFTER this error I get the login page anyway, but no user can be authenticated:
anonymous wrote : HTTP Status 403 - Access to the requested resource has been 
denied

Can someone help me?

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3896275#3896275

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3896275


-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
JBoss-user mailing list
JBoss-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to