내가 무엇을해도 로그 아웃 할 수 없습니다. 멤버 역할을 통해서만 볼 수있는 메뉴가 있습니다. 나는 세션의 무효화뿐만 아니라 Spring 문서를 통한/j_spring_security_logout을 시도했다 ... 홈 페이지로 앞으로 나아 갔지만 홈 페이지에는 메뉴와 자격 증명이 나타난다. 따라서 로그 아웃이 작동하지 않습니다. 여기에 내 Spring Security.xml 파일 항목이있다.Spring 3 보안을 통한 로그 아웃
<logout logout-url="/logout"/>
<logout logout-url="/j_spring_security_logout" logout-success-url="/home"
delete-cookies="JSESSIONID" invalidate-session="true"/>
자세히 알 수 있듯이 두 가지 모두를 시도했습니다. 다음은 로그 아웃 컨트롤러입니다.
@RequestMapping(value = "/logout", method=RequestMethod.GET)
public String logout(HttpServletRequest request, HttpServletResponse response) {
logger.info("Logging out!");
response.setHeader("pragma", "no-cache");
response.setHeader("Cache-control", "no-cache, no-store, must-revalidate");
response.setHeader("Expires", "0");
Cookie jSessionCookie = new Cookie("JSESSIONID", null);
jSessionCookie.setMaxAge(0);
response.addCookie(jSessionCookie);
Cookie activityIdCookie = new Cookie("activityId", null);
activityIdCookie.setMaxAge(0);
response.addCookie(activityIdCookie);
request.getSession().invalidate(); //Attempt to logout user.
return ("redirect://");
}
도움을 주시면 대단히 감사하겠습니다.
<logout logout-url="/logout" logout-success-url="/home" />
그냥 사용자 요청에게 URL http://localhost/yourApp/logout
을 보자
* 로그 아웃 *은 보안 필터 체인에 의해 처리됩니다 (스프링 보안의 거의 모든 것처럼). 실제 * logout * 요청은 디스패처 서블릿으로 절대 전달하지 않습니다. 수동으로 로그 아웃 논리를 구현하지 마십시오 (세션 무효화 등). * Ralph의 * 대답을 참조하십시오 ... –