1我遇到問題。我在我的項目用戶,管理員,專家中擔任3個角色。 2 3不同的用戶登錄頁面。 3我想要的是當會話過期時,以及之後,如果用戶做了任何事件,頁面應根據那裏的角色指示。 例如,用戶應該重定向到用戶登錄和管理員來管理登錄。在會話過期後重定向到登錄頁面
我已經閱讀了很多關於它的文檔。有一些給出了添加過濾器和檢查過濾器中的會話的想法。 但是這個問題是我沒有得到過濾器的作用。' 所以SpringSecurityHolder將在Filter中工作。
我也讀過有關採用事件的ApplicationListerner。 我有返回代碼,但我不知道如何從listerner類
import java.util.List;
import org.springframework.context.ApplicationListener;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.web.session.HttpSessionDestroyedEvent;
public class SessionTimeoutHandler implements ApplicationListener<HttpSessionDestroyedEvent>{
@Override
public void onApplicationEvent(HttpSessionDestroyedEvent event) {
List<SecurityContext> lstSecurityContext = event
.getSecurityContexts();
for (SecurityContext securityContext : lstSecurityContext)
{
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
List<GrantedAuthority> authList = (List<GrantedAuthority>) authentication
.getAuthorities();
String userRole = authList.get(0).getAuthority();
if(userRole.equals("ROLE_ADMIN")){
}else if(userRole.equals("ROLE_EXPERT")){
}else{
}
}
}
}
請幫我我如何將能夠重定向頁面內直接。
感謝您的幫助
所以我刪除了我的答案,並且據我所知和理解,它不會,因爲你在你身邊的代碼正在獲取身份驗證,這是不存在的,因爲用戶已經註銷。請閱讀一些基礎知識,它們會有所幫助。 – 2015-03-31 12:24:29
但你認爲必須有一些功能,我們可以從中決定在哪裏重定向頁面 – 2015-03-31 12:34:56