You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ddangelorb
a746e85132
|
3 years ago | |
---|---|---|
db | 3 years ago | |
src | 3 years ago | |
.gitignore | 3 years ago | |
HELP.md | 3 years ago | |
LICENSE | 3 years ago | |
README.md | 3 years ago | |
mvnw | 3 years ago | |
mvnw.cmd | 3 years ago | |
pom.xml | 3 years ago |
README.md
wpdAuth
The authenticator for the Waterproofing Data (WPD) Work Packages
How this project was created
This project was initially created using the spring initializr, together with the following dependencies:
- Lombok. Java annotation library which helps to reduce boilerplate code.
- Spring Web. Build web, including RESTful, applications using Spring MVC. Uses Apache Tomcat as the default embedded container.
- Spring Data JPA. Persist data in SQL stores with Java Persistence API using Spring Data and Hibernate.
- PostgreSQL Driver. A JDBC and R2DBC driver that allows Java programs to connect to a PostgreSQL database using standard, database independent Java code.
- Spring Security. Highly customizable authentication and access-control framework for Spring applications.
Dependencies
How to setup this project
Once the dependencies are properly installed, follow the steps below:
- Clone the project locally
$ git clone https://github.com/IGSD-UoW/wpdAuth.git
$ cd wpdAuth
- Start the PostgreSQL and run the scripts to create the database and get the load data.
$ brew services start postgresql
$ psql postgres
postgres=# \conninfo
postgres=# CREATE DATABASE wpdauth;
postgres=# \c wpdauth
wpdauth=# \i db/ddl.sql
wpdauth=# \i db/sys_config.sql
wpdauth=# \q
- Install dependencies
$ mvn install
- Run the project
$ mvn spring-boot:run
How to run this project
Navigate to http://localhost:8080/swagger-ui.html
in your browser to check everything is working correctly. You can change the default port in the application.properties
file.
- Make a GET request to
/users/me
to check you're not authenticated. You should receive a response with a403
with anAccess Denied
message since you haven't set your valid JWT token yet.
$ curl -X GET http://localhost:8080/users/me
- Make a POST request to
/users/signin
with the default admin user we programatically created to get a valid JWT token
$ curl -X POST 'http://localhost:8080/users/signin?username=admin&password=admin'
- Add the JWT token as a Header parameter and make the initial GET request to
/users/me
again
$ curl -X GET http://localhost:8080/users/me -H 'Authorization: Bearer <JWT_TOKEN>'
- You should get a similar response to this one, meaning that you're now authenticated
{
"id": 1,
"username": "admin",
"email": "admin@email.com",
"roles": [
"ROLE_ADMIN"
]
}