AuthController

@RestController
@RequestMapping(value = "/api/auth")
open class AuthController

Authentication API endpoints implementing DPoP-bound access tokens and rotating refresh tokens.

Constructors

Link copied to clipboard
@Autowired
constructor(authService: AuthService, userEventsPublisher: UserEventsPublisher, productUserService: ProductUserService, authContextService: AuthContextService, jwtTokenService: JwtTokenService, refreshTokenService: RefreshTokenService, replayCache: DpopReplayCache, dpopVerifier: DpopVerifierService, securityProperties: SecurityProperties)

Functions

Link copied to clipboard
@GetMapping(value = "/logged-in")
open fun isLoggedIn(): ResponseEntity<AuthResponse>
Quick status check used by the UI.
Link copied to clipboard
open fun login(loginRequest: LoginRequest): ResponseEntity<AuthResponse>
Overload without DPoP or request argument for tests.
@PostMapping(value = "/login")
open fun login(@RequestBody loginRequest: LoginRequest, @RequestHeader(value = "DPoP", required = false) dpopProof: String, request: HttpServletRequest): ResponseEntity<AuthResponse>
Authenticates user credentials and starts a session.
Link copied to clipboard
open fun logout(): ResponseEntity<AuthResponse>
Overload without DPoP or request argument for tests.
@PostMapping(value = "/logout")
open fun logout(@RequestHeader(value = "DPoP", required = false) dpopProof: String, request: HttpServletRequest): ResponseEntity<AuthResponse>
Terminates the current session and revokes tokens.
Link copied to clipboard
@GetMapping(value = "/logout")
open fun logoutGet(@RequestHeader(value = "DPoP", required = false) dpopProof: String, request: HttpServletRequest): ResponseEntity<AuthResponse>
Link copied to clipboard
@PostMapping(value = "/refresh")
open fun refresh(@RequestHeader(value = "DPoP", required = false) dpopProof: String, request: HttpServletRequest): ResponseEntity<AuthResponse>
Rotates access and refresh tokens.
Link copied to clipboard
open fun signup(signupRequest: SignupRequest): ResponseEntity<AuthResponse>
Overload without DPoP or request argument for tests.
@PostMapping(value = "/signup")
open fun signup(@RequestBody signupRequest: SignupRequest, @RequestHeader(value = "DPoP", required = false) dpopProof: String, request: HttpServletRequest): ResponseEntity<AuthResponse>
Registers a new user and initializes an authenticated session.