You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
996 B

  1. package com.example.demo.Util;
  2. import com.example.demo.domain.entity.Admin;
  3. import org.springframework.security.core.Authentication;
  4. import org.springframework.security.core.context.SecurityContextHolder;
  5. // com.example.demo.utils.SecurityUtils.java
  6. public class SecurityUtils {
  7. public static String getCurrentUsername() {
  8. Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
  9. if (authentication == null || !authentication.isAuthenticated()) {
  10. return "anonymous";
  11. }
  12. return authentication.getName();
  13. }
  14. public static Integer getCurrentUserId() {
  15. Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
  16. if (authentication == null || !authentication.isAuthenticated()) {
  17. return null;
  18. }
  19. if (authentication.getPrincipal() instanceof Admin userDetails) {
  20. return userDetails.getId();
  21. }
  22. return null;
  23. }
  24. }