Spring-security-registration is a github repository serves as a sample project designed to illustrate the process of using RoostGPT (an AI-powered tool) which streamlines the mechanism of creating test cases, enabling developers to improve code quality and accelerate development workflows.
Spring-security-registration demonstrates the significance of thorough unit testing in Java projects, particularly within the Spring framework. By prioritizing unit tests, this project aims to ensure the reliability and correctness of the implemented functionalities.
The development process of the spring-security-registration integrates cutting-edge AI-powered tools, notably RoostGPT, alongside established practices:
-
Code Implementation:
Java code is implemented following Spring framework conventions, with an emphasis on RESTful APIs and designs. -
Test Generation with RoostGPT:
RoostGPT, an AI-powered test generator, is utilized to automate the generation of comprehensive unit tests. This innovative approach enhances test coverage and efficiency in the development process. -
Test Execution:
Maven is used as the build automation tool to compile the code and execute both manually crafted and AI-generated unit tests. This ensures thorough validation of the application's functionality.
To run Maven tests for the Spring Boot Examples project, follow these steps:
-
Clone the repository:
git clone https://github.com/roost-io/spring-security-registration.git
-
Navigate to the project directory:
cd spring-security-registration
-
Run the unit tests:
mvn test
This command executes all unit tests defined within the project, providing feedback on test results and code coverage.
-
(Optional) Run Specific Tests:
If you want to run specific test classes or methods, you can use Maven's Surefire plugin to filter tests. Use the following command format:-
To run a specific test class:
mvn -Dtest=TestClassName test
Replace
TestClassName
with the name of the class containing the tests you want to run. -
To run a specific test method within a class:
mvn -Dtest=TestClassName#testMethodName test
Replace
testMethodName
with the name of the test method you want to run.
-
After running the tests, review the output in the terminal. Maven will display information about the tests executed, including any failures or errors encountered.
For more information about RoostGPT or our other products and services, please visit our website at roost.ai or contact us at [email protected].
If you're already a student of Learn Spring Security, you can get started diving deeper into registration with Module 2
If you're not yet a student, you can get access to the course here: https://bit.ly/github-lss
- Spring Security Registration Tutorial
- The Registration Process With Spring Security
- Registration – Activate a New Account by Email
- Registration with Spring Security – Password Encoding
- Spring Security – Roles and Privileges
- Prevent Brute Force Authentication Attempts with Spring Security
- Spring Security – Reset Your Password
- Spring Security Registration – Resend Verification Email
- The Registration API becomes RESTful
- Registration – Password Strength and Rules
- Updating Your Password
- Two Factor Auth with Spring Security
- Registration with Spring – Integrate reCAPTCHA
- Purging Expired Tokens Generated by the Registration
- Custom Login Page for Returning User
- Allow Authentication from Accepted Locations Only with Spring Security
- Spring Security – Auto Login User After Registration
- Keep Track of Logged in Users With Spring Security
- Login for a Spring Web App – Error Handling and Localization
- Notify User of Login From New Device or Location
- Preventing Username Enumeration Attacks with Spring Security
mvn clean install
This is a Spring Boot project, so you can deploy it by simply using the main class: Application.java
Once deployed, you can access the app at:
By default, the project is configured to use the embedded H2 database. If you want to use the MySQL instead, you need to uncomment relevant section in the application.properties and create the db user as shown below:
mysql -u root -p
> CREATE USER 'tutorialuser'@'localhost' IDENTIFIED BY 'tutorialmy5ql';
> GRANT ALL PRIVILEGES ON *.* TO 'tutorialuser'@'localhost';
> FLUSH PRIVILEGES;
You need to configure the email by providing your own username and password in application.properties You also need to use your own host, you can use Amazon or Google for example.
If you want to activate the configuration for the article Custom Login Page for Returning User, then you need to comment the @Component("myAuthenticationSuccessHandler") annotation in the MySimpleUrlAuthenticationSuccessHandler and uncomment the same in MyCustomLoginAuthenticationSuccessHandler.
The geolocation checks do not work for the IP addresses 127.0.0.1 and 0.0.0.0,
which can be a problem when running the application locally or in a test environment.
To enable/disable the check on the geolocation, set the property geo.ip.lib.enabled
to true/false; this is false by default.