Catalyst-Plugin-OpenIDConnect
view release on metacpan or search on metacpan
CHANGELOG.md view on Meta::CPAN
- Logout functionality
- User session management
- Three configured example clients
- **example/generate_keys.sh** - RSA key generation script
- **example/root/** - HTML templates
- index.html (home page)
- login.html (login form)
- protected.html (protected resource)
#### Project Files
- **cpanfile** - Comprehensive dependency declarations
- Catalyst and related modules
- Cryptography libraries
- JSON processing
- Testing dependencies
- **dist.ini** - Distribution configuration for CPAN publishing
- Project structure ready for publication
### Implementation Details
#### Algorithm Support
- RS256 (RSA SHA-256) for all JWT operations
- 2048-bit RSA keys (4096-bit recommended for production)
#### Token Lifetimes
- Authorization codes: 10 minutes
- ID tokens: 1 hour
- Access tokens: 1 hour
- Refresh tokens: 30 days
- Sessions: 24 hours (configurable)
#### Standard Claims
- Supported: sub, name, given_name, family_name, email, picture, phone_number, etc.
- User-configurable mapping from application models
- Optional claims support
#### Endpoints
- All endpoints return JSON except authorization (redirects)
- Proper HTTP status codes (200, 302, 400, 401, 500)
- RFC 6749 & RFC 6750 compliance
- OpenID Connect 1.0 Core compliance
### Known Limitations
- In-memory state store (database integration requires extension)
- Single key at a time (key rotation requires restart)
- No HS256 support (RS256 only)
- No Implicit or Hybrid flows
- No PKCE (for public clients)
- No form_post response mode
- No client registration endpoint
- No introspection endpoint
### Requirements
- Perl 5.20 or higher
- Catalyst 5.90100 or higher
- Moose and related modules
- Crypt::OpenSSL modules
- JSON::MaybeXS
- HTTP::Request and LWP stack
### Testing
All modules have unit test coverage. Run tests with:
```bash
prove -l t/
```
### Future Roadmap
- [ ] PKCE support for public clients
- [ ] Implicit and Hybrid flow support
- [ ] Multiple simultaneous keys
- [ ] Database-backed session store
- [ ] Introspection endpoint
- [ ] Revocation endpoint
- [ ] Client metadata endpoint
- [ ] HS256 algorithm support
- [ ] Multi-signature support
- [ ] Request object support
- [ ] Pushed Authorization Requests (PAR)
- [ ] OpenID Connect Federation support
### Author
Tim F. Rayner
### License
This library is available under The Artistic License 2.0 (GPL Compatible). See LICENSE file for details.
( run in 0.981 second using v1.01-cache-2.11-cpan-acf6aa7dc9e )