spring security 로그인 관련 질문
- 작성자 :
- 최*재
- 작성일 :
- 2015-03-27 14:40:09
- 조회수 :
- 1,609
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
스프링 시큐리티를 이용한 로그인 처리 시
로그인 후 페이지가 index.jsp로 자동으로 이동됩니다.
원래 그렇게 되는건가요?
로그인 컨트롤러에서 로그인 처리 후
return 값을 스트링 형식으로 jsp페이지를 지정해 주어도
index.jsp로 넘어가네요
스프링 시큐리티의 기능인가요~? 바꿀수 없나요~?
컨트롤러 소스 첨부합니다.
@RequestMapping(value="/uat/uia/actionSecurityLogin.do")
public String actionSecurityLogin(@ModelAttribute("loginVO") LoginVO loginVO,
HttpServletRequest request, HttpServletResponse response,
ModelMap model)
throws Exception {
// 1. 일반 로그인 처리
LoginVO resultVO = loginService.actionLogin(loginVO);
boolean loginPolicyYn = true;
if (resultVO != null && resultVO.getId() != null && !resultVO.getId().equals("") && loginPolicyYn) {
// 2. spring security 연동
request.getSession().setAttribute("LoginVO", resultVO);
UsernamePasswordAuthenticationFilter springSecurity = null;
ApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());
@SuppressWarnings("rawtypes")
Map beans = act.getBeansOfType(UsernamePasswordAuthenticationFilter.class);
if (beans.size() > 0) {
springSecurity = (UsernamePasswordAuthenticationFilter)beans.values().toArray()[0];
} else {
throw new IllegalStateException("No AuthenticationProcessingFilter");
}
springSecurity.setContinueChainBeforeSuccessfulAuthentication(false); // false 이면 chain 처리 되지 않음.. (filter가 아닌 경우 false로...)
springSecurity.doFilter(new RequestWrapperForSecurity(request, resultVO.getUserSe() + resultVO.getId() , resultVO.getUniqId()), response, null);
return "main/loginSuccess"; // 성공 시 페이지..
} else {
model.addAttribute("message", cyaMessageSource.getMessage("fail.common.login"));
return "uat/uia/CyaLoginUsr";
}
}
로그인 후 페이지가 index.jsp로 자동으로 이동됩니다.
원래 그렇게 되는건가요?
로그인 컨트롤러에서 로그인 처리 후
return 값을 스트링 형식으로 jsp페이지를 지정해 주어도
index.jsp로 넘어가네요
스프링 시큐리티의 기능인가요~? 바꿀수 없나요~?
컨트롤러 소스 첨부합니다.
@RequestMapping(value="/uat/uia/actionSecurityLogin.do")
public String actionSecurityLogin(@ModelAttribute("loginVO") LoginVO loginVO,
HttpServletRequest request, HttpServletResponse response,
ModelMap model)
throws Exception {
// 1. 일반 로그인 처리
LoginVO resultVO = loginService.actionLogin(loginVO);
boolean loginPolicyYn = true;
if (resultVO != null && resultVO.getId() != null && !resultVO.getId().equals("") && loginPolicyYn) {
// 2. spring security 연동
request.getSession().setAttribute("LoginVO", resultVO);
UsernamePasswordAuthenticationFilter springSecurity = null;
ApplicationContext act = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());
@SuppressWarnings("rawtypes")
Map beans = act.getBeansOfType(UsernamePasswordAuthenticationFilter.class);
if (beans.size() > 0) {
springSecurity = (UsernamePasswordAuthenticationFilter)beans.values().toArray()[0];
} else {
throw new IllegalStateException("No AuthenticationProcessingFilter");
}
springSecurity.setContinueChainBeforeSuccessfulAuthentication(false); // false 이면 chain 처리 되지 않음.. (filter가 아닌 경우 false로...)
springSecurity.doFilter(new RequestWrapperForSecurity(request, resultVO.getUserSe() + resultVO.getId() , resultVO.getUniqId()), response, null);
return "main/loginSuccess"; // 성공 시 페이지..
} else {
model.addAttribute("message", cyaMessageSource.getMessage("fail.common.login"));
return "uat/uia/CyaLoginUsr";
}
}
A
안녕하세요. 최윤재님.
context-security.xml 스프링 설정파일에서
accessDeniedUrl 권한이 없는 경우(403 Http Error Code) 호출되는 URL -
loginUrl 로그인 URL -
logoutSuccessUrl 로그아웃 성공시 호출되는 URL -
loginFailureUrl 로그인 실패시 호출되는 URL
해당 옵션을 보시면 될꺼 같습니다.
context-security.xml 스프링 설정파일에서
accessDeniedUrl 권한이 없는 경우(403 Http Error Code) 호출되는 URL -
loginUrl 로그인 URL -
logoutSuccessUrl 로그아웃 성공시 호출되는 URL -
loginFailureUrl 로그인 실패시 호출되는 URL
해당 옵션을 보시면 될꺼 같습니다.