|Project Name||Stars||Downloads||Repos Using This||Packages Using This||Most Recent Commit||Total Releases||Latest Release||Open Issues||License||Language|
|Springall||25,866||4 months ago||29||mit||Java|
|循序渐进，学习Spring Boot、Spring Boot & Shiro、Spring Batch、Spring Cloud、Spring Cloud Alibaba、Spring Security & Spring Security OAuth2，博客Spring系列源码：https://mrbird.cc|
|Spring Security||8,095||16,215||1,186||a day ago||215||November 20, 2023||935||apache-2.0||Java|
|Jwt Spring Security Demo||2,534||4 years ago||2||mit||Java|
|A demo for using JWT (Json Web Token) with Spring Security and Spring Boot 2|
|Jasypt Spring Boot||2,418||352||159||8 months ago||30||December 15, 2022||21||mit||Java|
|Jasypt integration for Spring boot|
|Pac4j||2,338||146||152||a day ago||110||November 06, 2023||apache-2.0||Java|
|Security engine for Java (authentication, authorization, multi frameworks): OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...|
|Spring Boot Leaning||2,068||a year ago||1||Java|
|Spring Boot 2.X 最全课程代码|
|Spring Security Oauth||1,923||a month ago||9||mit||Java|
|Just Announced - "Learn Spring Security OAuth":|
|X Springboot||1,845||3 months ago||2||Java|
|Security Core||1,753||9,008||412||19 days ago||500||January 24, 2023||mit||PHP|
|Symfony Security Component - Core Library|
|Spring Security React Ant Design Polls App||1,617||9 months ago||45||Java|
|Full Stack Polls App built using Spring Boot, Spring Security, JWT, React, and Ant Design|
This is a demo for using JWT (JSON Web Token) with Spring Security and Spring Boot. I completely rewrote my first version. Now this solution is based on the code base from the JHipster Project. I tried to extract the minimal configuration and classes that are needed for JWT-Authentication and did some changes.
This demo is build with with Maven 3.6.x and Java 11.
Just start the application with the Spring Boot maven plugin (
mvn spring-boot:run). The application is
running at http://localhost:8080.
You can use the H2-Console for exploring the database under http://localhost:8080/h2-console:
There are three user accounts present to demonstrate the different levels of access to the endpoints in the API and the different authorization exceptions:
Admin - admin:admin User - user:password Disabled - disabled:password (this user is deactivated)
There are four endpoints that are reasonable for the demo:
/api/authenticate - authentication endpoint with unrestricted access /api/user - returns detail information for an authenticated user (a valid JWT token must be present in the request header) /api/persons - an example endpoint that is restricted to authorized users with the authority 'ROLE_USER' (a valid JWT token must be present in the request header) /api/hiddenmessage - an example endpoint that is restricted to authorized users with the authority 'ROLE_ADMIN' (a valid JWT token must be present in the request header)
Actually this demo is using an embedded H2 database that is automatically configured by Spring Boot. If you want to connect to another database you have to specify the connection in the application.yml in the resource directory. Here is an example for a MySQL DB:
spring: jpa: hibernate: # possible values: validate | update | create | create-drop ddl-auto: create-drop datasource: url: jdbc:mysql://localhost/myDatabase username: myUser password: myPassword driver-class-name: com.mysql.jdbc.Driver
Hint: For other databases like MySQL sequences don't work for ID generation. So you have to change the GenerationType in the entity beans to 'AUTO' or 'IDENTITY'.
You can find a reference of all application properties here.
This project has a docker image. You can find it at https://hub.docker.com/r/hubae/jwt-spring-security-demo/.
If you have project related questions please take a look at the past questions or create a new ticket with your question.
If you have questions that are not directly related to this project (e.g. common questions to the Spring Framework or Spring Security etc.) please search the web or look at Stackoverflow.
Sorry for that but I'm very busy right now and don't have much time.
The code is released under the MIT license.
Please feel free to send me some feedback or questions!