PASSOS PARA AUTENTICAR JAMES COM O LDAP (ApacheDS para este caso)
Exclua o registro sobre o JPA em conf / usersrepository.xml do James
e adicione linhas abaixo, o ultimo ivew deve ser assim:
<xml>
<repository name="LocalUsers"
class="org.apache.james.user.ldap.ReadOnlyUsersLDAPRepository"
ldapHost="ldap://localhost:10389"
principal="uid=admin,ou=system" credentials="secret" userObjectClass="inetOrgPerson" userBase="ou=users,ou=system"
userIdAttribute="uid">
<UsersDomain>example.com</UsersDomain>
<LDAPRoot>dc=example,dc=com</LDAPRoot>
<MailAddressAttribute>mail</MailAddressAttribute>
<IdentityAttribute>uid</IdentityAttribute>
<AuthenticationType>simple</AuthenticationType>
<ManagePasswordAttribute>TRUE</ManagePasswordAttribute>
<PasswordAttribute>userPassword</PasswordAttribute>
</repository>
</xml>
Para explicar um pouco;
Na construção padrão do ApacheDS, há uma raiz com "dc = example, dc = com"
Por causa disso, as linhas devem ser adicionadas:
<UsersDomain>example.com</UsersDomain>
<LDAPRoot>dc=example,dc=com</LDAPRoot>
E um domínio chamado "example.com" deve ser adicionado ao James, ele salva as informações sobre os domínios ainda no JPA.
${james_root}/container-spring/target/appassembler/bin/james-cli.sh -h localhost adddomain
example.com
O admin do ApacheDS é admin na entrada "ou = system", e sua senha padrão é "secret", portanto, precisamos dos seguintes atributos:
principal="uid=admin,ou=system" credentials="secret"
No ApacheDS quando você quer adicionar uma entrada, ela requer classes de objeto, ela deve ser selecionada, "inetOrgPerson" e colocar mais algumas automaticamente, portanto, o atributo deve ser aaded na configuração:
userObjectClass="inetOrgPerson"
Os usuários estão na entrada "ou = users, ou = system", portanto, o atributo deve ser adicionado:
userBase="ou=users,ou=system"
Para o ApacheDS, userIdAttribute é "uid", portanto, é especificado:
userIdAttribute="uid"
No ApacheDS, novos usuários devem ser adicionados em "ou=users,ou=system"
, com os atributos "uid"
e "userPassword"
.
Além disso, ao adicionar um novo usuário, o DN deve conter "uid"
.
Ao consultar James usando, por exemplo, POP3,
USER [email protected]
PASS yourUsersPassword
deve ser usado.