james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tellier Benoit (JIRA)" <server-...@james.apache.org>
Subject [jira] [Resolved] (JAMES-2043) LDAP + UserProvisionning filter raises UsersRepositoryException: This user-repository is read-only
Date Tue, 06 Jun 2017 08:42:18 GMT

     [ https://issues.apache.org/jira/browse/JAMES-2043?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Tellier Benoit resolved JAMES-2043.
-----------------------------------
    Resolution: Fixed

https://github.com/linagora/james-project/pull/823 solved the issue by adding additional checks
on the usersRepository before trying to add users.

> LDAP + UserProvisionning filter raises UsersRepositoryException: This user-repository
is read-only
> --------------------------------------------------------------------------------------------------
>
>                 Key: JAMES-2043
>                 URL: https://issues.apache.org/jira/browse/JAMES-2043
>             Project: James Server
>          Issue Type: Bug
>          Components: JMAP
>            Reporter: Tellier Benoit
>            Assignee: Antoine Duprat
>
> Full stack trace here:
> {code:java}
> org.apache.james.user.api.UsersRepositoryException: This user-repository is read-only.
Modifications are not permitted.
>         at org.apache.james.user.ldap.ReadOnlyUsersLDAPRepository.addUser(ReadOnlyUsersLDAPRepository.java:778)
>         at org.apache.james.jmap.UserProvisioningFilter.createUser(UserProvisioningFilter.java:104)
>         at org.apache.james.jmap.UserProvisioningFilter.createAccount(UserProvisioningFilter.java:100)
>         at org.apache.james.jmap.UserProvisioningFilter.createAccountIfNeeded(UserProvisioningFilter.java:76)
>         ... 23 common frames omitted
> Wrapped by: java.lang.RuntimeException: org.apache.james.user.api.UsersRepositoryException:
This user-repository is read-only. Modifications are not permitted.
>         at com.google.common.base.Throwables.propagate(Throwables.java:160)
>         at org.apache.james.jmap.UserProvisioningFilter.createAccountIfNeeded(UserProvisioningFilter.java:81)
>         at java.util.Optional.ifPresent(Optional.java:159)
>         at org.apache.james.jmap.UserProvisioningFilter.doFilter(UserProvisioningFilter.java:66)
>         at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)
>         at org.apache.james.jmap.AuthenticationFilter.doFilter(AuthenticationFilter.java:74)
>         at org.apache.james.jmap.BypassAuthOnRequestMethod.tryAuth(BypassAuthOnRequestMethod.java:115)
>         at org.apache.james.jmap.BypassAuthOnRequestMethod.doFilter(BypassAuthOnRequestMethod.java:97)
>         at org.apache.james.jmap.AllowAllCrossOriginRequests.doFilter(AllowAllCrossOriginRequests.java:46)
>         at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1668)
>         at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:581)
>         at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:513)
>         at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
>         at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119)
>         at org.eclipse.jetty.server.Server.handle(Server.java:517)
>         at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:306)
>         at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242)
>         at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261)
>         at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
>         at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75)
>         at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213)
>         at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654)
>         at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572)
>         at java.lang.Thread.run(Thread.java:745)
> {code}
> We should then remove UserProvisionning filter when using LDAP.
> Moreover by doing this, we will:
>  - Improve a bit performance by avoiding a read to the LDAP on every JMAP request
>  - Theorically we can have JMAP still up and running when LDAP is dead.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Mime
View raw message