neos / ldap
Ldap Authentication for Flow
Fund package maintenance!
shop.neos.io/neosfunding
Installs: 6 324
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 2
Forks: 13
Open Issues: 4
Type:neos-package
This package is auto-updated.
Last update: 2024-10-13 21:48:50 UTC
README
Example LoginController
LoginController.php:
<?php namespace My\Package\Controller; use Neos\Flow\Annotations as Flow; use Neos\Flow\Security\Authentication\Controller\AbstractAuthenticationController; /** * @Flow\Scope("singleton") */ class LoginController extends AbstractAuthenticationController { /** * Default action, displays the login screen * * @param string $username Optional: A username to prefill into the username field * @return void */ public function indexAction($username = NULL) { $this->view->assign('username', $username); } /** * @param \Neos\Flow\Mvc\ActionRequest $originalRequest * @return string|void */ public function onAuthenticationSuccess(\Neos\Flow\Mvc\ActionRequest $originalRequest = NULL) { $this->redirect('status'); } /** * Logs out a - possibly - currently logged in account. * * @return void */ public function logoutAction() { $this->authenticationManager->logout(); $this->addFlashMessage('Successfully logged out.'); $this->redirect('index'); } /** * @return void */ public function statusAction() { $this->view->assign('activeTokens', $this->securityContext->getAuthenticationTokens()); } }
Index.html:
<f:form action="authenticate" > <f:flashMessages class="errorMessages" /> <div> <label>User</label> <input type="text" name="__authentication[Neos][Flow][Security][Authentication][Token][UsernamePassword][username]" id="username" value="{username}" /> </div> <div> <label>Password</label> <input type="password" name="__authentication[Neos][Flow][Security][Authentication][Token][UsernamePassword][password]" id="password" /> </div> <f:form.submit value="Login" /> </div> </f:form>
Status.html:
Status: Logged in<br/> User: {activeTokens.LdapProvider.account.accountIdentifier}<br/> <f:link.action action="logout">Logout</f:link.action>
Make sure you configure the policies so that the login and logout actions are available for the user. For that use a Policy.yaml like:
resources: methods: My_Package_LoginController: 'method(My\Package\Controller\LoginController->(index|status|login|authenticate|logout)Action())' acls: Everybody: methods: My_Package_LoginController: GRANT
Configuration examples
You can find examples of a Settings.yaml
file for Ldap and Active Directory in the Configuration/ folder
of the Neos.Ldap package.