Development

#3527 (sfForwardException when using "available: off" and "is_secure: on")

You must first sign up to be able to contribute.

Ticket #3527 (new defect)

Opened 2 years ago

sfForwardException when using "available: off" and "is_secure: on"

Reported by: Shinkan Assigned to: fabien
Priority: major Milestone:
Component: controller Version: 1.0.15
Keywords: routing available filter authentication is_secure Cc:
Qualification: Unreviewed

Description

Trying to access my prod front controller, I get an error 500. So investigating, I've found on log :

May 13 15:43:24 symfony [info] {sfContext} initialization
May 13 15:43:24 symfony [info] {sfController} initialization
May 13 15:43:24 symfony [info] {sfRouting} match route [homepage] "/"
May 13 15:43:24 symfony [info] {sfRequest} request parameters array (  'module' => 'main',  'action' => 'index',)
May 13 15:43:24 symfony [info] {sfRouting} connect "/sf_cache_partial/:module/:action/:sf_cache_key"
May 13 15:43:24 symfony [info] {sfController} dispatch request
May 13 15:43:24 symfony [info] {sfFilter} executing filter "sfRenderingFilter"
May 13 15:43:24 symfony [info] {sfFilter} executing filter "sfBasicSecurityFilter"
May 13 15:43:24 symfony [info] {sfFilter} executing filter "sfRenderingFilter"
May 13 15:43:24 symfony [info] {sfFilter} executing filter "sfBasicSecurityFilter"
May 13 15:43:24 symfony [info] {sfFilter} executing filter "sfRenderingFilter"
May 13 15:43:24 symfony [info] {sfFilter} executing filter "sfBasicSecurityFilter"
May 13 15:43:24 symfony [info] {sfFilter} executing filter "sfRenderingFilter"
May 13 15:43:24 symfony [info] {sfFilter} executing filter "sfBasicSecurityFilter"
May 13 15:43:24 symfony [info] {sfFilter} executing filter "sfRenderingFilter"
May 13 15:43:24 symfony [info] {sfFilter} executing filter "sfBasicSecurityFilter"
May 13 15:43:24 symfony [err] {sfForwardException} Too many forwards have been detected for this request (> 5)

Here is my settings.yml (app scope):

prod:
  .settings:
    available: 		    off
    no_script_name:         on
    cache: 		    on
    etag: 		    on

dev:
  .settings:
    available: 		    on
    error_reporting:        <?php echo (E_ALL | E_STRICT)."\n" ?>
    web_debug:              on
    cache:                  off
    no_script_name:         off
    etag:                   off
   
all:
  .settings:
    suffix: 				.html
    escaping_strategy:      both
    escaping_method:        ESC_ENTITIES
    use_flash:              off
    i18n:                   off
    compressed:             on
    validation_error_prefix: ' &darr;&nbsp;'
    validation_error_suffix: '&nbsp;'
    timeout: 				600
  .actions:
    default_module: 		main
    default_action: 		default
    error_404_module: 		main
    error_404_action: 		error404
    login_module: 			main
    login_action: 			login
    secure_module: 			main
    secure_action: 			unauthorized
    module_disabled_module: main
    module_disabled_action: disabled
    unavailable_module: 	main
    unavailable_action: 	unavailable

Here is my security.yml (app scope):

default:
  is_secure: on
  credentials: admin

Here is my routing.yml (app scope):

login:
  url:   /login
  param: { module: main, action: login }
  
logout:
  url:   /logout
  param: { module: main, action: logout }
  
admin:
  url:   /welcometothecontrocenterlord
  param: { module: main, action: admin }

# [... truncated]

# default rules
homepage:
  url:   /
  param: { module: main, action: index }

default_index:
  url:   /:module
  param: { action: index }

default:
  url:   /:module/:action/*

To recap, when enabled, my front controller goes to main/index. Authentication is necessary as all my app "is_secure: on". When application is disabled ("available: off" in app scope's setting.yml), I get a 500. When application is enabled, everything is OK, and I get this log :

May 13 15:48:01 symfony [info] {sfContext} initialization
May 13 15:48:01 symfony [info] {sfController} initialization
May 13 15:48:01 symfony [info] {sfRouting} match route [homepage] "/"
May 13 15:48:01 symfony [info] {sfRequest} request parameters array (  'module' => 'main',  'action' => 'index',)
May 13 15:48:01 symfony [info] {sfRouting} connect "/sf_cache_partial/:module/:action/:sf_cache_key"
May 13 15:48:01 symfony [info] {sfController} dispatch request
May 13 15:48:01 symfony [info] {sfFilter} executing filter "sfRenderingFilter"
May 13 15:48:01 symfony [info] {sfFilter} executing filter "sfBasicSecurityFilter"
May 13 15:48:01 symfony [info] {sfFilter} executing filter "sfRenderingFilter"
May 13 15:48:01 symfony [info] {sfFilter} executing filter "sfCacheFilter"
May 13 15:48:01 symfony [info] {sfFilter} executing filter "sfCommonFilter"
May 13 15:48:01 symfony [info] {sfFilter} executing filter "sfExecutionFilter"
May 13 15:48:01 symfony [info] {sfValidator} validation execution
May 13 15:48:01 symfony [info] {sfAction} call "mainActions->executeLogin()"
May 13 15:48:01 symfony [info] {sfView} initialize view for "main/login"
May 13 15:48:01 symfony [info] {sfView} render "/home/shinkan/paradise/paradise-pa/apps/portal/modules/main/templates/loginSuccess.php"
May 13 15:48:01 symfony [info] {sfView} decorate content with "/home/shinkan/paradise/paradise-pa/apps/portal/templates/layout.php"
May 13 15:48:01 symfony [info] {sfView} render "/home/shinkan/paradise/paradise-pa/apps/portal/templates/layout.php"
May 13 15:48:01 symfony [info] {sfFilter} executing filter "sfFillInFormFilter"
May 13 15:48:01 symfony [info] {sfFilter} render to client
May 13 15:48:01 symfony [info] {sfResponse} send status "HTTP/1.0 200 OK"
May 13 15:48:01 symfony [info] {sfResponse} send header "Content-Type": "text/html; charset=utf-8"
May 13 15:48:01 symfony [info] {sfResponse} send header "Etag": ""801bfb09aec3283e721187a96145aa63""
May 13 15:48:01 symfony [info] {sfResponse} send content (2294 o)

The Sensio Labs Network

Since 1998, Sensio Labs has been promoting the Open-Source software movement by providing quality web application development, training, consulting.
Sensio Labs also supports several large Open-Source projects.