습득 조건 :
사용자가 로그인 및 역할 userService의 사용자 지정 구현을 사용하여 데이터베이스에서 가져온 주어진다. 즉다른 봄 보안 당국과의 사용자를 Relogging 프로그램
인증 공급자 사용자 서비스-REF = "securityPolicyService"
구현 된 방법 loadUserByUsername 호출과 역할 그들이에 로그인하는 특정 클럽에 대한 사용자의 부하입니다됩니다, 기본값은 처음으로로드됩니다.
사용자는 UI에서 다른 클럽을 클릭하고이 클럽에 대한 새로운 권한 목록을 가져 오는 서비스 방법을 호출합니다.
Object principle = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
SecureMember sm = (SecureMember) principle;
Authentication auth =
new UsernamePasswordAuthenticationToken(sm, null, newAuthories); <br><br>
SecurityContextHolder.getContext().setAuthentication(auth);<br>
request.getSession(false).invalidate();
SecureMember은 스프링 프레임 워크에서 사용자를 확장 :
나는 다음 수행합니다.
문제는 SecureMember 권한이 새 권한으로 업데이트되지 않는다는 것입니다.
감사 게리
왜 세션을 무효화합니까? 그렇게 할 때 사용자가 로그 아웃하지 않습니까? – sourcedelica
죄송합니다. request.getSession (false) .invalidate(); 위의 snipped 전에 호출됩니다. 거기 있으면 안된다. – user1331982