- 
                Notifications
    You must be signed in to change notification settings 
- Fork 34
Add comprehensive SSL support for JVM OpenID Connect clients (Please Dont Merge - Just Review) #123
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
base: main
Are you sure you want to change the base?
Conversation
- Remove complex ACME implementation and factory patterns - Simplify certificate source management - Streamline JVM authentication flow without ACME dependencies - Remove SslWebserverFactory in favor of direct SSL webserver usage - Clean up certificate utilities to focus on core functionality
- Add JvmSslConfigurer with enhanced HTTP client SSL configuration - Introduce SslConfig data classes for flexible SSL setup - Create SslEnabledOpenIdConnectClient wrapper for SSL-aware clients - Add OpenIdConnectClientBuilder with fluent SSL configuration API - Extend OpenIdConnectClientConfig with SSL configuration extensions - Support custom trust stores, certificate sources, and SSL contexts
- Create desktop-app-with-ssl sample with Compose UI demonstrating SSL scenarios - Implement multiple SSL configuration screens (Self-signed, Resources, File-based) - Add complete Docker setup with Keycloak integration and certificate management - Include automated certificate generation scripts for development - Provide comprehensive shell scripts for quick environment setup and reset - Add reference documentation and SSL certificate management guides - Support OAuth flow testing with various SSL certificate sources - Include debug logging and state management for SSL troubleshooting
- Add SSL_EXAMPLES.md with detailed usage examples and setup guides - Update README.md with SSL feature documentation and quick start - Add SSL-related dependencies to gradle/libs.versions.toml - Update .gitignore for SSL sample app artifacts and certificates - Document HTTP client SSL configuration patterns - Provide certificate management and troubleshooting guides - Include Docker integration examples and security considerations
| Any opinions? @kalinjul | 
| Hi, thanks for all your work! This is a rather large PR and I'm not sure when i find the time to go through it. | 
| Hi! Thanks for taking a look at this PR. You're absolutely right about the size - I understand it's a lot to review. Primary Use Case: Enterprise environments where IDPs require HTTPS redirect URIs for security compliance. Many corporate identity providers (especially those following strict security policies) reject HTTP redirect URIs entirely, making the current HTTP-only embedded webserver unusable. Specific Problem: 
 Secondary Use Cases: 
 Size Concern: I completely understand the maintenance burden. Would you prefer I break this into smaller PRs? I could start with just: 
 The comprehensive sample app and documentation could come later. No rush - I know you're busy - we all are. | 
| Alright, thanks for explaining. What is you strategy in production? And: Am I correct to assume that using https in this context is not about actual security? | 
Summary
This PR adds comprehensive SSL/TLS support for JVM implementations of the Kotlin Multiplatform OIDC library, including:
🛠️ Core SSL API Enhancement
JvmSslConfigurerwith enhanced HTTP client SSL configurationSslConfigdata classes for SSL setupSslEnabledOpenIdConnectClientwrapper for SSL-aware clientsOpenIdConnectClientBuilderwith SSL configuration API📱 Complete Sample Application
desktop-app-with-sslsample with Compose UI demonstrating SSL scenarios📚 Comprehensive Documentation
SSL_EXAMPLES.mdwith detailed usage examples and setup guidesBreaking Changes
Test Plan
This implementation focuses on practical SSL use cases while maintaining the library's ease of use and multiplatform compatibility. Its still experimental.