Spring Security
Authentication Service
The objective of this exercise is to implement an authentication microservice that issues JSON web tokens for authenticated users.
Token Issuing
-
Implement a Spring Boot web application and add the
spring-boot-starter-security
and spring-security-oauth2-jose
dependencies to the Maven configuration.
-
Use the ↘JwtTokenGenerator helper class to implement a REST controller
AuthController
with the endpoint GET /token
that returns JSON web tokens for authenticated users.
-
Make the issuer, signature key and validity period of the generated tokens configurable.
Security Configuration
Implement a configuration class
SecurityConfig
that provides the following bean methods:
-
securityFilterChain
configures the HttpSecurity such that
- basic authentication is used for authentication
- the access to the REST endpoint is restricted to authenticated users
- no sessions are used
and returns the corresponding SecurityFilterChain
-
userDetailsService
returns an InMemoryUserDetailsManager that knows one user with the EMPLOYEE role and two users with the CUSTOMER role
-
passwordEncoder
returns a PasswordEncoder
Testing
- Use the Postman utility to test the authentication of the microservice.
- Verify the returned JSON web tokens using the online JWT debugger.