Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Login fails with pdo session storage on PostgreSql #2067

Closed
@ARS81

Description

@ARS81

Take an empty project.
Configure session handling to use pdo with postgresql.
Users coming from in_memory provider.
Login is handled by form_login.

Result:
When login form (/login) comes in for the first time, 1 session is created for the user.
After successful authentication, another session row is created in the session table and/but logged user is still anonymous.

With default (native) session handling everything is working fine.
With mysql the user is logged in, but gets a new session, instead of continuing with the existing one (is it normal?)

So the problem is that session handling with postgre it's unable to get the user logged in.
(the results were the same with using FOSUserBundle)

Symfony: 2.0.1
PHP: 5.3.3-7+squeeze3
Postgre: PostgreSQL 8.4.8
System: Linux dev 2.6.32-5-686 #1 SMP Mon Jun 13 04:13:06 UTC 2011 i686

# app/config/config.yml
imports:
    - { resource: parameters.ini }
    - { resource: security.yml }

framework:
    #esi:             ~
    translator:      { fallback: en }
    secret:          %secret%
    charset:         UTF-8
    router:          { resource: "%kernel.root_dir%/config/routing.yml" }
    form:            true
    csrf_protection: true
    validation:      { enable_annotations: true }
    templating:      { engines: ['twig'] } #assets_version: SomeVersionScheme
    session:
        storage_id:     session.storage.pdo

#Twig Configuration
twig:
    debug:            %kernel.debug%
    strict_variables: %kernel.debug%

#Assetic Configuration
assetic:
    debug:          %kernel.debug%
    use_controller: false
    filters:
        cssrewrite: ~
        # closure:
        #     jar: %kernel.root_dir%/java/compiler.jar
        # yui_css:
        #     jar: %kernel.root_dir%/java/yuicompressor-2.4.2.jar

#Doctrine Configuration
doctrine:
    dbal:
        driver:   %database_driver%
        host:     %database_host%
        port:     %database_port%
        dbname:   %database_name%
        user:     %database_user%
        password: %database_password%
        charset:  UTF8

    orm:
        auto_generate_proxy_classes: %kernel.debug%
        auto_mapping: true

#Swiftmailer Configuration
swiftmailer:
    transport: %mailer_transport%
    host:      %mailer_host%
    username:  %mailer_user%
    password:  %mailer_password%

jms_security_extra:
    secure_controllers:  true
    secure_all_services: false

parameters:
    pdo.db_options:
        db_table:    session
        db_id_col:   sess_id
        db_data_col: sess_data
        db_time_col: sess_time

services:
    pdo:
        class:    PDO
        arguments:
            dsn:      "pgsql:dbname=testdb"
            user:     testuser
            password: testpwd

    session.storage.pdo:
        class:     Symfony\Component\HttpFoundation\SessionStorage\PdoSessionStorage
        arguments: [@pdo, %session.storage.options%, %pdo.db_options%]
# app/config/security.yml
security:
    encoders:
        Symfony\Component\Security\Core\User\User: plaintext

    providers:
        in_memory:
            users:
                mtamas:  { password: akarmi, roles: 'ROLE_USER' }
                admin: { password: admin, roles: 'ROLE_ADMIN' }

    firewalls:
        main:
            pattern:    ^/
            anonymous:  true
            form_login:
                check_path: /checklogin
                login_path: /login
                username_parameter: username
                password_parameter: password
                post_only: true
                always_use_default_target_path: true
                default_target_path: /teszt
            logout:
                path:   /logout
                target: /

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions