I have a link on my home page that leads to users posts page. It is visible only if user is logged in. Currently I'm getting
Cannot invoke "org.springframework.security.core.Authentication.getPrincipal()" because "auth" is null
when I try to get on homepage as a guest. I understand that Authentication requires a logged in user, but how exactly can I handle that exception or is there a better way to do it?
My controller
...
@GetMapping("/home")
public String home (Model model, Authentication auth) {
UserPrincipal userPrincipal = (UserPrincipal) auth.getPrincipal();
User user = userPrincipal.getUser();
model.addAttribute("user", user);
model.addAttribute("listPosts", postService.getAllPosts());
return "home";
}
...
Link in my thymeleaf view
<li><a th:href="@{/{username}/posts (username = ${user.username})}" sec:authorize="isAuthenticated()">My posts</a></li>
Thanks
question from:
https://stackoverflow.com/questions/65877874/spring-boot-authentication-null 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…