The code snippets below print if a user account is enabled or disabled. Only one of them is correct. Your task is to find it.
A:
Java
@RestController
class A {
@GetMapping("/test")
public void test(UserDetails details) {
System.out.println("Is account enabled: " + details.isEnabled());
}
}
Kotlin
@RestController
class A {
@GetMapping("/test")
fun test(details: UserDetails) {
println("Is account enabled: " + details.isEnabled)
}
}
B:
Java
class B {
public void test(@AuthenticationPrincipal UserDetails details) {
System.out.println("Is account enabled: " + details.isEnabled());
}
}
Kotlin
class B {
fun test(@AuthenticationPrincipal details: UserDetails) {
println("Is account enabled: " + details.isEnabled)
}
}
C:
Java
@RestController
class C {
@GetMapping("/test")
public void test(Authentication auth) {
UserDetails details = auth.getPrincipal();
System.out.println("Is account enabled: " + details.isEnabled());
}
}
Kotlin
@RestController
class C {
@GetMapping("/test")
fun test(auth: Authentication) {
val details: UserDetails = auth.principal as UserDetails
println("Is account enabled: " + details.isEnabled)
}
}
D:
Java
@RestController
class D {
@GetMapping("/test")
public void test() {
UserDetails details = (UserDetails) SecurityContextHolder
.getContext()
.getAuthentication()
.getDetails();
System.out.println("Is account enabled: " + details.isEnabled());
}
}
Kotlin
@RestController
class D {
@GetMapping("/test")
fun test() {
val details = SecurityContextHolder
.getContext()
.authentication
.details as UserDetails
println("Is account enabled: " + details.isEnabled)
}
}