禁用SonataUserBundle / FosuserBundle的路由

时间:2014-02-06 15:43:32

标签: symfony

我希望在我的sf2项目中自定义身份验证链接,我使用SonataAdmin SonataUserBundle(后端)和FosuserBundle + HWIOAuthBundle(facebook登录),我创建了一个accoutbundle包,这是我的控制器:

class ConnectController extends Controller
{

public function loginAction()
{

    //login code
    $request = $this->container->get('request');
    /* @var $request \Symfony\Component\HttpFoundation\Request */
    $session = $request->getSession();
    /* @var $session \Symfony\Component\HttpFoundation\Session\Session */

    // get the error if any (works with forward and redirect -- see below)
    if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
        $error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR);
    } elseif (null !== $session && $session->has(SecurityContext::AUTHENTICATION_ERROR)) {
        $error = $session->get(SecurityContext::AUTHENTICATION_ERROR);
        $session->remove(SecurityContext::AUTHENTICATION_ERROR);
    } else {
        $error = '';
    }
   .....

创建我自己的登录页面,这是我的app / config / routing.yml:

admin:
resource: '@SonataAdminBundle/Resources/config/routing/sonata_admin.xml'
prefix: /admin

_sonata_admin:
    resource: .
    type: sonata_admin
    prefix: /admin

sonata_user_security:
    resource: "@SonataUserBundle/Resources/config/routing/sonata_security_1.xml"

sonata_user_resetting:
    resource: "@SonataUserBundle/Resources/config/routing/sonata_resetting_1.xml"
    prefix: /resetting

sonata_user_profile:
    resource: "@SonataUserBundle/Resources/config/routing/sonata_profile_1.xml"
    prefix: /profile

sonata_user_register:
    resource: "@SonataUserBundle/Resources/config/routing/sonata_registration_1.xml"
    prefix: /register

sonata_user_change_password:
    resource: "@SonataUserBundle/Resources/config/routing/sonata_change_password_1.xml"
    prefix: /profile

sonata_user:
    resource: '@SonataUserBundle/Resources/config/routing/admin_security.xml'
    prefix: /admin

#HWIOAuthBundle routes
hwi_oauth_security:
    resource: "@HWIOAuthBundle/Resources/config/routing/login.xml"
    prefix: /login

hwi_oauth_connect:
    resource: "@HWIOAuthBundle/Resources/config/routing/connect.xml"
    prefix: /login

hwi_oauth_redirect:
    resource: "@HWIOAuthBundle/Resources/config/routing/redirect.xml"
    prefix: /login

facebook_login:
     pattern: /login/check-facebook

facebook_connect:
     pattern: /login/facebook

account_connect:
     pattern:  /connect
     defaults: { _controller: AcmeAccountBundle:Connect:login } //personalized link does not work

所以登录页面/app_dev.php/login的链接没有指向“account_connect”的问题,但他总是去声纳用户登录页面,所以我的问题是如何禁用sonatauserbundle计数而不改变任何东西在我的供应商文件夹

1 个答案:

答案 0 :(得分:1)

路由始终与表中的第一个条目匹配。我认为在vendor文件夹中更改路由的最佳方法是覆盖它的一部分。

见这里:http://symfony.com/doc/current/cookbook/bundles/override.html