SimpleCookie

Untitled

Feb 12th, 2024
473
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 1.35 KB | None | 0 0
  1. import org.springframework.http.HttpHeaders
  2. import org.springframework.http.MediaType
  3. import org.springframework.security.core.Authentication
  4. import org.springframework.security.web.server.authentication.logout.ServerLogoutHandler
  5. import org.springframework.stereotype.Component
  6. import org.springframework.web.reactive.function.BodyInserters
  7. import org.springframework.web.reactive.function.client.WebClient
  8. import org.springframework.web.server.ServerWebExchange
  9. import reactor.core.publisher.Mono
  10.  
  11. @Component
  12. class CustomLogoutHandler : ServerLogoutHandler {
  13.  
  14.     override fun logout(exchange: ServerWebExchange?, authentication: Authentication?): Mono<Void> {
  15.         val tokenToRemove = "TOKEN_TO_BE_REMOVED" // Replace with actual token
  16.  
  17.         val client = WebClient.create("https://oauth-provider.com/logout") // Replace with logout endpoint
  18.  
  19.         return client.post()
  20.             .contentType(MediaType.APPLICATION_FORM_URLENCODED)
  21.             .header(HttpHeaders.AUTHORIZATION, "Bearer $tokenToRemove")
  22.             .exchangeToMono { response ->
  23.                 if (response.statusCode().is2xxSuccessful) {
  24.                     println("Successfully revoked token: $tokenToRemove")
  25.                 } else {
  26.                     println("Failed to revoke token: $tokenToRemove")
  27.                 }
  28.                 Mono.empty()
  29.             }
  30.     }
  31. }
Advertisement
Add Comment
Please, Sign In to add comment