TokenMismatchException with LDAP #471

Closed
opened 2026-02-04 20:18:17 +03:00 by OVERLORD · 1 comment
Owner

Originally created by @joshuaavalon on GitHub (Oct 15, 2017).

For Bug Reports

  • BookStack Version (Found in settings, Please don't put 'latest'): v0.18.3
  • PHP Version: PHP 7.1.10
  • MySQL Version: 10.1.28-MariaDB-1~xenial
Expected Behavior

Success Login

Current Behavior

TokenMismatchException

Steps to Reproduce

Using Synology Directory Server with a user
Name: test
Email: test@test.com
Base DN: dc=ldap,dc=example,dc=com
Bind DN: uid=root,cn=users,dc=ldap,dc=example,dc=com

BookStack running in Docker on unRaid

docker run -d 
	--name="bookstack" 
	--net="bridge" 
	-e TZ="Asia/Shanghai" 
	-e HOST_OS="unRAID"
	-e "DB_HOST"="mariadb:3306" 
	-e "DB_DATABASE"="bookstack" 
	-e "DB_USERNAME"="bookstack"
	-e "DB_PASSWORD"="dbpassword"
	-e "AUTH_METHOD"="ldap"
	-e "LDAP_SERVER"="192.168.1.227:389"
	-e "LDAP_BASE_DN"="dc=ldap,dc=example,dc=com"
	-e "LDAP_DN"="uid=root,cn=users,dc=ldap,dc=example,dc=com"
	-e "LDAP_PASS"="bindpassword"
	-e "LDAP_VERSION"="3"
	-e "LDAP_USER_FILTER"="(&(uid=${user}))"
	-e "APP_DEBUG"="true"
	-p 8087:80/tcp
	-v "/mnt/user/temp/bookstack/storage":"/var/www/bookstack/public/storage":rw
	-v "/mnt/user/temp/bookstack/uploads":"/var/www/bookstack/public/uploads":rw
	--net=database
solidnerd/bookstack

Login with

None of the above works

Error log

TokenMismatchException in VerifyCsrfToken.php line 68:
in VerifyCsrfToken.php line 68
at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartSession.php line 64
at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59
at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in Router.php line 561
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 520
at Router->dispatchToRoute(object(Request)) in Router.php line 498
at Router->dispatch(object(Request)) in Kernel.php line 174
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 30
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Debugbar.php line 51
at Debugbar->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in TransformsRequest.php line 30
at TransformsRequest->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ValidatePostSize.php line 27
at ValidatePostSize->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 46
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 148
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in Kernel.php line 149
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 116
at Kernel->handle(object(Request)) in index.php line 53
Originally created by @joshuaavalon on GitHub (Oct 15, 2017). ### For Bug Reports * BookStack Version *(Found in settings, Please don't put 'latest')*: v0.18.3 * PHP Version: PHP 7.1.10 * MySQL Version: 10.1.28-MariaDB-1~xenial ##### Expected Behavior Success Login ##### Current Behavior TokenMismatchException ##### Steps to Reproduce Using Synology Directory Server with a user Name: test Email: test@test.com Base DN: dc=ldap,dc=example,dc=com Bind DN: uid=root,cn=users,dc=ldap,dc=example,dc=com BookStack running in Docker on unRaid ``` docker run -d --name="bookstack" --net="bridge" -e TZ="Asia/Shanghai" -e HOST_OS="unRAID" -e "DB_HOST"="mariadb:3306" -e "DB_DATABASE"="bookstack" -e "DB_USERNAME"="bookstack" -e "DB_PASSWORD"="dbpassword" -e "AUTH_METHOD"="ldap" -e "LDAP_SERVER"="192.168.1.227:389" -e "LDAP_BASE_DN"="dc=ldap,dc=example,dc=com" -e "LDAP_DN"="uid=root,cn=users,dc=ldap,dc=example,dc=com" -e "LDAP_PASS"="bindpassword" -e "LDAP_VERSION"="3" -e "LDAP_USER_FILTER"="(&(uid=${user}))" -e "APP_DEBUG"="true" -p 8087:80/tcp -v "/mnt/user/temp/bookstack/storage":"/var/www/bookstack/public/storage":rw -v "/mnt/user/temp/bookstack/uploads":"/var/www/bookstack/public/uploads":rw --net=database solidnerd/bookstack ``` Login with * test * test@test.com * test@example.com * test@ldap.example.com None of the above works **Error log** ``` TokenMismatchException in VerifyCsrfToken.php line 68: in VerifyCsrfToken.php line 68 at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 148 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53 at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49 at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 148 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53 at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartSession.php line 64 at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 148 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53 at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37 at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 148 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53 at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59 at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 148 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53 at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 102 at Pipeline->then(object(Closure)) in Router.php line 561 at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 520 at Router->dispatchToRoute(object(Request)) in Router.php line 498 at Router->dispatch(object(Request)) in Kernel.php line 174 at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 30 at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Debugbar.php line 51 at Debugbar->handle(object(Request), object(Closure)) in Pipeline.php line 148 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53 at Pipeline->Illuminate\Routing\{closure}(object(Request)) in TransformsRequest.php line 30 at TransformsRequest->handle(object(Request), object(Closure)) in Pipeline.php line 148 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53 at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ValidatePostSize.php line 27 at ValidatePostSize->handle(object(Request), object(Closure)) in Pipeline.php line 148 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53 at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 46 at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 148 at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53 at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 102 at Pipeline->then(object(Closure)) in Kernel.php line 149 at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 116 at Kernel->handle(object(Request)) in index.php line 53 ```
Author
Owner

@joshuaavalon commented on GitHub (Oct 16, 2017):

Ok, I resolved it myself. TokenMismatchException will be thrown if you stay on the login page but restart the docker.

LDAP unable to bind is because you have to escape $ witih \$

@joshuaavalon commented on GitHub (Oct 16, 2017): Ok, I resolved it myself. `TokenMismatchException` will be thrown if you stay on the login page but restart the docker. LDAP unable to bind is because you have to escape `$` witih `\$`
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/BookStack#471