diff options
Diffstat (limited to 'src/main/java/com/mavlushechka/studentdatabase/config/CustomAuthenticationSuccessHandler.java')
-rwxr-xr-x | src/main/java/com/mavlushechka/studentdatabase/config/CustomAuthenticationSuccessHandler.java | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/main/java/com/mavlushechka/studentdatabase/config/CustomAuthenticationSuccessHandler.java b/src/main/java/com/mavlushechka/studentdatabase/config/CustomAuthenticationSuccessHandler.java new file mode 100755 index 0000000..2239e91 --- /dev/null +++ b/src/main/java/com/mavlushechka/studentdatabase/config/CustomAuthenticationSuccessHandler.java @@ -0,0 +1,25 @@ +package com.mavlushechka.studentdatabase.config; + +import org.springframework.security.core.Authentication; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.web.authentication.AuthenticationSuccessHandler; +import org.springframework.stereotype.Component; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +@Component +public class CustomAuthenticationSuccessHandler implements AuthenticationSuccessHandler { + @Override + public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException { + response.setStatus(HttpServletResponse.SC_OK); + + for (GrantedAuthority auth : authentication.getAuthorities()) { + switch (auth.getAuthority()) { + case "USER" -> response.sendRedirect("/"); + case "ADMIN" -> response.sendRedirect("/admin-panel/information/students"); + } + } + } +} |