A self hosted chat application with end-to-end encrypted messaging.
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.
|
|
package org.ros.chatto.security;
import java.io.IOException; import java.util.Collection;
import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;
import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.web.DefaultRedirectStrategy; import org.springframework.security.web.RedirectStrategy; import org.springframework.security.web.authentication.AuthenticationSuccessHandler; import org.springframework.stereotype.Component;
@Component public class AuthenticationSuccessHandlerImpl implements AuthenticationSuccessHandler {
private static final SimpleGrantedAuthority SUPER_USER_AUTHORITY = new SimpleGrantedAuthority( "ROLE_SUPER_USER"); private static final SimpleGrantedAuthority ADMIN_AUTHORITY = new SimpleGrantedAuthority( "ROLE_ADMIN"); private RedirectStrategy redirectStrategy = new DefaultRedirectStrategy();
@Override public void onAuthenticationSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException { Collection<? extends GrantedAuthority> authorities = authentication .getAuthorities(); if (authorities.contains(ADMIN_AUTHORITY) || authorities.contains(SUPER_USER_AUTHORITY)) { redirectStrategy.sendRedirect(httpServletRequest, httpServletResponse, "/admin"); } else { redirectStrategy.sendRedirect(httpServletRequest, httpServletResponse, "/user"); } } }
|