Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Codeception/Rest, Codeception/Symfony] Security token not stored in token storage #80

Open
amigian74 opened this issue Feb 7, 2022 · 2 comments

Comments

@amigian74
Copy link

amigian74 commented Feb 7, 2022

What are you trying to achieve?

I'm trying to test my API interface in Symfony. This API uses JWT-Authentication. So far retrieving the token and calling the controller works.

What do you get instead?

Unfortunately the token is not stored in the token storage and so my voters dont get the right user (they get a Null-Token instead).

Provide test source code if related

$I->amBearerAuthenticated($token);
$I->sendGet('/api/resource');
$I->seeResponseCodeIs(\Codeception\Util\HttpCode::OK);
$I->seeResponseIsJson();

Details

  • Codeception version: 4.1.29
  • PHP Version: 7.4
  • Operating System: Windows/Debian
  • Installation type: Composer
  • List of installed packages (composer show)
    behat/gherkin v4.9.0 Gherkin DSL parser for PHP
    codeception/codeception 4.1.29 BDD-style testing framework
    codeception/lib-asserts 2.0.0 Assertion methods used by Codeception core and Asserts module
    codeception/lib-innerbrowser 2.0.2 Parent library for all Codeception framework modules and PhpBrowser
    codeception/module-asserts 2.0.1 Codeception module containing various assertions
    codeception/module-db 2.0.0 DB module for Codeception
    codeception/module-doctrine2 2.0.1 Doctrine2 module for Codeception
    codeception/module-rest 2.0.1 REST module for Codeception
    codeception/module-symfony 2.1.1 Codeception module for Symfony framework
    codeception/phpunit-wrapper 9.0.7 PHPUnit classes used by Codeception
    codeception/stub 4.0.2 Flexible Stub wrapper for PHPUnit's Mock Builder
    composer/package-versions-deprecated 1.11.99.3 Composer plugin that provides efficient querying for installed package versions (no runtime IO)
    doctrine/annotations 1.13.2 Docblock Annotations Parser
    doctrine/cache 2.1.1 PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.
    doctrine/collections 1.6.8 PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.
    doctrine/common 3.2.2 PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, proxies and mu...
    doctrine/data-fixtures 1.5.2 Data Fixtures for all Doctrine Object Managers
    doctrine/dbal 2.13.7 Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.
    doctrine/deprecations v0.5.3 A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.
    doctrine/doctrine-bundle 2.5.5 Symfony DoctrineBundle
    doctrine/doctrine-fixtures-bundle 3.4.1 Symfony DoctrineFixturesBundle
    doctrine/doctrine-migrations-bundle 3.2.2 Symfony DoctrineMigrationsBundle
    doctrine/event-manager 1.1.1 The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.
    doctrine/inflector 2.0.4 PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.
    doctrine/instantiator 1.4.0 A small, lightweight utility to instantiate objects in PHP without invoking their constructors
    doctrine/lexer 1.2.2 PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.
    doctrine/migrations 3.4.1 PHP Doctrine Migrations project offer additional functionality on top of the database abstraction layer (DBAL) for versioning your database schema and easily deploying ...
    doctrine/orm 2.11.1 Object-Relational-Mapper for PHP
    doctrine/persistence 2.3.0 The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.
    doctrine/sql-formatter 1.1.2 a PHP SQL highlighting library
    egulias/email-validator 3.1.2 A library for validating emails against several RFCs
    erusev/parsedown 1.7.4 Parser for Markdown.
    facile-it/doctrine-mysql-come-back 1.10.1 Auto reconnect on Doctrine MySql has gone away exceptions on doctrine/dbal
    friendsofphp/proxy-manager-lts v1.0.5 Adding support for a wider range of PHP versions to ocramius/proxy-manager
    guzzlehttp/psr7 2.1.0 PSR-7 message implementation that also provides common utility methods
    justinrainbow/json-schema 5.2.11 A library to validate a json schema.
    laminas/laminas-code 4.5.1 Extensions to the PHP Reflection API, static code scanning, and code generation
    lcobucci/clock 2.0.0 Yet another clock abstraction
    lcobucci/jwt 4.1.5 A simple library to work with JSON Web Token and JSON Web Signature
    lexik/jwt-authentication-bundle v2.14.4 This bundle provides JWT authentication for your Symfony REST API
    monolog/monolog 2.3.5 Sends your logs to files, sockets, inboxes, databases and various web services
    myclabs/deep-copy 1.10.2 Create deep copies (clones) of your objects
    namshi/jose 7.2.3 JSON Object Signing and Encryption library for PHP.
    nikic/php-parser v4.13.2 A PHP parser written in PHP
    paragonie/constant_time_encoding v2.5.0 Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)
    phar-io/manifest 2.0.3 Component for reading phar.io manifest information from a PHP Archive (PHAR)
    phar-io/version 3.1.0 Library for handling version information and constraints
    php-amqplib/php-amqplib v3.1.2 Formerly videlalvaro/php-amqplib. This library is a pure PHP implementation of the AMQP protocol. It's been tested against RabbitMQ.
    php-amqplib/rabbitmq-bundle 2.11.0 Integrates php-amqplib with Symfony & RabbitMq. Formerly emag-tech-labs/rabbitmq-bundle, oldsound/rabbitmq-bundle.
    phpdocumentor/reflection-common 2.2.0 Common reflection classes used by phpdocumentor to reflect the code structure
    phpdocumentor/reflection-docblock 5.3.0 With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.
    phpdocumentor/type-resolver 1.6.0 A PSR-5 based resolver of Class names, Types and Structural Element Names
    phpseclib/phpseclib 3.0.13 PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.
    phpspec/prophecy v1.15.0 Highly opinionated mocking framework for PHP 5.3+
    phpunit/php-code-coverage 9.2.10 Library that provides collection, processing, and rendering functionality for PHP code coverage information.
    phpunit/php-file-iterator 3.0.6 FilterIterator implementation that filters files based on a list of suffixes.
    phpunit/php-invoker 3.1.1 Invoke callables with a timeout
    phpunit/php-text-template 2.0.4 Simple template engine.
    phpunit/php-timer 5.0.3 Utility class for timing
    phpunit/phpunit 9.5.13 The PHP Unit Testing framework.
    psr/cache 1.0.1 Common interface for caching libraries
    psr/container 1.1.2 Common Container Interface (PHP FIG PSR-11)
    psr/event-dispatcher 1.0.0 Standard interfaces for event handling.
    psr/http-factory 1.0.1 Common interfaces for PSR-7 HTTP message factories
    psr/http-message 1.0.1 Common interface for HTTP messages
    psr/log 1.1.4 Common interface for logging libraries
    ralouphie/getallheaders 3.0.3 A polyfill for getallheaders.
    sebastian/cli-parser 1.0.1 Library for parsing CLI options
    sebastian/code-unit 1.0.8 Collection of value objects that represent the PHP code units
    sebastian/code-unit-reverse-lookup 2.0.3 Looks up which function or method a line of code belongs to
    sebastian/comparator 4.0.6 Provides the functionality to compare PHP values for equality
    sebastian/complexity 2.0.2 Library for calculating the complexity of PHP code units
    sebastian/diff 4.0.4 Diff implementation
    sebastian/environment 5.1.3 Provides functionality to handle HHVM/PHP environments
    sebastian/exporter 4.0.4 Provides the functionality to export PHP variables for visualization
    sebastian/global-state 5.0.3 Snapshotting of global state
    sebastian/lines-of-code 1.0.3 Library for counting the lines of code in PHP source code
    sebastian/object-enumerator 4.0.4 Traverses array structures and object graphs to enumerate all referenced objects
    sebastian/object-reflector 2.0.4 Allows reflection of object attributes, including inherited and non-public ones
    sebastian/recursion-context 4.0.4 Provides functionality to recursively process PHP variables
    sebastian/resource-operations 3.0.3 Provides a list of PHP built-in functions that operate on resources
    sebastian/type 2.3.4 Collection of value objects that represent the types of the PHP type system
    sebastian/version 3.0.2 Library that helps with managing the version number of Git-hosted PHP projects
    sensio/framework-extra-bundle v6.2.6 This bundle provides a way to configure your controllers with annotations
    softcreatr/jsonpath 0.7.5 JSONPath implementation for parsing, searching and flattening arrays
    swiftmailer/swiftmailer v6.3.0 Swiftmailer, free feature-rich PHP mailer
    symfony/asset v5.4.3 Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files
    symfony/browser-kit v5.4.3 Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically
    symfony/cache v5.4.3 Provides an extended PSR-6, PSR-16 (and tags) implementation
    symfony/cache-contracts v2.5.0 Generic abstractions related to caching
    symfony/config v5.4.3 Helps you find, load, combine, autofill and validate configuration values of any kind
    symfony/console v5.4.3 Eases the creation of beautiful and testable command line interfaces
    symfony/css-selector v5.4.3 Converts CSS selectors to XPath expressions
    symfony/dependency-injection v5.4.3 Allows you to standardize and centralize the way objects are constructed in your application
    symfony/deprecation-contracts v2.5.0 A generic function and convention to trigger deprecation notices
    symfony/doctrine-bridge v5.4.3 Provides integration for Doctrine with various Symfony components
    symfony/dom-crawler v5.4.3 Eases DOM navigation for HTML and XML documents
    symfony/dotenv v5.4.3 Registers environment variables from a .env file
    symfony/error-handler v5.4.3 Provides tools to manage errors and ease debugging PHP code
    symfony/event-dispatcher v5.4.3 Provides tools that allow your application components to communicate with each other by dispatching events and listening to them
    symfony/event-dispatcher-contracts v2.5.0 Generic abstractions related to dispatching event
    symfony/filesystem v5.4.3 Provides basic utilities for the filesystem
    symfony/finder v5.4.3 Finds files and directories via an intuitive fluent interface
    symfony/flex v1.18.3 Composer plugin for Symfony
    symfony/form v5.4.3 Allows to easily create, process and reuse HTML forms
    symfony/framework-bundle v5.4.4 Provides a tight integration between Symfony components and the Symfony full-stack framework
    symfony/http-client v5.4.3 Provides powerful methods to fetch HTTP resources synchronously or asynchronously
    symfony/http-client-contracts v2.5.0 Generic abstractions related to HTTP clients
    symfony/http-foundation v5.4.3 Defines an object-oriented layer for the HTTP specification
    symfony/http-kernel v5.4.4 Provides a structured process for converting a Request into a Response
    symfony/intl v5.4.3 Provides a PHP replacement layer for the C intl extension that includes additional data from the ICU library
    symfony/loco-translation-provider v5.4.3 Symfony Loco Translation Provider Bridge
    symfony/mailer v5.4.3 Helps sending emails
    symfony/maker-bundle v1.36.4 Symfony Maker helps you create empty commands, controllers, form classes, tests and more so you can forget about writing boilerplate code.
    symfony/mime v5.4.3 Allows manipulating MIME messages
    symfony/monolog-bridge v5.4.3 Provides integration for Monolog with various Symfony components
    symfony/monolog-bundle v3.7.1 Symfony MonologBundle
    symfony/options-resolver v5.4.3 Provides an improved replacement for the array_replace PHP function
    symfony/password-hasher v5.4.3 Provides password hashing utilities
    symfony/polyfill-intl-grapheme v1.24.0 Symfony polyfill for intl's grapheme_* functions
    symfony/polyfill-intl-icu v1.24.0 Symfony polyfill for intl's ICU-related data and classes
    symfony/polyfill-intl-idn v1.24.0 Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions
    symfony/polyfill-intl-normalizer v1.24.0 Symfony polyfill for intl's Normalizer class and related functions
    symfony/polyfill-mbstring v1.24.0 Symfony polyfill for the Mbstring extension
    symfony/polyfill-php72 v1.24.0 Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions
    symfony/polyfill-php73 v1.24.0 Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions
    symfony/polyfill-php80 v1.24.0 Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions
    symfony/polyfill-php81 v1.24.0 Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions
    symfony/process v5.4.3 Executes commands in sub-processes
    symfony/property-access v5.4.3 Provides functions to read and write from/to an object or array using a simple string notation
    symfony/property-info v5.4.3 Extracts information about PHP class' properties using metadata of popular sources
    symfony/proxy-manager-bridge v5.4.3 Provides integration for ProxyManager with various Symfony components
    symfony/routing v5.4.3 Maps an HTTP request to a set of configuration variables
    symfony/security-bundle v5.4.3 Provides a tight integration of the Security component into the Symfony full-stack framework
    symfony/security-core v5.4.3 Symfony Security Component - Core Library
    symfony/security-csrf v5.4.3 Symfony Security Component - CSRF Library
    symfony/security-guard v5.4.3 Symfony Security Component - Guard
    symfony/security-http v5.4.3 Symfony Security Component - HTTP Integration
    symfony/serializer v5.4.3 Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.
    symfony/service-contracts v2.5.0 Generic abstractions related to writing services
    symfony/stopwatch v5.4.3 Provides a way to profile code
    symfony/string v5.4.3 Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way
    symfony/translation v5.4.3 Provides tools to internationalize your application
    symfony/translation-contracts v2.5.0 Generic abstractions related to translation
    symfony/twig-bridge v5.4.3 Provides integration for Twig with various Symfony components
    symfony/twig-bundle v5.4.3 Provides a tight integration of Twig into the Symfony full-stack framework
    symfony/validator v5.4.3 Provides tools to validate values
    symfony/var-dumper v5.4.3 Provides mechanisms for walking through any arbitrary PHP variable
    symfony/var-exporter v5.4.3 Allows exporting any serializable PHP data structure to plain PHP code
    symfony/web-profiler-bundle v5.4.3 Provides a development tool that gives detailed information about the execution of any request
    symfony/yaml v5.4.3 Loads and dumps YAML files
    symfonycasts/reset-password-bundle v1.11.0 Symfony bundle that adds password reset functionality.
    theseer/tokenizer 1.2.1 A small library for converting tokenized PHP source code into XML and potentially other formats
    twig/extra-bundle v3.3.7 A Symfony bundle for extra Twig extensions
    twig/twig v3.3.7 Twig, the flexible, fast, and secure template language for PHP
    webmozart/assert 1.10.0 Assertions to validate method input/output with nice error messages.
    willdurand/js-translation-bundle 5.0.0 A pretty nice way to expose your translation messages to your JavaScript.
  • Suite configuration:
actor: ApiTester
modules:
    enabled:
        - \App\Tests\Helper\Api
        - Symfony:
            app_path: 'src'
            environment: 'test'
            headers:
                Content-Type: application/json
        - Doctrine2:
            depends: Symfony
            cleanup: true
        - REST:
            url: https://localhost
            depends: Symfony
        - Asserts
        - Db:
            dsn: 'mysql:host=%DATABASE_HOST%:%DATABASE_PORT%;dbname=%META_DATABASE_NAME%'
            user: '%DATABASE_USER%'
            password: '%DATABASE_PASSWORD%'
            dump:
              - tests/_data/meta_dump.sql
              - tests/_data/meta_security_dump.sql
            cleanup: true # reload dump between tests
            populate: true # load dump before all tests
            databases:
                DATA:
                    dsn: 'mysql:host=%DATABASE_HOST%:%DATABASE_PORT%;dbname=%DATA_DATABASE_NAME%'
                    user: '%DATABASE_USER%'
                    password: '%DATABASE_PASSWORD%'
                    dump: tests/_data/data_dump.sql
                    cleanup: false
                    populate: true # load dump before all tests
@Naktibalda Naktibalda transferred this issue from Codeception/Codeception Feb 11, 2022
@TavoNiievez TavoNiievez transferred this issue from Codeception/module-symfony Apr 24, 2022
@Naktibalda
Copy link
Member

@TavoNiievez token storage seems like a Symfony thing to me.

@TavoNiievez
Copy link
Member

@Naktibalda I moved it because I didn't see any module-symfony method in the description.

It is very surely related to the particular implementation of @amigian74 of the tokens.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants