A Spring Boot web application configured to use OAuth 2.0 with GitHub API and self-signed SSL certificate.
- 🔶 Java 21.0.5 LTS
- 🔶 Spring Boot 3.4.3
- 🔶 Gradle 8.12.1
- 🔶 Apache Tomcat 10.1.36
- 🔶 SonarQube 4.0.0.2929
- 🔶 Visual Studio Code 1.98.2
OAuth (Open Authorization) 2.0 is an open authorization standard. It provides a way for users to log into a web-based application (Spring Security OAuth 2.0) by delegating the authentication process to trusted third-party services, such as Google and GitHub. The full specification of the OAuth 2.0 protocol can be found in RFC 6749.
-
Clone a GitHub Repository to your computer:
git clone https://github.com/AndrzejSzelag/oauth2githubssl.git -
Configuring an OAuth 2.0 GitHub SSL application in GitHub (https://github.com/: Settings -> Developer settings).
You need:
CLIENT_ID CLIENT_SECRETWarning: These values should be set in the application.yml file in place of CLIENT_ID and CLIENT_SECRET.
This application uses a self-signed SSL certificate for development and testing purposes with HTTPS. Since the private key file (keystore.p12) is excluded from the repository (via .gitignore for security reasons), you must generate your own local key before running the application.
Execute the following command in the project's root directory. This requires Java Development Kit (JDK) to be installed, as it uses the keytool utility.
keytool -genkeypair -alias oauth2githubssl-key -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore src/main/resources/keystore.p12 -validity 3650-
Crucial Step: When prompted for "First and last name" (What is your first and last name?), you must enter localhost. This is required for the browser to trust the certificate for local development.
-
Password: Use a secure password (e.g.,
haslo1234) and remember it for the next step.
After generating the keystore.p12 file, ensure your src/main/resources/application.properties file contains the following configuration, making sure to replace the placeholder password with the one you chose during generation:
server.port=8443
server.ssl.enabled=true
server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=haslo1234
server.ssl.key-alias=oauth2githubssl-key
-
Open a terminal in the project's root directory.
-
Execute the command:
gradle bootRun -
Paste the URL into your web browser:
http://localhost:8080
❤️ You have successfully run the Spring Boot project using Gradle!

