cancel
Showing results for 
Search instead for 
Did you mean: 

Missing folders and files in 5.0a?

entropicsinkhol
Champ in-the-making
Champ in-the-making
I have a clean install of 5.0a on MS Server 2012.  I went to set up my ldap settings, but I am missing a bunch of folders, specifically repository.properties and the ldap subsystem folders under C:\Alfresco\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\subsystems\Authentication. 

I copied the same-named folders/files from the backup of a previously working 4.2e install to the same directories in 5.  They didn't work (could only log in as non-AD user account, like the builtin alfresco admin)

I also tried to copy/paste the combined settings of repository.properties and the ldap-ad-authentication.properties to the alfresco-global.properties file, to see if that worked. No luck.

Suggestions?

Here are my global properties




###############################
## Common Alfresco Properties #
###############################

dir.root=C:/Alfresco/alf_data

alfresco.context=alfresco
alfresco.host=127.0.0.1
alfresco.port=8081
alfresco.protocol=http

share.context=share
share.host=127.0.0.1
share.port=8081
share.protocol=http

### database connection properties ###
db.driver=org.postgresql.Driver
db.username=alfresco
db.password=Master123456
db.name=alfresco
db.url=jdbc:postgresql://localhost:5432/${db.name}

# The server mode. Set value here
# UNKNOWN | TEST | BACKUP | PRODUCTION
system.serverMode=UNKNOWN

### FTP Server Configuration ###
ftp.enabled=true
ftp.port=21

### RMI service ports ###
alfresco.rmi.services.port=50500
avm.rmi.service.port=0
avmsync.rmi.service.port=0
attribute.rmi.service.port=0
authentication.rmi.service.port=0
repo.rmi.service.port=0
action.rmi.service.port=0
deployment.rmi.service.port=0

### External executable locations ###
ooo.exe=C:/Alfresco/libreoffice/App/libreoffice/program/soffice.exe
ooo.enabled=true
ooo.port=8100
img.root=C:\\Alfresco\\imagemagick
img.coders=${img.root}\\modules\\coders
img.config=${img.root}\\config
img.gslib=${img.root}\\lib
img.exe=${img.root}\\convert.exe
swf.exe=C:/Alfresco/swftools/pdf2swf.exe
swf.languagedir=C:/Alfresco/swftools/japanese

jodconverter.enabled=false
jodconverter.officeHome=C:/Alfresco/libreoffice/App/libreoffice
jodconverter.portNumbers=8100

### Initial admin password ###
alfresco_user_store.adminpassword=ab9946b99230a077d10b37b94d91b1a6

### E-mail site invitation setting ###
notification.email.siteinvite=false

### License location ###
dir.license.external=C:/Alfresco

### Solr indexing ###
index.subsystem.name=solr
dir.keystore=${dir.root}/keystore
solr.port.ssl=8444

### BPM Engine ###
system.workflow.engine.jbpm.enabled=false

### Allow extended ResultSet processing
security.anyDenyDenies=false

### Authentication
authentication.chain=ldap-ad1:ldap-ad,alfrescoNtlm1:alfrescoNtlm

ldap.authentication.active=true
ldap.authentication.allowGuestLogin=false
ldap.authentication.userNameFormat=%s@wpshc
ldap.authentication.java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory
ldap.authentication.java.naming.provider.url=ldap://wpshc-dc02.wpshc:3268
ldap.authentication.java.naming.security.authentication=simple
ldap.authentication.escapeCommasInBind=false
ldap.authentication.escapeCommasInUid=false
ldap.authentication.defaultAdministratorUserNames=alfrescodocadmin,hgilchrist$,schindlert,rcole$,campeaus,dlachance$

ldap.synchronization.active=true
ldap.synchronization.java.naming.security.authentication=simple
ldap.synchronization.java.naming.security.principal=alfrescodocadmin@wpshc
ldap.synchronization.java.naming.security.credentials=Sc4n@lfr
ldap.synchronization.queryBatchSize=1000
ldap.synchronization.attributeBatchSize=1000
ldap.synchronization.groupQuery=(objectclass\=group)
ldap.synchronization.groupDifferentialQuery=(&(objectclass\=group)(!(whenChanged<\={0})))
ldap.synchronization.personQuery=(&(objectclass\=user)(userAccountControl\:1.2.840.113556.1.4.803\:\=512))
ldap.synchronization.personDifferentialQuery=(&(objectclass\=user)(userAccountControl\:1.2.840.113556.1.4.803\:\=512)(!(whenChanged<\={0})))
ldap.synchronization.groupSearchBase=CN=DocScanAlfresco,ou\=Domain\ Groups,dc=wpshc

# The user search base restricts the LDAP user query to a sub section of tree on the LDAP server.
#ldap.synchronization.userSearchBase=ou\=users,ou=\wpshc,dc=wpshc
ldap.synchronization.userSearchBase=CN=DocScanAlfresco,OU=Domain Groups,DC=wpshc
ldap.synchronization.modifyTimestampAttributeName=whenChanged
ldap.synchronization.timestampFormat=yyyyMMddHHmmss'.0Z'
ldap.synchronization.userIdAttributeName=sAMAccountName
ldap.synchronization.userFirstNameAttributeName=givenName
ldap.synchronization.userLastNameAttributeName=sn
ldap.synchronization.userEmailAttributeName=mail
ldap.synchronization.userOrganizationalIdAttributeName=company
ldap.synchronization.defaultHomeFolderProvider=largeHomeFolderProvider
ldap.synchronization.groupIdAttributeName=cn
ldap.synchronization.groupDisplayNameAttributeName=displayName
ldap.synchronization.groupType=group
ldap.synchronization.personType=user
ldap.synchronization.groupMemberAttributeName=member
ldap.synchronization.enableProgressEstimation=true
ldap.authentication.java.naming.read.timeout=0
 


#synchronization.synchronizeChangesOnly=true
#synchronization.import.cron=55 10 * * *
cifs.enabled=false    

15 REPLIES 15

mrogers
Star Contributor
Star Contributor
Your alfresco-global.properties  looks o.k.   However you should not have configured alfresco via hacking files under web-inf   any configuration should be in the shared folder.  You need to configure alfresco correctly.

So what else have you configured?

Right now, I have only done two things beyond the initial install (port numbers are all +1 the original numbers, because another service uses 8080 in case that is somehow important). 

1) Copy/pasted my old repository.properties file and the ldap and ldap-ad folders and their contents from the old install to the new install.  These files and folders did not exist before I copied them over (do they get created automatically or are we supposed to make them ourselves?) This worked in my old install and, at the time, I wasn't able to get it to work any other way (it was set up a while ago, so I can't remember why) 

2) When that didn't work I removed those files and tried to configure it using the alfresco-global.properties file.  I'm wondering whether that file is looking for other folders/files that are missing.  Documentation was unclear on whether there were dependencies

Restarted service in between any changes.

Also, I have reinstalled Alfresco multiple times just to rule out something I missed during installation. 

cibex
Champ in-the-making
Champ in-the-making
@mrogers: can you also answer the essential question, please:
Where are all the default configuration files for ldap?
In <tomcat>/webapps/alfresco/WEB-INF/classes/alfresco/subsystems/Authentication I can only find:
alfrescoNtlm
external
kerberos
passthru
Folders for ldap are missing.

Documentation in 5.0.x is still the same, so this behavior is not clear to me.

Configuration via alfresco-global.properties is working fine, via subsystems in <tomcat>/shared/classes/alfresco/subsystems/Authentication/ldap-ad/ldap-ad1 not.

What is your recommendation how to configure two subsystems for AD in 5.0.x?


kr
Josef

entropicsinkhol
Champ in-the-making
Champ in-the-making
Well, it works.  The Alfresco service was not fully stopping/restarting I guess, because this morning I just stopped then restarted it and it worked. 

lw3234
Champ in-the-making
Champ in-the-making
Hello,

I got the same issue than entropicsinkhole.

I recently did a clean install of Alfresco 5.0a (Community Edition) on a Windows Server 2008 R2 OS and no ldap related folders nor the repository.properties are present there. Since it is a test environment I have no previous folders to copy and fill in like entropicsinkhole.

Is there any specific reason why the folders are not there ? How to configure ldap/active directory now ?

Cheers,
Ludwig

Under C:\Alfresco\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\subsystems\Authentication. there is

maccer
Champ in-the-making
Champ in-the-making
i have 2 issues, 1. im at nube at this, 2. I have no ldap folders either. I'm using Alfresco-5.0.c(Community) on linux. has anyone got a any ideas. is it something i left out during install??? dependencies??? i was following this guide http://docs.alfresco.com/5.0/tasks/auth-example-oneldap-ad.html it is for a connection for 1 Ldap, I  went looking for why this wasnt working. I saw this guide http://docs.alfresco.com/5.0/tasks/auth-example-twoldap-ad.html about 2 ldap connections  and saw that it copys a properties file for ldap into 2 new folders for ldap connections, But the folders with the properties file are missing. Am i right to think that these folders are used by default in the first guide i was using. Help
Cheers 

eswbitto
Confirmed Champ
Confirmed Champ
@Maccer

What are you trying to accomplish?

maccer
Champ in-the-making
Champ in-the-making
Im just trying to connect alfresco to  active directory. A lot of stuff i come across when searching the intertubes keep talking about the \ldap-ad\ folder in WEB-INF\classes\alfresco\subsystems\
Authentication\ for connecting to 2 active directorys, i wanted to have a look at it to compare settings because im only connecting to 1, but its missing. so i presumed i just used the alfresco-global.properties to add the ldap settings but that didnt work when i checked the alfresco.log i dont see anything in it got to do with ldap?? Cheers for reply

eswbitto
Confirmed Champ
Confirmed Champ
@maccer,

Sorry I have been on holiday. So here is the layout of what you should have in your alfresco-global.properties file.


### Authentication Chain for LDAP ###
authentication.chain=ldap-ad1:ldap-ad,alfrescoNtlm1:alfrescoNtlm


### Active Directory Config ###

# This flag enables use of this LDAP subsystem for authentication. It may be
# that this subsytem should only be used for synchronization, in which case
# this flag should be set to false.
ldap.authentication.active=true

#
# This properties file brings together the common options for LDAP authentication rather than editing the bean definitions
#
ldap.authentication.allowGuestLogin=true

# How to map the user id entered by the user to taht passed through to LDAP
# In Active Directory, this can either be the user principal name (UPN) or DN.
# UPNs are in the form <sAMAccountName>@domain and are held in the userPrincipalName attribute of a user
ldap.authentication.userNameFormat=%s@domain

# The LDAP context factory to use
ldap.authentication.java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory

# The URL to connect to the LDAP server
ldap.authentication.java.naming.provider.url=ldap://domaincontroller.company.com:389

# The authentication mechanism to use for password validation
ldap.authentication.java.naming.security.authentication=simple

# Escape commas entered by the user at bind time
# Useful when using simple authentication and the CN is part of the DN and contains commas
ldap.authentication.escapeCommasInBind=false

# Escape commas entered by the user when setting the authenticated user
# Useful when using simple authentication and the CN is part of the DN and contains commas, and the escaped \, is
# pulled in as part of an LDAP sync
# If this option is set to true it will break the default home folder provider as space names can not contain \
ldap.authentication.escapeCommasInUid=false

# Comma separated list of user names who should be considered administrators by default
ldap.authentication.defaultAdministratorUserNames=Administrator

# This flag enables use of this LDAP subsystem for user and group
# synchronization. It may be that this subsytem should only be used for
# authentication, in which case this flag should be set to false.
ldap.synchronization.active=true

# The authentication mechanism to use for synchronization
ldap.synchronization.java.naming.security.authentication=simple

# The default principal to bind with (only used for LDAP sync). This should be a UPN or DN
ldap.synchronization.java.naming.security.principal=alfresco@domain

# The password for the default principal (only used for LDAP sync)
ldap.synchronization.java.naming.security.credentials=password

# If positive, this property indicates that RFC 2696 paged results should be
# used to split query results into batches of the specified size. This
# overcomes any size limits imposed by the LDAP server.
ldap.synchronization.queryBatchSize=1000

# If positive, this property indicates that range retrieval should be used to fetch
# multi-valued attributes (such as member) in batches of the specified size.
# Overcomes any size limits imposed by Active Directory.       
ldap.synchronization.attributeBatchSize=1000

# The query to select all objects that represent the groups to import.
ldap.synchronization.groupQuery=(objectclass\=group)

# The query to select objects that represent the groups to import that have changed since a certain time.
ldap.synchronization.groupDifferentialQuery=(&(objectclass\=group)(!(whenChanged<\={0})))

# The query to select all objects that represent the users to import.
ldap.synchronization.personQuery=(&(objectclass\=user)(userAccountControl\:1.2.840.113556.1.4.803\:\=512))

# The query to select objects that represent the users to import that have changed since a certain time.
ldap.synchronization.personDifferentialQuery=(&(objectclass\=user)(userAccountControl\:1.2.840.113556.1.4.803\:\=512)(!(whenChanged<\={0})))

# The group search base restricts the LDAP group query to a sub section of tree on the LDAP server.
ldap.synchronization.groupSearchBase=ou\=Security Groups,ou\=Alfresco,dc=domain

# The user search base restricts the LDAP user query to a sub section of tree on the LDAP server.
ldap.synchronization.userSearchBase=ou\=User Accounts,ou=\Alfresco,dc=domain

# The name of the operational attribute recording the last update time for a group or user.
ldap.synchronization.modifyTimestampAttributeName=whenChanged

# The timestamp format. Unfortunately, this varies between directory servers.
ldap.synchronization.timestampFormat=yyyyMMddHHmmss'.0Z'

# The attribute name on people objects found in LDAP to use as the uid in Alfresco
ldap.synchronization.userIdAttributeName=sAMAccountName

# The attribute on person objects in LDAP to map to the first name property in Alfresco
ldap.synchronization.userFirstNameAttributeName=givenName

# The attribute on person objects in LDAP to map to the last name property in Alfresco
ldap.synchronization.userLastNameAttributeName=sn

# The attribute on person objects in LDAP to map to the email property in Alfresco
ldap.synchronization.userEmailAttributeName=mail

# The attribute on person objects in LDAP to map to the organizational id  property in Alfresco
ldap.synchronization.userOrganizationalIdAttributeName=company

# The default home folder provider to use for people created via LDAP import
ldap.synchronization.defaultHomeFolderProvider=largeHomeFolderProvider

# The attribute on LDAP group objects to map to the authority name property in Alfresco
ldap.synchronization.groupIdAttributeName=cn

# The attribute on LDAP group objects to map to the authority display name property in Alfresco
ldap.synchronization.groupDisplayNameAttributeName=displayName

# The group type in LDAP
ldap.synchronization.groupType=group

# The person type in LDAP
ldap.synchronization.personType=user

# The attribute in LDAP on group objects that defines the DN for its members
ldap.synchronization.groupMemberAttributeName=member

# If true progress estimation is enabled. When enabled, the user query has to be run twice in order to count entries.
ldap.synchronization.enableProgressEstimation=true

# Requests timeout, in miliseconds, use 0 for none (default)
ldap.authentication.java.naming.read.timeout=0


You will need to take a look at each line and determine what needs to be changed. This is the generic setup. Once you have it all configured then you start or restart your alfresco service and then you should be able to see logs pertaining to this subsystem. It will tell you whether or not the sync was successful. That is where you can troubleshoot.