
This lecture demonstrates a real world full stack Spring Boot and Angular app, featuring secure login, email verification, password reset, two-factor authentication, and user role management for customers and invoices.
Experience a video-based, advanced full-stack course with Spring Boot and Angular, where concepts precede coding, questions are answered within 24 hours, and you receive backend and frontend source code.
Review dependencies in pom.xml, convert the config to yaml, set up a local MySQL data source with Hibernate dialect and ddl auto, then run the app to validate user login.
Define attribute data types in the logical model, using strings for names and roles and a date-time for user role assignments; establish a 1-to-1 user-role relationship.
Tailor the physical model to a database system by translating the logical model into SQL and performing reverse-engineering with MySQL Workbench to define users, roles, and user_roles and their relationships.
Design and implement a reset password verification table with id, user_id, url, expiration_date set to 24 hours, and unique constraints on user_id and url, linking to the user table. Then implement two-factor authentication by adding a code field in a separate table for verification after login.
Implement an email uniqueness check in the user repository by counting existing emails and throw an API exception when the count exceeds zero.
Save a new user, capture the generated id with a key holder, and assign a role via a role repository; move queries into a dedicated user query class.
Implement the role to user feature in the user repository using JDBC template, a role mapper, and new queries, with logging and incremental testable steps.
Implement insert queries for users, account verifications, and user roles using named parameters, add role queries, and scaffold service and controller for testing user creation.
Create a user service using the dto pattern, expose a user dto without the password, and implement a dto mapper to transform between user and user dto in Spring.
Remove the default access denied handler and authentication entry point to implement a custom user detail service and deliver a JSON error response with a Spring bean and object mapper.
Test the login flow by building a login form (email and password), authenticating with the authentication manager, and returning a user DTO on success; prepare for MFA checks.
Set up Twilio to send SMS verification codes in Java using Twilio SDK, including configuring account SID, auth token, from and to numbers, and creating an SMS utils class.
Learn to implement token-based login with a token provider that creates access and refresh tokens, injects them into login responses, and uses user and role services to set permissions.
Master the login flow with multifactor authentication, including verification code generation and validation, access and refresh token issuance, testing with console logs, and secure one-time code deletion for PostgreSQL.
Demonstrates testing login after refactoring by validating MFA flow, two-factor codes, and role-based permissions, while refining error handling, validation, and separating business logic from controllers.
Bind the current request authentication with a Spring Security authorization filter, then expose profile data by email using the access token.
Explore advanced exception handling in Spring Boot by implementing controller advice, catching specific exceptions like SQL integrity constraint violation, customizing messages, logging with SLF4J, and returning meaningful bad request responses.
Demonstrates testing exception handling in a full-stack Spring Boot API with Angular, using Postman to validate empty fields, incorrect credentials, and locked accounts, and introducing an error controller.
Refactor the login flow to reduce two database calls and return the full authenticated user as a user DTO via the authentication manager, the security context, and the principal.
The Java Spring Framework (Spring Framework - Spring Boot) is a popular, open source, enterprise-level framework for creating standalone, production-grade applications that run on the Java Virtual Machine (JVM). Java Spring Boot (Spring Boot) is a tool that makes developing web application and micro-services with Spring Framework faster and easier through three core capabilities, mainly its auto-configuration An opinionated approach to configuration.
Spring Boot is an open source Java-based framework used to create a micro Services. It is developed by Pivotal Team and is used to build stand-alone and production ready spring applications. This course will give you an in-depth knowledge to Spring Boot and familiarize you with its advanced concepts. For practice, we will build a Spring Boot REST API that manages customers.
Angular is an open-source, JavaScript framework written in TypeScript. Google maintains it, and its primary purpose is to develop single-page web applications. As a framework, Angular has clear advantages while also providing a standard structure for developers to work with. It enables users to create large applications in a maintainable manner.
This course teaches how to build a full stack web application from the ground up and touches on very important concepts used in real-world software applications.