Which file are you talking about in Appfuse 2.x?
Are these settings ok also for Active Directory?
Thanks a lot.

ulypses73


mraible wrote:
> 
> Here's what I've done in the past to get LDAP working with AppFuse 1.9.4:
> 
> 1. Change the "authenticationManager" bean to use "ldapProvider"
> instead of "daoAuthenticationProvider":
> 
>     <bean id="authenticationManager"
> class="org.acegisecurity.providers.ProviderManager">
>         <property name="providers">
>             <list>
>                 <ref local="ldapProvider"/>
>                 <!--ref local="daoAuthenticationProvider"/-->
>                 <ref local="anonymousAuthenticationProvider"/>
>                 <ref local="rememberMeAuthenticationProvider"/>
>             </list>
>         </property>
>     </bean>
> 
> 2. Added ldapProvider and supporting beans:
> 
>     <bean id="ldapProvider"
> class="org.acegisecurity.providers.ldap.LdapAuthenticationProvider">
>         <constructor-arg>
>             <bean
> class="org.acegisecurity.providers.ldap.authenticator.BindAuthenticator">
>                 <constructor-arg ref="initialDirContextFactory"/>
>                 <property name="userDnPatterns">
>                     <list>
>                         <value>uid={0}</value>
>                     </list>
>                 </property>
>                 <property name="userSearch" ref="userSearch"/>
>                 <property name="userDetailsMapper"
> ref="ldapUserDetailsMapper"/>
>             </bean>
>         </constructor-arg>
>         <constructor-arg>
>             <bean
> class="org.acegisecurity.providers.ldap.populator.DefaultLdapAuthoritiesPopulator">
>                 <constructor-arg ref="initialDirContextFactory"/>
>                 <constructor-arg value=""/>
>                 <property name="groupRoleAttribute" value="cn"/>
>                 <property name="groupSearchFilter"
> value="(&amp;(objectclass=groupOfUniqueNames)(uniqueMember={0}))"/>
>                 <property name="searchSubtree" value="true"/>
>                 <property name="rolePrefix" value=""/>
>                 <property name="convertToUpperCase" value="false"/>
>             </bean>
>         </constructor-arg>
>     </bean>
> 
>     <bean id="initialDirContextFactory"
> class="org.acegisecurity.ldap.DefaultInitialDirContextFactory">
>         <constructor-arg value="${ldap.url}/${ldap.base}"/>
>         <property name="managerDn" value="${ldap.username}"/>
>         <property name="managerPassword" value="${ldap.password}"/>
>     </bean>
> 
>     <bean id="userSearch"
> class="org.acegisecurity.ldap.search.FilterBasedLdapUserSearch">
>         <constructor-arg index="0" value=""/>
>         <constructor-arg index="1" value="(uid={0})"/>
>         <constructor-arg index="2" ref="initialDirContextFactory"/>
>         <property name="searchSubtree" value="true"/>
>     </bean>
> 
>     <bean id="ldapUserDetailsMapper"
> class="org.acegisecurity.userdetails.ldap.LdapUserDetailsMapper">
>         <property name="rolePrefix" value=""/>
>     </bean>
> 
> 3. Change the passwordEncoder bean to be LdapShaPasswordEncoder:
> 
> <bean id="passwordEncoder"
> class="org.acegisecurity.providers.ldap.authenticator.LdapShaPasswordEncoder"/>
> 
> In this example, my ldap.properties (which populates
> initialDirContextFactory) is set to:
> 
> ldap.url=ldap://localhost:1389
> ldap.base=ou=system
> ldap.username=uid=admin,ou=system
> ldap.password=secret
> 
> HTH,
> 
> Matt
> 
> On 4/9/07, ChenRanHow <[EMAIL PROTECTED]> wrote:
>> Dear all
>>
>>   I try to use Appfuse 1.9.4 with apache DS
>>
>>   I use the ldif download from apache DS
>>
>>  
>> http://directory.apache.org/apacheds/1.0/15-about-the-sample-configurations-and-sample-directory-data.data/apache_ds_tutorial.ldif
>>
>>   when login, I always get the error below
>>
>>   //-------------------
>> [appfuse] WARN [http-80-Processor25]
>> LoggerListener.onApplicationEvent(55) | Authentication event
>> AuthenticationFailureB
>> adCredentialsEvent: jfryer; details:
>> [EMAIL PROTECTED]:
>> RemoteIpAddress: 127.0.0.1;
>>  SessionId: 4EA50EF9019AA1D0630D1B1A1F88E663; exception: Bad credentials
>>   //-------------------
>>
>>  Below is the security.xml
>>
>>   //-------------------
>> <?xml version="1.0" encoding="UTF-8"?>
>> <beans xmlns="http://www.springframework.org/schema/beans";
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>        xmlns:aop="http://www.springframework.org/schema/aop";
>>        xsi:schemaLocation="http://www.springframework.org/schema/beans
>> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
>>             http://www.springframework.org/schema/aop
>> http://www.springframework.org/schema/aop/spring-aop-2.0.xsd";>
>>
>>     <!-- ======================== FILTER CHAIN =======================
>> -->
>>     <bean id="filterChainProxy"
>> class="org.acegisecurity.util.FilterChainProxy">
>>         <property name="filterInvocationDefinitionSource">
>>             <value>
>>                 CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
>>                 PATTERN_TYPE_APACHE_ANT
>>
>> /**=httpSessionContextIntegrationFilter,logoutFilter,authenticationProcessingFilter,securityContextHolderAwareRequestFilter,rememberMeProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor
>>             </value>
>>             <!-- Put channelProcessingFilter before
>> securityContextHolderAwareRequestFilter to turn on SSL switching -->
>>             <!-- It's off by default b/c Canoo WebTest doesn't support
>> SSL out-of-the-box -->
>>         </property>
>>     </bean>
>>
>>     <bean id="httpSessionContextIntegrationFilter"
>> class="org.acegisecurity.context.HttpSessionContextIntegrationFilter"/>
>>
>>     <bean id="logoutFilter"
>> class="org.acegisecurity.ui.logout.LogoutFilter">
>>         <constructor-arg value="/index.jsp"/> <!-- URL redirected to
>> after logout -->
>>         <constructor-arg>
>>             <list>
>>                 <ref bean="rememberMeServices"/>
>>                 <bean
>> class="org.acegisecurity.ui.logout.SecurityContextLogoutHandler"/>
>>             </list>
>>         </constructor-arg>
>>         <property name="filterProcessesUrl" value="/logout.jsp"/>
>>     </bean>
>>
>>     <bean id="authenticationProcessingFilter"
>> class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilter">
>>         <property name="authenticationManager"
>> ref="authenticationManager"/>
>>         <property name="authenticationFailureUrl"
>> value="/login.jsp?error=true"/>
>>         <property name="defaultTargetUrl" value="/"/>
>>         <property name="filterProcessesUrl" value="/j_security_check"/>
>>         <property name="rememberMeServices" ref="rememberMeServices"/>
>>     </bean>
>>
>>     <bean id="securityContextHolderAwareRequestFilter"
>> class="org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter"/>
>>
>>     <bean id="rememberMeProcessingFilter"
>> class="org.acegisecurity.ui.rememberme.RememberMeProcessingFilter">
>>         <property name="authenticationManager"
>> ref="authenticationManager"/>
>>         <property name="rememberMeServices" ref="rememberMeServices"/>
>>     </bean>
>>
>>     <bean id="anonymousProcessingFilter"
>> class="org.acegisecurity.providers.anonymous.AnonymousProcessingFilter">
>>         <property name="key" value="anonymous"/>
>>         <property name="userAttribute" value="anonymous,ROLE_ANONYMOUS"/>
>>     </bean>
>>
>>     <bean id="exceptionTranslationFilter"
>> class="org.acegisecurity.ui.ExceptionTranslationFilter">
>>         <property name="authenticationEntryPoint">
>>             <bean
>> class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">
>>                 <property name="loginFormUrl" value="/login.jsp"/>
>>                 <property name="forceHttps" value="false"/>
>>             </bean>
>>         </property>
>>     </bean>
>>
>>     <bean id="filterInvocationInterceptor"
>> class="org.acegisecurity.intercept.web.FilterSecurityInterceptor">
>>         <property name="authenticationManager"
>> ref="authenticationManager"/>
>>         <property name="accessDecisionManager"
>> ref="accessDecisionManager"/>
>>         <property name="objectDefinitionSource">
>>             <value>
>>                 PATTERN_TYPE_APACHE_ANT
>>                 /clickstreams.jsp*=admin
>>                 /flushCache.*=admin
>>                 /passwordHint.html*=ROLE_ANONYMOUS,admin,user
>>                 /reload.*=admin
>>                 /signup.html*=ROLE_ANONYMOUS,admin,user
>>                 /users.html*=admin
>>                 /**/*.html*=admin,user
>>             </value>
>>         </property>
>>     </bean>
>>
>>     <bean id="accessDecisionManager"
>> class="org.acegisecurity.vote.AffirmativeBased">
>>         <property name="allowIfAllAbstainDecisions" value="false"/>
>>         <property name="decisionVoters">
>>             <list>
>>                 <bean class="org.acegisecurity.vote.RoleVoter">
>>                     <property name="rolePrefix" value=""/>
>>                 </bean>
>>             </list>
>>         </property>
>>     </bean>
>>
>>     <bean id="rememberMeServices"
>> class="org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices">
>>         <property name="userDetailsService" ref="userDao"/>
>>         <property name="key" value="appfuseRocks"/>
>>         <property name="parameter" value="rememberMe"/>
>>     </bean>
>>
>>     <bean id="authenticationManager"
>> class="org.acegisecurity.providers.ProviderManager">
>>         <property name="providers">
>>             <list>
>>                 <ref local="ldapAuthProvider"/>
>>                 <ref local="anonymousAuthenticationProvider"/>
>>                 <ref local="rememberMeAuthenticationProvider"/>
>>             </list>
>>         </property>
>>     </bean>
>>
>>         <bean id="initialDirContextFactory"
>> class="org.acegisecurity.ldap.DefaultInitialDirContextFactory">
>>         <constructor-arg value="ldap://localhost"/>
>>         <property name="managerDn">
>>             <value>uid=admin,OU=system</value>
>>         </property>
>>         <property name="managerPassword">
>>             <value>secret</value>
>>         </property>
>>     </bean>
>>
>>         <bean id="userSearch"
>>            
>> class="org.acegisecurity.ldap.search.FilterBasedLdapUserSearch">
>>       <constructor-arg index="0">
>>         <value></value>
>>       </constructor-arg>
>>       <constructor-arg index="1">
>>         <value>(uid={0})</value>
>>       </constructor-arg>
>>       <constructor-arg index="2">
>>         <ref local="initialDirContextFactory" />
>>       </constructor-arg>
>>       <property name="searchSubtree">
>>         <value>true</value>
>>       </property>
>>     </bean>
>>
>>         <bean id="ldapAuthProvider"
>>            
>> class="org.acegisecurity.providers.ldap.LdapAuthenticationProvider">
>>       <constructor-arg>
>>         <bean
>> class="org.acegisecurity.providers.ldap.authenticator.BindAuthenticator">
>>            <constructor-arg><ref
>> local="initialDirContextFactory"/></constructor-arg>
>>            <property
>> name="userDnPatterns"><list><value>uid={0},ou=people,o=sevenSeas</value></list></property>
>>         </bean>
>>       </constructor-arg>
>>       <constructor-arg>
>>         <bean
>> class="org.acegisecurity.providers.ldap.populator.DefaultLdapAuthoritiesPopulator">
>>            <constructor-arg><ref
>> local="initialDirContextFactory"/></constructor-arg>
>>            <constructor-arg><value>ou=groups</value></constructor-arg>
>>            <property
>> name="groupRoleAttribute"><value>ou</value></property>
>>         </bean>
>>       </constructor-arg>
>>     </bean>
>>
>>
>>     <bean id="anonymousAuthenticationProvider"
>> class="org.acegisecurity.providers.anonymous.AnonymousAuthenticationProvider">
>>         <property name="key" value="anonymous"/>
>>     </bean>
>>
>>     <bean id="rememberMeAuthenticationProvider"
>> class="org.acegisecurity.providers.rememberme.RememberMeAuthenticationProvider">
>>         <property name="key" value="appfuseRocks"/>
>>     </bean>
>>
>>     <!-- This bean definition must be available to
>> ApplicationContext.getBean() so StartupListener
>>          can look for it and detect if password encryption is turned
>> on or not -->
>>     <bean id="passwordEncoder"
>> class="org.acegisecurity.providers.encoding.ShaPasswordEncoder"/>
>>
>>     <!-- This bean is optional; it isn't used by any other bean as it
>> only listens and logs -->
>>     <bean id="loggerListener"
>> class="org.acegisecurity.event.authentication.LoggerListener"/>
>>
>>     <!-- Apply method-level interceptor to userManager bean -->
>>     <aop:config>
>>         <aop:advisor id="managerSecurity"
>> advice-ref="methodSecurityInterceptor" pointcut="execution(*
>> org.appfuse.service.UserManager.*(..))"/>
>>     </aop:config>
>>
>>     <bean id="methodSecurityInterceptor"
>> class="org.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor">
>>         <property name="authenticationManager"
>> ref="authenticationManager"/>
>>         <property name="accessDecisionManager"
>> ref="accessDecisionManager"/>
>>         <property name="objectDefinitionSource">
>>              <value>
>>                  org.appfuse.service.UserManager.getUsers=admin
>>                  org.appfuse.service.UserManager.removeUser=admin
>>              </value>
>>         </property>
>>     </bean>
>>
>>     <!-- SSL Switching: to use this, configure it in the
>> filterChainProxy bean -->
>>     <bean id="channelProcessingFilter"
>> class="org.acegisecurity.securechannel.ChannelProcessingFilter">
>>         <property name="channelDecisionManager"
>> ref="channelDecisionManager"/>
>>         <property name="filterInvocationDefinitionSource">
>>             <value>
>>                 PATTERN_TYPE_APACHE_ANT
>>                 /admin/**=REQUIRES_SECURE_CHANNEL
>>                 /login*=REQUIRES_SECURE_CHANNEL
>>                 /j_security_check*=REQUIRES_SECURE_CHANNEL
>>                 /editProfile.html*=REQUIRES_SECURE_CHANNEL
>>                 /signup.html*=REQUIRES_SECURE_CHANNEL
>>                 /saveUser.html*=REQUIRES_SECURE_CHANNEL
>>                 /**=REQUIRES_INSECURE_CHANNEL
>>             </value>
>>         </property>
>>     </bean>
>>
>>     <bean id="channelDecisionManager"
>> class="org.acegisecurity.securechannel.ChannelDecisionManagerImpl">
>>         <property name="channelProcessors">
>>             <list>
>>                 <bean
>> class="org.acegisecurity.securechannel.SecureChannelProcessor"/>
>>                 <bean
>> class="org.acegisecurity.securechannel.InsecureChannelProcessor"/>
>>             </list>
>>         </property>
>>     </bean>
>> </beans>
>>
>>   //-------------------
>>
>>   If anyone could give me help ? ^^
>>
>>   Thanks very much.
>>
>> --
>> ChenRanHow
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
> 
> 
> -- 
> http://raibledesigns.com
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Ldap-error%2C-exception%3A-Bad-credentials-tp9900039s2369p18378771.html
Sent from the AppFuse - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to