symfony routing fosuserbundle

symfony - fosuserbundle No se encontrĂ³ ninguna ruta para "GET/login/"



routing (2)

En primer lugar ... su url de inicio de sesión debe ser (de acuerdo con su configuración actual) ser /login y no /login/ .

El url /login / (con una barra inclinada) no existe en su configuración de enrutamiento.

La forma correcta sería dejar que el enrutador genere la url usando el nombre de la ruta y no codificar esa URL /login en ninguna de sus plantillas.

{{ path(''fos_user_security_login'') }}

Además ... Lea mi respuesta aquí que explica la forma en que funciona <firewall>.login.check_path .

Cambie el proveedor de su servidor de fos_userbundle principal del user a fos_userbundle .

No hay una configuración de proveedor adicional en login_path .

firewalls: main: pattern: ^/ provider: fos_userbundle form_login: csrf_provider: form.csrf_provider login_path: fos_user_security_login check_path: fos_user_security_check default_target_path: app_website_index logout: path: fos_user_security_logout target: fos_user_security_login anonymous: true

Además, ha declarado la desconexión dos veces en su configuración de firewall (la segunda sobrescribe primero):

firewalls: # ... logout: true # ... logout: path: /logout target: /login

Recientemente actualicé Symfony2 usando compositor, y ahora no puedo iniciar sesión. Aquí están los archivos relevantes. Avíseme si se necesitan más datos.

app / config / routing.yml

app_admin: resource: "@AppAdminBundle/Resources/config/routing.yml" prefix: /admin host: dashboard.muchomonitor.com app_website: resource: "@AppWebsiteBundle/Resources/config/routing.yml" prefix: / host: www.muchomonitor.com app_monitor: resource: "@AppMonitorBundle/Resources/config/routing.yml" prefix: / host: dashboard.muchomonitor.com fos_user_security: resource: "@FOSUserBundle/Resources/config/routing/security.xml" host: dashboard.muchomonitor.com fos_user_security_reset: resource: "@FOSUserBundle/Resources/config/routing/resetting.xml" prefix: /login host: dashboard.muchomonitor.com

app / config / security.yml

security: encoders: FOS/UserBundle/Model/UserInterface: sha512 role_hierarchy: ROLE_ADMIN: ROLE_USER ROLE_SUPER_ADMIN: ROLE_ADMIN providers: fos_userbundle: id: fos_user.user_provider.username user: entity: { class: App/MonitorBundle/Entity/User, property: username } firewalls: main: pattern: ^/ provider: user form_login: provider: fos_userbundle csrf_provider: form.csrf_provider login_path: fos_user_security_login check_path: fos_user_security_check default_target_path: / logout: true anonymous: true logout: path: /logout target: /login access_control: - { path: ^/admin, role: ROLE_SUPER_ADMIN, host: dashboard.muchomonitor.com } - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY, host: dashboard.muchomonitor.com } - { path: ^/_, role: ROLE_ADMIN } # Development mode - { path: ^/public-status, role: IS_AUTHENTICATED_ANONYMOUSLY, host: dashboard.muchomonitor.com } - { path: ^/ipn, role: IS_AUTHENTICATED_ANONYMOUSLY, host: dashboard.muchomonitor.com } - { path: ^/invoice, role: IS_AUTHENTICATED_ANONYMOUSLY, host: dashboard.muchomonitor.com } - { path: ^/, role: ROLE_USER, host: dashboard.muchomonitor.com }

proveedor / friendsofsymfony / user-bundle / FOS / UserBundle / Resources / config / routing / security.xml

<?xml version="1.0" encoding="UTF-8" ?> <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd"> <route id="fos_user_security_login" pattern="/login"> <default key="_controller">FOSUserBundle:Security:login</default> </route> <route id="fos_user_security_check" pattern="/login_check"> <default key="_controller">FOSUserBundle:Security:check</default> <requirement key="_method">POST</requirement> </route> <route id="fos_user_security_logout" pattern="/logout"> <default key="_controller">FOSUserBundle:Security:logout</default> </route> </routes>

proveedor / friendsofsymfony / user-bundle / FOS / UserBundle / Resources / config / routing / resetting.xml

<?xml version="1.0" encoding="UTF-8" ?> <routes xmlns="http://symfony.com/schema/routing" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://symfony.com/schema/routing http://symfony.com/schema/routing/routing-1.0.xsd"> <route id="fos_user_resetting_request" pattern="/request"> <default key="_controller">FOSUserBundle:Resetting:request</default> <requirement key="_method">GET</requirement> </route> <route id="fos_user_resetting_send_email" pattern="/send-email"> <default key="_controller">FOSUserBundle:Resetting:sendEmail</default> <requirement key="_method">POST</requirement> </route> <route id="fos_user_resetting_check_email" pattern="/check-email"> <default key="_controller">FOSUserBundle:Resetting:checkEmail</default> <requirement key="_method">GET</requirement> </route> <route id="fos_user_resetting_reset" pattern="/reset/{token}"> <default key="_controller">FOSUserBundle:Resetting:reset</default> <requirement key="_method">GET|POST</requirement> </route> </routes>

ruta de la aplicación php / consola: depuración

Name Method Scheme Host Path app_admin_users ANY ANY dashboard.muchomonitor.com /admin app_admin_add_user ANY ANY dashboard.muchomonitor.com /admin app_admin_edit_user ANY ANY dashboard.muchomonitor.com /admin app_admin_delete_user ANY ANY dashboard.muchomonitor.com /admin/user/{id}/delete app_admin_login_user ANY ANY dashboard.muchomonitor.com /admin/user/{id}/login app_admin_plans ANY ANY dashboard.muchomonitor.com /admin/plans app_admin_delete_plan ANY ANY dashboard.muchomonitor.com /admin/plans/{id}/delete app_admin_edit_plan ANY ANY dashboard.muchomonitor.com /admin/plans/{id}/edit app_admin_add_plan ANY ANY dashboard.muchomonitor.com /admin/plans/add app_admin_invoices ANY ANY dashboard.muchomonitor.com /admin/invoices app_admin_delete_invoice ANY ANY dashboard.muchomonitor.com /admin/invoices/{id}/delete app_admin_edit_invoice ANY ANY dashboard.muchomonitor.com /admin/invoices/{id}/edit app_admin_add_invoice ANY ANY dashboard.muchomonitor.com /admin/invoices/add app_website_index ANY ANY www.muchomonitor.com / app_website_pricing ANY ANY www.muchomonitor.com /pricing app_website_privacy_policy ANY ANY www.muchomonitor.com /legal/privacypolicy app_website_signup ANY ANY www.muchomonitor.com /signup app_website_tos ANY ANY www.muchomonitor.com /legal/termsofservice app_website_contact_us ANY ANY www.muchomonitor.com /contactus app_monitor_dashboard ANY ANY dashboard.muchomonitor.com / app_monitor_dashboard_search ANY ANY dashboard.muchomonitor.com /dashboard/search/{filter} app_monitor_dashboard_toggle ANY ANY dashboard.muchomonitor.com /dashboard/toggle/{monitor} app_monitor_dashboard_delete ANY ANY dashboard.muchomonitor.com /dashboard/delete app_monitor_dashboard_test ANY ANY dashboard.muchomonitor.com /dashboard/test app_monitor_monitors ANY ANY dashboard.muchomonitor.com /monitors app_monitor_monitors_edit ANY ANY dashboard.muchomonitor.com /monitors/edit/{monitor} app_monitor_monitors_new ANY ANY dashboard.muchomonitor.com /monitors/new app_monitor_monitors_toggle ANY ANY dashboard.muchomonitor.com /monitors/toggle/{monitor} app_monitor_monitors_delete ANY ANY dashboard.muchomonitor.com /monitors/delete app_monitor_monitors_test ANY ANY dashboard.muchomonitor.com /monitors/test app_monitor_report ANY ANY dashboard.muchomonitor.com /report app_monitor_reports ANY ANY dashboard.muchomonitor.com /report app_monitor_report_specific ANY ANY dashboard.muchomonitor.com /report/{monitor} app_monitor_accounts ANY ANY dashboard.muchomonitor.com /accounts app_monitor_accounts_edit ANY ANY dashboard.muchomonitor.com /accounts/edit/{id} app_monitor_accounts_new ANY ANY dashboard.muchomonitor.com /accounts/new app_monitor_accounts_delete ANY ANY dashboard.muchomonitor.com /accounts/delete app_monitor_billing ANY ANY dashboard.muchomonitor.com /billing app_monitor_billing_all ANY ANY dashboard.muchomonitor.com /billing/all app_monitor_billing_invoice ANY ANY dashboard.muchomonitor.com /invoice/{key}/{id} app_monitor_notifications ANY ANY dashboard.muchomonitor.com /notifications app_monitor_ipn ANY ANY dashboard.muchomonitor.com /ipn app_monitor_ipn_stripe ANY ANY dashboard.muchomonitor.com /ipn-stripe fos_user_security_login ANY ANY dashboard.muchomonitor.com /login fos_user_security_check POST ANY dashboard.muchomonitor.com /login_check fos_user_security_logout ANY ANY dashboard.muchomonitor.com /logout fos_user_resetting_request GET ANY dashboard.muchomonitor.com /login/request fos_user_resetting_send_email POST ANY dashboard.muchomonitor.com /login/send-email fos_user_resetting_check_email GET ANY dashboard.muchomonitor.com /login/check-email fos_user_resetting_reset GET|POST ANY dashboard.muchomonitor.com /login/reset/{token}

ir a dashboard.muchomonitor.com/login muestra que no funciona, a pesar de lo que dice el comando anterior.

EDIT: he resuelto el problema. En routing.yml

fos_user_security_login: pattern: /login/ defaults: { _controller: FOSUserBundle:Security:login } fos_user_security_check: pattern: /login_check defaults: { _controller: FOSUserBundle:Security:check } fos_user_security_logout: pattern: /logout defaults: { _controller: FOSUserBundle:Security:logout }


Obtuve el problema similar, aunque lo resolví de forma diferente (usando Symfony 3.1, pero quizás sea el mismo trabajo).

Cuando ejecuté en la consola el comando bin/console debug:router , pude ver que las rutas para la autenticación proporcionada por el paquete de usuario de FoS eran correctas y se mostraban correctamente.

Ahora, el problema es que en la consola, el entorno predeterminado era DEV, mientras que desde el broser, era PROD.

Ejecuté el mismo comando anterior, pero explícitamente pasando el entorno, de la siguiente manera:

bin/console debug:router --env=dev , y obtuve los mismos resultados que antes.

Pero al ejecutar bin/console debug:router --env=prod , recibí un error en la consola, diciendo que no se pudo encontrar el archivo routing.yml .

Eso fue correcto Cambié la estructura del directorio de app/config y creé una carpeta para cada entorno, con los archivos relevantes en cada carpeta (configuración mucho más ordenada, en mi humilde opinión).

Pero parece que la ruta para routing.yml para el entorno PROD está codificada en algunos proveedores (por ejemplo, en vendor/sensio/generator-bundle/Command ), y debido a eso, la ubicación de ese archivo no puede modificarse.

Después de volver a organizar la carpeta de configuración, todo funcionó (pero tuve que borrar la caché del entorno de PROD, de la siguiente manera: bin/console cache:clear --no-warmup --env=prod .