Przeglądaj źródła

InterCeptor 수정 / 로그인 / 로그아웃 / 세션 추가

huiwon.seo 4 lat temu
rodzic
commit
7d23d901c6

+ 16 - 9
src/main/java/com/lemon/lifecenter/common/LifeCenterController.java

@@ -28,19 +28,26 @@ public class LifeCenterController {
         hashMap.put("_MENUPATH", pathType);
 
         try {
-//	      String sesName = SessionController.getSession( request, "sesName" );
-//	      String sesRole = SessionController.getSession( request, "sesRole" );
-
-//	      hashMap.put( "_SES_NAME", sesName );
-//	      hashMap.put( "_SES_ROLE", sesRole );
+          String sesId         = LifeCenterSessionController.getSession( request, "sesId" );
+          String sesName       = LifeCenterSessionController.getSession( request, "sesName" );
+          String sesCenterCode = LifeCenterSessionController.getSession( request, "sesCenterCode" );
+          String sesGroupIdx   = LifeCenterSessionController.getSession( request, "sesGroupIdx" );
+
+          hashMap.put( "_SES_ID", sesId );
+          hashMap.put( "_SES_NAME", sesName );
+          hashMap.put( "_SES_CENTER_CODE", sesCenterCode );
+          hashMap.put( "_SES_GROUP_IDX", sesGroupIdx );
+          
         } catch (NullPointerException e) {
-//	      e.printStackTrace();
+          e.printStackTrace();
+          
         } catch (Exception e) {
-//	      e.printStackTrace();
+          e.printStackTrace();
+          
         }
 
-        mv.addObject("data", hashMap);
-        mv.setViewName(viewPath);
+        mv.addObject( "data", hashMap );
+        mv.setViewName( viewPath );
 
         return mv;
     }

+ 25 - 6
src/main/java/com/lemon/lifecenter/common/LifeCenterInterCeptor.java

@@ -1,5 +1,7 @@
 package com.lemon.lifecenter.common;
 
+import java.io.IOException;
+
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -20,15 +22,32 @@ public class LifeCenterInterCeptor extends HandlerInterceptorAdapter {
     private final Logger logger = LoggerFactory.getLogger(this.getClass());
 
     @Override
-    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException {
         System.out.println("--------------------- InterCeptor Start --------------------- ");
 
         String url = request.getRequestURI().toString();
         String port = String.valueOf(request.getLocalPort());
         Device device = DeviceUtils.getCurrentDevice(request);
 
-        logger.info("IP : " + LifeCenterFunction.getRemoteAddr(request) + " URL : " + url + " Port : " + port
-                + " Device : " + device);
+        logger.info("IP : " + LifeCenterFunction.getRemoteAddr(request) + " URL : " + url + " Port : " + port + " Device : " + device );
+        
+        Object session = request.getSession().getAttribute( "sesId" );
+        
+        if( !url.equals( "/login/staff" ) && !url.equals( "/login/admin" ) && !url.equals( "/login/check" ) ) {
+            if( session == null ) {
+                response.sendRedirect( "/login/staff" );
+                return false;
+            } else {
+                logger.info( "IP : " + LifeCenterFunction.getRemoteAddr( request ) + " ID : " + session.toString() + "  URL : " + url + " Port : " + port );
+            }
+            
+        } else if( url.equals( "/login/staff" ) || url.equals( "/login/admin" ) ) {
+            if( session != null ) {
+                response.sendRedirect( "/patient/list" );
+                return false;
+            }
+            
+        }
         
         return true;
     }
@@ -36,13 +55,13 @@ public class LifeCenterInterCeptor extends HandlerInterceptorAdapter {
     @Override
     public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
             ModelAndView modelAndView) {
-        logger.info("Method Executed Time : postHandle");
+        //logger.info("Method Executed Time : postHandle");
     }
 
     @Override
     public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler,
             Exception ex) {
-        logger.info("Method Completed Time : afterCompletion");
-        System.out.println("--------------------- InterCeptor End ---------------------");
+        //logger.info("Method Completed Time : afterCompletion");
+        System.out.println("--------------------- InterCeptor afterCompletion ---------------------");
     }
 }

+ 3 - 12
src/main/java/com/lemon/lifecenter/common/WebConfigurations.java

@@ -21,17 +21,8 @@ public class WebConfigurations implements WebMvcConfigurer {
      * */
     @Override
     public void addInterceptors(InterceptorRegistry registry) {
-        registry.addInterceptor(lifeCenterInterCeptor).addPathPatterns("/**/*");
+        registry.addInterceptor(lifeCenterInterCeptor)
+            .addPathPatterns( "/**/*" )
+            .excludePathPatterns( "/resources/css/**", "/resources/js/**", "/resources/images/**", "/resources/fonts/**" );
     }
-    
-//    @Autowired
-//    @Qualifier(value = "httpInterceptor")
-//    private HandlerInterceptor interceptor;
-//
-//    @Override
-//    public void addInterceptors(InterceptorRegistry registry) {
-//      registry.addInterceptor(interceptor)
-//          .addPathPatterns("/")
-//          .excludePathPatterns("/user/**");
-//    }
 }

+ 7 - 6
src/main/java/com/lemon/lifecenter/controller/LoginController.java

@@ -116,15 +116,16 @@ public class LoginController extends LifeCenterController {
                 
                 logger.info( "[LOGIN SUCCESS] RemoteIP : " + remoteIp + " ID : " + dto.getId() + "MESSAGE : " + message );
                 
-                loginService.updateMemberLoginData( dto );
-                loginService.insertAccessHistory( accessMap );
+                loginService.updateMemberLoginData( dto ); //failCount -> 0, lastLoginTime -> NOW()
+                loginService.insertAccessHistory( accessMap ); //insert AccessHistory
+                
                 
                 LifeCenterSessionController.sessionInvalidate( request );
                 
-                LifeCenterSessionController.setSession( request, "sesId",   dto.getId().toLowerCase() );
-                LifeCenterSessionController.setSession( request, "sesName", dto.getName() );
-                LifeCenterSessionController.setSession( request, "sesCenterCode", dto.getCenterCode() );
-                LifeCenterSessionController.setSession( request, "sesGroupIdx", String.valueOf( dto.getGroupIdx() ) );
+                LifeCenterSessionController.setSession( request, "sesId",   memberData.getId().toLowerCase() );
+                LifeCenterSessionController.setSession( request, "sesName", memberData.getName() );
+                LifeCenterSessionController.setSession( request, "sesCenterCode", memberData.getCenterCode() );
+                LifeCenterSessionController.setSession( request, "sesGroupIdx", String.valueOf( memberData.getGroupIdx() ) );
             }
         }
         

+ 2 - 2
src/main/webapp/WEB-INF/jsp/include/top.jsp

@@ -14,11 +14,11 @@
                 </a>
 
                 <a class="nav-link dropdown-toggle d-none d-sm-inline-block" href="#" data-toggle="dropdown">
-                    <span class="text-dark">홍길동 선생님</span>
+                    <span class="text-dark"><c:out value="${data._SES_NAME} 님 (${data._SES_ID})"/></span>
                 </a>
                 <div class="dropdown-menu dropdown-menu-right">
                     <a class="dropdown-item" href="pages-profile.html"><i class="align-middle mr-1" data-feather="user"></i> 정보변경</a>
-                    <a class="dropdown-item" href="#"><i class="align-middle mr-1" data-feather="pie-chart"></i> 로그아웃</a>
+                    <a class="dropdown-item" href="/login/logout"><i class="align-middle mr-1" data-feather="pie-chart"></i> 로그아웃</a>
                 </div>
             </li>
         </ul>