Skip to content

Commit 9adb1ac

Browse files
committed
Added route to get Current user details.
1 parent 73bbf73 commit 9adb1ac

File tree

3 files changed

+43
-6
lines changed

3 files changed

+43
-6
lines changed

src/main/java/com/alwinsimon/UserManagementJavaSpringBoot/Config/ApplicationConfig.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,14 @@
88
import org.springframework.security.authentication.AuthenticationProvider;
99
import org.springframework.security.authentication.dao.DaoAuthenticationProvider;
1010
import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration;
11+
import org.springframework.security.core.context.SecurityContextHolder;
1112
import org.springframework.security.core.userdetails.UserDetailsService;
1213
import org.springframework.security.core.userdetails.UsernameNotFoundException;
1314
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
1415
import org.springframework.security.crypto.password.PasswordEncoder;
1516

17+
import java.security.Principal;
18+
1619
@Configuration
1720
@RequiredArgsConstructor
1821
public class ApplicationConfig {
@@ -54,4 +57,9 @@ public AuthenticationManager authenticationManager(AuthenticationConfiguration a
5457

5558
}
5659

60+
@Bean
61+
public Principal principal() throws Exception {
62+
return () -> SecurityContextHolder.getContext().getAuthentication().getName();
63+
}
64+
5765
}
Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,23 @@
11
package com.alwinsimon.UserManagementJavaSpringBoot.Controller;
22

3-
import org.springframework.web.bind.annotation.*;
4-
//import com.alwinsimon.UserManagementJavaSpringBoot.Model.User;
3+
import com.alwinsimon.UserManagementJavaSpringBoot.Model.User;
4+
import com.alwinsimon.UserManagementJavaSpringBoot.Service.UserService;
5+
import lombok.RequiredArgsConstructor;
6+
import org.springframework.web.bind.annotation.CrossOrigin;
7+
import org.springframework.web.bind.annotation.GetMapping;
8+
import org.springframework.web.bind.annotation.RequestMapping;
9+
import org.springframework.web.bind.annotation.RestController;
510

611
@RestController
712
@RequestMapping("/api/v1/user")
13+
@RequiredArgsConstructor
814
@CrossOrigin("*")
915
public class UserController {
10-
@PostMapping("/register")
11-
public String addUser(@RequestBody String requestBody){
12-
System.out.println("Received request body: " + requestBody);
13-
return requestBody;
16+
17+
private final UserService userService;
18+
19+
@GetMapping("/current-user")
20+
public User getCurrentUser() {
21+
return userService.currentUserDetails();
1422
}
1523
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package com.alwinsimon.UserManagementJavaSpringBoot.Service;
2+
3+
import com.alwinsimon.UserManagementJavaSpringBoot.Model.User;
4+
import com.alwinsimon.UserManagementJavaSpringBoot.Repository.UserRepository;
5+
import lombok.RequiredArgsConstructor;
6+
import org.springframework.stereotype.Service;
7+
8+
import java.security.Principal;
9+
10+
@Service
11+
@RequiredArgsConstructor
12+
public class UserService {
13+
14+
private final UserRepository userRepository;
15+
private final Principal principal;
16+
17+
public User currentUserDetails() {
18+
String email = principal.getName();
19+
return userRepository.findByEmail(email).orElse(null);
20+
}
21+
}

0 commit comments

Comments
 (0)