Add alert for DN logins that dont exist. Might be attempts to use the rootdn which is not supported.

Closes #345
This commit is contained in:
2025-06-19 10:30:16 +10:00
parent 96afbd8316
commit 8fd2a43ee2
4 changed files with 66 additions and 2 deletions

View File

@@ -8,7 +8,9 @@ use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Log;
use App\Exceptions\InvalidUsage;
use App\Http\Controllers\Controller;
use App\Ldap\Entry;
class LoginController extends Controller
{
@@ -51,6 +53,30 @@ class LoginController extends Controller
];
}
/**
* When attempt to login
*
* @param Request $request
* @return void
* @throws InvalidUsage
*/
public function attemptLogin(Request $request)
{
$attempt = $this->guard()->attempt(
$this->credentials($request), $request->boolean('remember')
);
// If the login failed, and PLA is set to use DN login, check if the entry exists.
// If the entry doesnt exist, it might be the root DN, which cannot be used to login
if ((! $attempt) && $request->dn && config('pla.login.alert_rootdn',TRUE)) {
$dn = config('server')->fetch($request->dn);
$o = new Entry;
if (! $dn && $o->getConnection()->getLdapConnection()->errNo() === 32)
abort(501,'Authentication set to DN, but the DN doesnt exist');
}
}
/**
* We need to delete our encrypted username/password cookies
*