PHPackages                             acseo/change-password-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. acseo/change-password-bundle

ActiveSymfony-bundle[Authentication &amp; Authorization](/categories/authentication)

acseo/change-password-bundle
============================

Bundle used to manage User password history and user change password policy

1.0.21(6y ago)42802[1 issues](https://github.com/acseo/ACSEOChangePasswordBundle/issues)PHPPHP &gt;=5.3.2

Since Mar 24Pushed 6y ago4 watchersCompare

[ Source](https://github.com/acseo/ACSEOChangePasswordBundle)[ Packagist](https://packagist.org/packages/acseo/change-password-bundle)[ Docs](https://github.com/acseo/ACSEOChangePasswordBundle)[ RSS](/packages/acseo-change-password-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (2)Versions (8)Used By (0)

\#User Password History Management

Purpose
-------

[](#purpose)

This Bundle allows to manage user password history. It has been developped and tested to work with the famous FOSUserBundle Bundle.

What this bundle does :

- Store the User's password whenever this password is changed in the table *password\_history*.
- Redirect the User to the route **fos\_user\_change\_password** eveytime the User's password is older than 30 days.
- Optionaly, provide a constraints that forbids the User to set a password if this password has already been used.

Installation
------------

[](#installation)

1. Add the bundle to you composer.json file :

```
composer require 'acseo/change-password-bundle:dev-master'

```

2. Enable the Bundle

```
// app/AppKernel.php
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
        //...
        new ACSEO\ChangePasswordBundle\ACSEOChangePasswordBundle(),
        //...
```

3. Map your User Class The bundle use an Entity, *PasswordHistory*, which store previous hashed passwords used by an user. In order to be generic, this entity has a ManyToOne relation with a User entity. This user Entity *must* extends the *FOS\\UserBundle\\Model\\User* abstract class.

Edit your config file :

```
# app/config/config.yml
doctrine:
    orm:
        resolve_target_entities:
            "FOS\UserBundle\Model\User": "YourBundle\Entity\YourUser"

```

4. Update your database to create the new *password\_history* table

```
$ app/console doctrine:schema:update --dump-sql
$ app/console doctrine:schema:update --force

```

*From now Password History is set up. The table password\_history will store the changed user password whenever this password is changed*

5. Enable Password history constraint

```
# src/YourBundle/Resources/config/validation.yml
YourBundle\Entity\YourUser:
    properties:
        # ...
        plainPassword:
            - ACSEO\ChangePasswordBundle\Validator\Constraints\NotInPreviousPasswords: ~

```

*And that's it !*

About
-----

[](#about)

Feel free to comment or improve this bundle by creating issues or submitting pull requests

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance15

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~205 days

Recently: every ~7 days

Total

7

Last Release

2476d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a21f9d389ad9d714e1e84226a4b2def0417c9bfec60ea43c22104a8e93a654da?d=identicon)[npotier](/maintainers/npotier)

---

Top Contributors

[![romainguerrero](https://avatars.githubusercontent.com/u/13657074?v=4)](https://github.com/romainguerrero "romainguerrero (14 commits)")[![npotier](https://avatars.githubusercontent.com/u/1151094?v=4)](https://github.com/npotier "npotier (12 commits)")[![Wahib-L](https://avatars.githubusercontent.com/u/39584418?v=4)](https://github.com/Wahib-L "Wahib-L (3 commits)")[![nicolaskern](https://avatars.githubusercontent.com/u/1478783?v=4)](https://github.com/nicolaskern "nicolaskern (1 commits)")

---

Tags

bundlepassword-historyphpsymfonysymfony-bundlesymfonypassworduserowasp

### Embed Badge

![Health badge](/badges/acseo-change-password-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/acseo-change-password-bundle/health.svg)](https://phpackages.com/packages/acseo-change-password-bundle)
```

###  Alternatives

[scheb/2fa

Two-factor authentication for Symfony applications (please use scheb/2fa-bundle to install)

578630.7k1](/packages/scheb-2fa)[web-auth/webauthn-framework

FIDO2/Webauthn library for PHP and Symfony Bundle.

50570.7k1](/packages/web-auth-webauthn-framework)[auth0/symfony

Symfony SDK for Auth0 Authentication and Management APIs.

128738.1k](/packages/auth0-symfony)[web-auth/webauthn-symfony-bundle

FIDO2/Webauthn Security Bundle For Symfony

63397.4k6](/packages/web-auth-webauthn-symfony-bundle)[olivier127/rbac-bundle

Symfony PhpRabcBundle allow to use RBAC control access for symfony project

318.3k](/packages/olivier127-rbac-bundle)[agence-adeliom/easy-admin-user-bundle

A Symfony bundle for EasyAdmin that provide basic user authentification flow

1310.5k](/packages/agence-adeliom-easy-admin-user-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
