70 lines
1.8 KiB
PHP
70 lines
1.8 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Acme\DemoBundle\Controller;
|
||
|
|
||
|
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||
|
use Symfony\Component\Security\Core\SecurityContext;
|
||
|
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
|
||
|
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Template;
|
||
|
use JMS\SecurityExtraBundle\Annotation\Secure;
|
||
|
|
||
|
/**
|
||
|
* @Route("/demo/secured")
|
||
|
*/
|
||
|
class SecuredController extends Controller
|
||
|
{
|
||
|
/**
|
||
|
* @Route("/login", name="_demo_login")
|
||
|
* @Template()
|
||
|
*/
|
||
|
public function loginAction()
|
||
|
{
|
||
|
if ($this->get('request')->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
|
||
|
$error = $this->get('request')->attributes->get(SecurityContext::AUTHENTICATION_ERROR);
|
||
|
} else {
|
||
|
$error = $this->get('request')->getSession()->get(SecurityContext::AUTHENTICATION_ERROR);
|
||
|
}
|
||
|
|
||
|
return array(
|
||
|
'last_username' => $this->get('request')->getSession()->get(SecurityContext::LAST_USERNAME),
|
||
|
'error' => $error,
|
||
|
);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @Route("/login_check", name="_security_check")
|
||
|
*/
|
||
|
public function securityCheckAction()
|
||
|
{
|
||
|
// The security layer will intercept this request
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @Route("/logout", name="_demo_logout")
|
||
|
*/
|
||
|
public function logoutAction()
|
||
|
{
|
||
|
// The security layer will intercept this request
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @Route("/hello", defaults={"name"="World"}),
|
||
|
* @Route("/hello/{name}", name="_demo_secured_hello")
|
||
|
* @Template()
|
||
|
*/
|
||
|
public function helloAction($name)
|
||
|
{
|
||
|
return array('name' => $name);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @Route("/hello/admin/{name}", name="_demo_secured_hello_admin")
|
||
|
* @Secure(roles="ROLE_ADMIN")
|
||
|
* @Template()
|
||
|
*/
|
||
|
public function helloadminAction($name)
|
||
|
{
|
||
|
return array('name' => $name);
|
||
|
}
|
||
|
}
|