2020-09-30 19:15:32 +02:00
|
|
|
package com.plannaplan.controllers;
|
|
|
|
|
|
|
|
import java.util.Optional;
|
|
|
|
|
|
|
|
import com.plannaplan.entities.User;
|
2020-10-01 16:46:45 +02:00
|
|
|
import com.plannaplan.exceptions.UserNotFoundException;
|
2020-09-30 19:15:32 +02:00
|
|
|
import com.plannaplan.services.UserService;
|
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.security.core.Authentication;
|
|
|
|
import org.springframework.security.core.context.SecurityContextHolder;
|
|
|
|
import org.springframework.security.authentication.AnonymousAuthenticationToken;
|
|
|
|
|
|
|
|
public abstract class TokenBasedController {
|
|
|
|
@Autowired
|
|
|
|
protected UserService userService;
|
|
|
|
|
|
|
|
public TokenBasedController() {
|
|
|
|
}
|
|
|
|
|
2020-10-01 16:46:45 +02:00
|
|
|
protected Optional<User> getCurrentUser() throws UserNotFoundException {
|
2020-09-30 19:15:32 +02:00
|
|
|
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
|
|
|
|
|
|
|
|
if (!(authentication instanceof AnonymousAuthenticationToken)) {
|
|
|
|
return Optional.of(this.userService.getUserByEmail(authentication.getName()));
|
|
|
|
} else {
|
|
|
|
return Optional.empty();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|