Spring+MyBatis 실습 - 로그인 및 권한 제어
1. 사용자 로그인 기능을 실현한다.
세션을 통해 사용자 로그인 기능을 실현합니다.사용자가 로그인할 때 HttpSession 대상에 사용자의 정보를 저장합니다. 그 중에서 HttpSession 대상은 HttpServletRequest의 getSession 방법으로 얻을 수 있습니다.또한 HttpSession 대상은 Jsp 내장 대상session에 대응하고 jsp 페이지에서session을 통해 접근할 수 있다. 예를 들어 jstl 탭 라이브러리를 통해session의 내용에 접근할 수 있다.
session의username이null인지 판단하여 탭p를 표시할지 여부를 결정합니다.
로그인 기능 구현 코드;
@RequestMapping(value="/login", method=RequestMethod.POST)
public String login(HttpServletRequest request, User user){
if(userService.validateUser(user)){ // 、
request.getSession().setAttribute(CrazySnailConstants.USER, user.getEmail()); // , session
return "index";
}
request.getSession().setAttribute("errormsg", " 、 , ");
return "login"; // ,
}
주:session 데이터는 서버에 놓여 있기 때문에 Tomcat을 다시 시작할 때마다session 데이터는 비워지고 다시 로그인해야 합니다.
2. Filter를 통해 사용자 권한 제어를 실현한다.
웹을 통해서.xml에서 Filter를 설정하여 특정한 사용자의 요청을 필터하고 현재session에 사용자가 로그인한 관련 데이터가 있는지 판단하며 관련 데이터가 존재하면 접근을 허용합니다.그렇지 않으면 사용자에게 로그인을 알립니다.
또한tomcat 기본 설정에서session의 기본 유효기간은 30분이며, 아파치-tomcat-7.0.53\conf\web을 볼 수 있습니다.xml에서 보기를 진행합니다.웹을 통해서도 가능합니다.xml에서 세션의 유효기간을 설정합니다.
30
tomcat의 세션 시간 초과는 여러 단계에서 설정할 수 있습니다:tomcat 실례 단계, 웹 응용 프로그램 단계, servlet 단계, 실행할 때Context 코드 단계.낮은 레벨의 설정은 높은 레벨의 설정을 덮어씁니다.일반적으로 자주 사용하는 것은 앞의 두 단계에서 설정하는데 각각/conf/web에 있다.xml 및/webapps/yourapp/WEB-INF/web.xml.
권한 제어 구현:
우선, 필터류의 실현;
package com.crazysnail.filter;
public class AuthenFilter implements Filter{
private static Logger logger = Logger.getLogger(AuthenFilter.class);
@Override
public void destroy() {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) request;
if(httpServletRequest.getSession().getAttribute(CrazySnailConstants.USER)!=null){ // session
chain.doFilter(request, response);
}else{
httpServletRequest.getRequestDispatcher("./loginfail").forward(request, response); // ,
}
}
@Override
public void init(FilterConfig arg0) throws ServletException {
}
}
필터 종류를 사용자 정의할 때 필터 인터페이스를 실현해야 합니다. 필터 메커니즘은doFilter 방법에서 이루어집니다.
그 다음으로 웹에서.xml에 필터 설정 추가하기;
authenFilter
com.crazysnail.filter.AuthenFilter
authenFilter
/user/*
이 필터는 URL 경로에/user/가 포함된 경로를 필터하여 권한 검증을 하여 간단한 권한 제어 기능을 실현한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
devise를 사용한 로그인 사용자와 로그인되지 않은 사용자 간의 전환로그인 한 후 보여주고 싶은 홈 화면을 root_path로 설정했기 때문에 로그인하지 않은 사용자는 앱 추천 페이지로 이동하도록 설정합니다. 이 페이지에 쓰여진 대로 devise를 사용한 것이 됩니다. 아직 devi...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.