{"id":26179294,"url":"https://github.com/bezkoder/spring-boot-security-login","last_synced_at":"2025-07-25T05:12:38.506Z","repository":{"id":56729474,"uuid":"450807286","full_name":"bezkoder/spring-boot-security-login","owner":"bezkoder","description":"Spring Boot + Spring Security: Login and Registration example with JWT, H2 Database and HttpOnly Cookie","archived":false,"fork":false,"pushed_at":"2024-02-04T09:08:09.000Z","size":145,"stargazers_count":127,"open_issues_count":6,"forks_count":55,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-11T14:20:26.872Z","etag":null,"topics":["authentication","authorization","httponly-cookie","jwt","jwt-auth","jwt-authentication","jwt-token","login","registration","spring-boot","spring-security"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bezkoder.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2022-01-22T12:11:49.000Z","updated_at":"2025-04-04T15:22:32.000Z","dependencies_parsed_at":"2024-02-04T10:24:03.099Z","dependency_job_id":"19a8c8eb-6068-4995-9be5-7f7dd516ede1","html_url":"https://github.com/bezkoder/spring-boot-security-login","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bezkoder%2Fspring-boot-security-login","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bezkoder%2Fspring-boot-security-login/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bezkoder%2Fspring-boot-security-login/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bezkoder%2Fspring-boot-security-login/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bezkoder","download_url":"https://codeload.github.com/bezkoder/spring-boot-security-login/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248971499,"owners_count":21191614,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["authentication","authorization","httponly-cookie","jwt","jwt-auth","jwt-authentication","jwt-token","login","registration","spring-boot","spring-security"],"created_at":"2025-03-11T21:49:30.183Z","updated_at":"2025-04-14T22:31:25.377Z","avatar_url":"https://github.com/bezkoder.png","language":"Java","readme":"# Spring Boot Security Login example with JWT and H2 example\n\n- Appropriate Flow for User Login and Registration with JWT and HttpOnly Cookie\n- Spring Boot Rest Api Architecture with Spring Security\n- How to configure Spring Security to work with JWT\n- How to define Data Models and association for Authentication and Authorization\n- Way to use Spring Data JPA to interact with H2 Database\n\n## User Registration, Login and Authorization process.\n\n![spring-boot-security-login-jwt-flow](spring-boot-security-login-jwt-flow.png)\n\n## Spring Boot Server Architecture with Spring Security\nYou can have an overview of our Spring Boot Server with the diagram below:\n\n![spring-boot-security-login-jwt-architecture](spring-boot-security-login-jwt-architecture.png)\n\nFor more detail, please visit:\n\u003e [Spring Boot Security Login example with JWT and H2 example](https://www.bezkoder.com/spring-boot-security-login-jwt/)\n\n\u003e [For MySQL/PostgreSQL](https://www.bezkoder.com/spring-boot-login-example-mysql/)\n\n\u003e [For MongoDB](https://www.bezkoder.com/spring-boot-jwt-auth-mongodb/)\n\nWorking with Front-end:\n\u003e [Angular 12](https://www.bezkoder.com/angular-12-jwt-auth-httponly-cookie/) / [Angular 13](https://www.bezkoder.com/angular-13-jwt-auth-httponly-cookie/) / [Angular 14](https://www.bezkoder.com/angular-14-jwt-auth/) / [Angular 15](https://www.bezkoder.com/angular-15-jwt-auth/) / [Angular 16](https://www.bezkoder.com/angular-16-jwt-auth/) / [Angular 17](https://www.bezkoder.com/angular-17-jwt-auth/)\n\n\u003e [React](https://www.bezkoder.com/react-login-example-jwt-hooks/) / [React Redux](https://www.bezkoder.com/redux-toolkit-auth/)\n\n## Dependency\n– If you want to use PostgreSQL:\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003eorg.postgresql\u003c/groupId\u003e\n  \u003cartifactId\u003epostgresql\u003c/artifactId\u003e\n  \u003cscope\u003eruntime\u003c/scope\u003e\n\u003c/dependency\u003e\n```\n– or MySQL:\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.mysql\u003c/groupId\u003e\n  \u003cartifactId\u003emysql-connector-j\u003c/artifactId\u003e\n  \u003cscope\u003eruntime\u003c/scope\u003e\n\u003c/dependency\u003e\n```\n## Configure Spring Datasource, JPA, App properties\nOpen `src/main/resources/application.properties`\n- For PostgreSQL:\n```\nspring.datasource.url=jdbc:postgresql://localhost:5432/testdb\nspring.datasource.username=postgres\nspring.datasource.password=123\n\nspring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true\nspring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect\n\n# Hibernate ddl auto (create, create-drop, validate, update)\nspring.jpa.hibernate.ddl-auto=update\n\n# App Properties\nbezkoder.app.jwtSecret= ======================BezKoder=Spring===========================\nbezkoder.app.jwtExpirationMs= 86400000\n```\n- For MySQL\n```\nspring.datasource.url=jdbc:mysql://localhost:3306/testdb?useSSL=false\nspring.datasource.username=root\nspring.datasource.password=123456\n\nspring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect\nspring.jpa.hibernate.ddl-auto=update\n\n# App Properties\nbezkoder.app.jwtSecret= ======================BezKoder=Spring===========================\nbezkoder.app.jwtExpirationMs= 86400000\n```\n## Run Spring Boot application\n```\nmvn spring-boot:run\n```\n\n## Run following SQL insert statements\n```\nINSERT INTO roles(name) VALUES('ROLE_USER');\nINSERT INTO roles(name) VALUES('ROLE_MODERATOR');\nINSERT INTO roles(name) VALUES('ROLE_ADMIN');\n```\n\n## Refresh Token\n\n[Spring Boot JWT Refresh Token example](https://www.bezkoder.com/spring-security-refresh-token/)\n\n## More Practice:\n\u003e [Spring Boot File upload example with Multipart File](https://bezkoder.com/spring-boot-file-upload/)\n\n\u003e [Exception handling: @RestControllerAdvice example in Spring Boot](https://bezkoder.com/spring-boot-restcontrolleradvice/)\n\n\u003e [Spring Boot Repository Unit Test with @DataJpaTest](https://bezkoder.com/spring-boot-unit-test-jpa-repo-datajpatest/)\n\n\u003e [Spring Boot Rest Controller Unit Test with @WebMvcTest](https://www.bezkoder.com/spring-boot-webmvctest/)\n\n\u003e [Spring Boot Pagination \u0026 Sorting example](https://www.bezkoder.com/spring-boot-pagination-sorting-example/)\n\n\u003e Validation: [Spring Boot Validate Request Body](https://www.bezkoder.com/spring-boot-validate-request-body/)\n\n\u003e Documentation: [Spring Boot and Swagger 3 example](https://www.bezkoder.com/spring-boot-swagger-3/)\n\n\u003e Caching: [Spring Boot Redis Cache example](https://www.bezkoder.com/spring-boot-redis-cache-example/)\n\nAssociations:\n\u003e [JPA/Hibernate One To Many example in Spring Boot](https://www.bezkoder.com/jpa-one-to-many/)\n\n\u003e [JPA/Hibernate Many To Many example in Spring Boot](https://www.bezkoder.com/jpa-many-to-many/)\n\n\u003e [JPA/Hibernate One To One example in Spring Boot](https://www.bezkoder.com/jpa-one-to-one/)\n\nDeployment:\n\u003e [Deploy Spring Boot App on AWS – Elastic Beanstalk](https://www.bezkoder.com/deploy-spring-boot-aws-eb/)\n\n\u003e [Docker Compose Spring Boot and MySQL example](https://www.bezkoder.com/docker-compose-spring-boot-mysql/)\n\n## Fullstack Authentication\n\n\u003e [Spring Boot + Vue.js JWT Authentication](https://bezkoder.com/spring-boot-vue-js-authentication-jwt-spring-security/)\n\n\u003e [Spring Boot + Angular 8 JWT Authentication](https://bezkoder.com/angular-spring-boot-jwt-auth/)\n\n\u003e [Spring Boot + Angular 10 JWT Authentication](https://bezkoder.com/angular-10-spring-boot-jwt-auth/)\n\n\u003e [Spring Boot + Angular 11 JWT Authentication](https://bezkoder.com/angular-11-spring-boot-jwt-auth/)\n\n\u003e [Spring Boot + Angular 12 JWT Authentication](https://www.bezkoder.com/angular-12-spring-boot-jwt-auth/)\n\n\u003e [Spring Boot + Angular 13 JWT Authentication](https://www.bezkoder.com/angular-13-spring-boot-jwt-auth/)\n\n\u003e [Spring Boot + Angular 14 JWT Authentication](https://www.bezkoder.com/angular-14-spring-boot-jwt-auth/)\n\n\u003e [Spring Boot + Angular 15 JWT Authentication](https://www.bezkoder.com/angular-15-spring-boot-jwt-auth/)\n\n\u003e [Spring Boot + Angular 16 JWT Authentication](https://www.bezkoder.com/angular-16-spring-boot-jwt-auth/)\n\n\u003e [Spring Boot + Angular 17 JWT Authentication](https://www.bezkoder.com/angular-17-spring-boot-jwt-auth/)\n\n\u003e [Spring Boot + React JWT Authentication](https://bezkoder.com/spring-boot-react-jwt-auth/)\n\n## Fullstack CRUD App\n\n\u003e [Vue.js + Spring Boot + H2 Embedded database example](https://www.bezkoder.com/spring-boot-vue-js-crud-example/)\n\n\u003e [Vue.js + Spring Boot + MySQL example](https://www.bezkoder.com/spring-boot-vue-js-mysql/)\n\n\u003e [Vue.js + Spring Boot + PostgreSQL example](https://www.bezkoder.com/spring-boot-vue-js-postgresql/)\n\n\u003e [Angular 8 + Spring Boot + Embedded database example](https://www.bezkoder.com/angular-spring-boot-crud/)\n\n\u003e [Angular 8 + Spring Boot + MySQL example](https://www.bezkoder.com/angular-spring-boot-crud/)\n\n\u003e [Angular 8 + Spring Boot + PostgreSQL example](https://www.bezkoder.com/angular-spring-boot-postgresql/)\n\n\u003e [Angular 10 + Spring Boot + MySQL example](https://www.bezkoder.com/angular-10-spring-boot-crud/)\n\n\u003e [Angular 10 + Spring Boot + PostgreSQL example](https://www.bezkoder.com/angular-10-spring-boot-postgresql/)\n\n\u003e [Angular 11 + Spring Boot + MySQL example](https://www.bezkoder.com/angular-11-spring-boot-crud/)\n\n\u003e [Angular 11 + Spring Boot + PostgreSQL example](https://www.bezkoder.com/angular-11-spring-boot-postgresql/)\n\n\u003e [Angular 12 + Spring Boot + Embedded database example](https://www.bezkoder.com/angular-12-spring-boot-crud/)\n\n\u003e [Angular 12 + Spring Boot + MySQL example](https://www.bezkoder.com/angular-12-spring-boot-mysql/)\n\n\u003e [Angular 12 + Spring Boot + PostgreSQL example](https://www.bezkoder.com/angular-12-spring-boot-postgresql/)\n\n\u003e [Angular 13 + Spring Boot + H2 Embedded Database example](https://www.bezkoder.com/spring-boot-angular-13-crud/)\n\n\u003e [Angular 13 + Spring Boot + MySQL example](https://www.bezkoder.com/spring-boot-angular-13-mysql/)\n\n\u003e [Angular 13 + Spring Boot + PostgreSQL example](https://www.bezkoder.com/spring-boot-angular-13-postgresql/)\n\n\u003e [Angular 14 + Spring Boot + H2 Embedded Database example](https://www.bezkoder.com/spring-boot-angular-14-crud/)\n\n\u003e [Angular 14 + Spring Boot + MySQL example](https://www.bezkoder.com/spring-boot-angular-14-mysql/)\n\n\u003e [Angular 14 + Spring Boot + PostgreSQL example](https://www.bezkoder.com/spring-boot-angular-14-postgresql/)\n\n\u003e [Angular 15 + Spring Boot + H2 Embedded Database example](https://www.bezkoder.com/spring-boot-angular-15-crud/)\n\n\u003e [Angular 15 + Spring Boot + MySQL example](https://www.bezkoder.com/spring-boot-angular-15-mysql/)\n\n\u003e [Angular 15 + Spring Boot + PostgreSQL example](https://www.bezkoder.com/spring-boot-angular-15-postgresql/)\n\n\u003e [Angular 16 + Spring Boot + H2 Embedded Database example](https://www.bezkoder.com/spring-boot-angular-16-crud/)\n\n\u003e [Angular 16 + Spring Boot + MySQL example](https://www.bezkoder.com/spring-boot-angular-16-mysql/)\n\n\u003e [Angular 16 + Spring Boot + PostgreSQL example](https://www.bezkoder.com/spring-boot-angular-16-postgresql/)\n\n\u003e [Angular 17 + Spring Boot + H2 Embedded Database example](https://www.bezkoder.com/spring-boot-angular-17-crud/)\n\n\u003e [Angular 17 + Spring Boot + MySQL example](https://www.bezkoder.com/spring-boot-angular-17-mysql/)\n\n\u003e [Angular 17 + Spring Boot + PostgreSQL example](https://www.bezkoder.com/spring-boot-angular-17-postgresql/)\n\n\u003e [React + Spring Boot + MySQL example](https://www.bezkoder.com/react-spring-boot-crud/)\n\n\u003e [React + Spring Boot + PostgreSQL example](https://www.bezkoder.com/spring-boot-react-postgresql/)\n\n\u003e [React + Spring Boot + MongoDB example](https://www.bezkoder.com/react-spring-boot-mongodb/)\n\nRun both Back-end \u0026 Front-end in one place:\n\u003e [Integrate Angular with Spring Boot Rest API](https://www.bezkoder.com/integrate-angular-spring-boot/)\n\n\u003e [Integrate React.js with Spring Boot Rest API](https://www.bezkoder.com/integrate-reactjs-spring-boot/)\n\n\u003e [Integrate Vue.js with Spring Boot Rest API](https://www.bezkoder.com/integrate-vue-spring-boot/)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbezkoder%2Fspring-boot-security-login","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbezkoder%2Fspring-boot-security-login","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbezkoder%2Fspring-boot-security-login/lists"}