Explorar o código

last commit ver1

shjung %!s(int64=3) %!d(string=hai) anos
pai
achega
27b85fa857

+ 5 - 0
pom.xml

@@ -328,6 +328,11 @@
             <version>0.97-incubator</version>
             <scope>compile</scope>
         </dependency>
+        <dependency>
+            <groupId>com.github.ulisesbocchio</groupId>
+            <artifactId>jasypt-spring-boot-starter</artifactId>
+            <version>3.0.4</version>
+        </dependency>
 
     </dependencies>
 

+ 3 - 2
src/main/java/com/its/api/aop/ApiHandlerInterceptor.java

@@ -1,5 +1,6 @@
 package com.its.api.aop;
 
+import com.its.api.webapp.config.WebConfig;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.lang.Nullable;
@@ -28,8 +29,8 @@ public class ApiHandlerInterceptor implements HandlerInterceptor {
                 //response.sendRedirect("/error.html");
                 return false;
             }
-            String userId = (String)session.getAttribute("userId");
-            String loginHms = (String)session.getAttribute("loginHms");
+            String userId = WebConfig.decUserId(session.getAttribute(WebConfig.USER_UUID));
+            String loginHms = (String)session.getAttribute(WebConfig.USER_TIME);
             log.error("preHandle: {}, {}", userId, loginHms);
         }
         //else {

+ 2 - 0
src/main/java/com/its/api/config/SwaggerConfig.java

@@ -2,6 +2,7 @@ package com.its.api.config;
 
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Profile;
 import org.springframework.http.HttpHeaders;
 import springfox.documentation.builders.ApiInfoBuilder;
 import springfox.documentation.builders.ParameterBuilder;
@@ -17,6 +18,7 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
 import java.util.ArrayList;
 import java.util.List;
 
+@Profile("dev|swagger")
 @Configuration
 @EnableSwagger2
 public class SwaggerConfig {

+ 16 - 3
src/main/java/com/its/api/webapp/config/WebConfig.java

@@ -12,8 +12,8 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 @Configuration
 public class WebConfig implements WebMvcConfigurer {
 
-    public static final String USER_UUID = "USER_UUID";
-    public static final String USER_TIME = "USER_TIME";
+    public static final String USER_UUID = "UUID";
+    public static final String USER_TIME = "TIME";
 
     private final ApiHandlerInterceptor apiHandlerInterceptor;
 
@@ -48,9 +48,22 @@ public class WebConfig implements WebMvcConfigurer {
 
         String separator = System.getProperty("file.separator");
         String mapDataDir = System.getProperty("user.dir")+separator+"MAPDATA/";
+        String downloadDir = System.getProperty("user.dir")+separator+"download/";
         registry.addResourceHandler("/MAPDATA/**")
                 .addResourceLocations("file:///" + mapDataDir)
-                //.setCachePeriod(60) // seconds
+        //.setCachePeriod(60) // seconds
         ;
+        registry.addResourceHandler("/download/**")
+                .addResourceLocations("file:///" + downloadDir)
+        //.setCachePeriod(60) // seconds
+        ;
+    }
+
+    public static String encUserId(String userId) {
+        return userId;
+    }
+    public static String decUserId(Object encUserId) {
+        String decUserId = (String)encUserId;
+        return decUserId;
     }
 }

+ 1 - 8
src/main/java/com/its/api/webapp/config/WebSecurityConfig.java

@@ -3,7 +3,6 @@ package com.its.api.webapp.config;
 import com.its.api.webapp.handler.LoginFailureHandler;
 import com.its.api.webapp.handler.LoginSuccessHandler;
 import com.its.api.webapp.security.WebPasswordEncoder;
-import com.its.api.webapp.security.WebSessionListener;
 import com.its.api.webapp.service.WebLoginService;
 import lombok.RequiredArgsConstructor;
 import org.springframework.context.annotation.Bean;
@@ -19,8 +18,6 @@ import org.springframework.security.core.session.SessionRegistry;
 import org.springframework.security.core.session.SessionRegistryImpl;
 import org.springframework.security.crypto.password.PasswordEncoder;
 
-import javax.servlet.http.HttpSessionListener;
-
 @Configuration
 @EnableWebSecurity
 @RequiredArgsConstructor
@@ -54,6 +51,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
                 //.antMatchers("/api/**").permitAll()
                 // 지도 URI 권한 설정하지
                 .antMatchers("/MAPDATA/**").permitAll()
+                .antMatchers("/download/**").permitAll()
                 // 페이지 권한 설정
                 .antMatchers("/application/facility/**", "/facility/**").permitAll()
                 .antMatchers("/application/wall/**", "/wall/**").permitAll()
@@ -136,9 +134,4 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
         return new SessionRegistryImpl();
     }
 
-    @Bean
-    public HttpSessionListener httpSessionListener(){
-        return new WebSessionListener();
-    }
-
 }

+ 12 - 12
src/main/java/com/its/api/webapp/controller/WebAppController.java → src/main/java/com/its/api/webapp/controller/WebController.java

@@ -1,7 +1,7 @@
 package com.its.api.webapp.controller;
 
-import com.its.api.its.model.dto.LoginDto;
 import com.its.api.webapp.config.WebConfig;
+import com.its.api.webapp.domain.Login;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
@@ -21,7 +21,7 @@ import javax.servlet.http.HttpServletResponse;
 @Slf4j
 @Controller
 @RequestMapping("")
-public class WebAppController {
+public class WebController {
 
     private final String operContext = "forward:/application/op";
     private final String wallContext = "forward:/application/wall";
@@ -50,6 +50,14 @@ public class WebAppController {
         return new ModelAndView("forward:/application/login/login.html");
     }
 
+    @PostMapping("/login.do")
+    public String postLogin(@ModelAttribute Login login, Model model) {
+        log.error("{}", login.toString());
+        log.error("{}", model.toString());
+        model.addAttribute("login", login);
+        return "success";
+    }
+
     @GetMapping({"/logout.do"})
     public ModelAndView getLogout(HttpServletRequest request, HttpServletResponse response) {
         log.error("getLogout: {}", request);
@@ -68,21 +76,13 @@ public class WebAppController {
         response.addCookie(cookie);
     }
 
-    @PostMapping("/login.do")
-    public String postLogin(@ModelAttribute LoginDto.LoginReqDto login, Model model) {
-        log.error("{}", login.toString());
-        log.error("{}", model.toString());
-        model.addAttribute("login", login);
-        return "success";
-    }
-
     /**
      * 시설물 관리 리다이렉션
      * @param request
      * @param response
      * @return
      */
-    @RequestMapping({"/facility", "/facility/", "/facility/index.do"})
+    @GetMapping({"/facility", "/facility/", "/facility/index.do"})
     public ModelAndView facility(HttpServletRequest request, HttpServletResponse response) {
         return new ModelAndView(this.fcltContext + "/index.html");
     }
@@ -93,7 +93,7 @@ public class WebAppController {
      * @param response
      * @return
      */
-    @RequestMapping({"/wall", "/wall/", "/wall/index.do"})
+    @GetMapping({"/wall", "/wall/", "/wall/index.do"})
     public ModelAndView wall(HttpServletRequest request, HttpServletResponse response) {
         return new ModelAndView(this.wallContext + "/index.html");
     }

+ 5 - 2
src/main/java/com/its/api/webapp/domain/Login.java

@@ -3,10 +3,13 @@ package com.its.api.webapp.domain;
 import lombok.Builder;
 import lombok.Data;
 
+import java.io.Serializable;
+
 @Data
 @Builder
-public class Login {
+public class Login  implements Serializable {
+    private static final long serialVersionUID = 1L;
 
-    private String userId;
+    private String username;
     private String password;
 }

+ 5 - 5
src/main/java/com/its/api/webapp/handler/LoginSuccessHandler.java

@@ -50,9 +50,9 @@ public class LoginSuccessHandler implements AuthenticationSuccessHandler {
         }
 
         ////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-        HttpSession session = request.getSession();
-        if (session != null) {
-        }
+//        HttpSession session = request.getSession();
+//        if (session != null) {
+//        }
 
         UserInfrVo userInfr = (UserInfrVo)authentication.getPrincipal();
         String remoteIp = ItsUtils.getHttpServletRemoteIP(request);
@@ -64,9 +64,9 @@ public class LoginSuccessHandler implements AuthenticationSuccessHandler {
                 .build();
         this.cnncHsRepo.insertData(cnncHs.getLoginHms(), cnncHs.getUserId(), cnncHs.getLogoutHms());
 
-        request.getSession().setAttribute(WebConfig.USER_UUID, cnncHs.getUserId());
+        request.getSession().setAttribute(WebConfig.USER_UUID, WebConfig.encUserId(cnncHs.getUserId()));
         request.getSession().setAttribute(WebConfig.USER_TIME, cnncHs.getLoginHms());
-        Cookie userIdCookie   = new Cookie(WebConfig.USER_UUID, cnncHs.getUserId());
+        Cookie userIdCookie   = new Cookie(WebConfig.USER_UUID, WebConfig.encUserId(cnncHs.getUserId()));
         Cookie loginHmsCookie = new Cookie(WebConfig.USER_TIME, cnncHs.getLoginHms());
         response.addCookie(userIdCookie);
         response.addCookie(loginHmsCookie);

+ 0 - 33
src/main/java/com/its/api/webapp/security/WebSessionListener.java

@@ -1,33 +0,0 @@
-package com.its.api.webapp.security;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.security.web.session.HttpSessionEventPublisher;
-
-import javax.servlet.http.HttpSession;
-import javax.servlet.http.HttpSessionEvent;
-
-@Slf4j
-public class WebSessionListener extends HttpSessionEventPublisher {
-
-    //세션이 생성될때 호출
-    @Override
-    public void sessionCreated(HttpSessionEvent se) {
-        HttpSession session = se.getSession();
-
-        if (session != null) {
-            session.setMaxInactiveInterval(60*5);
-            log.info("sessionCreated session.id: {}, setMaxInactiveInterval: {}, isNew: {} time:{}", session.getId(), session.getMaxInactiveInterval(), session.isNew(),session.getAttribute("time"));
-        }
-        super.sessionCreated(se);
-    }
-
-    //세션이 만료될때 호출
-    @Override
-    public  void sessionDestroyed(HttpSessionEvent se) {
-        HttpSession session = se.getSession();
-        if (session != null) {
-            log.info("sessionDestroyed session.id: {}, setMaxInactiveInterval: {}, isNew: {}", session.getId(), session.getMaxInactiveInterval(), session.isNew());
-        }
-        super.sessionDestroyed(se);
-    }
-}

+ 0 - 55
src/main/java/com/its/api/webapp/service/WebSessionManager.java

@@ -1,55 +0,0 @@
-package com.its.api.webapp.service;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.Arrays;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.ConcurrentHashMap;
-
-@Slf4j
-@Service
-public class WebSessionManager {
-    public static final String SESSION_COOKIE_NAME = "its-op-session-uuid";
-    private Map<String, Object> sessionStore = new ConcurrentHashMap<>();
-
-    public void createSession(Object value, HttpServletResponse response) {
-        //세션 생성
-        String sessionId = UUID.randomUUID().toString();
-        sessionStore.put(sessionId, value);
-
-        //쿠키 생성 후 저장
-        Cookie cookie = new Cookie(SESSION_COOKIE_NAME, sessionId);
-        response.addCookie(cookie);
-    }
-
-    public Object getSession(HttpServletRequest request) {
-        Cookie cookie = findCookie(request, SESSION_COOKIE_NAME);
-        if (cookie == null) {
-            return null;
-        }
-        return sessionStore.get(cookie.getValue());
-    }
-
-    public void expire(HttpServletRequest request) {
-        Cookie cookie = findCookie(request, SESSION_COOKIE_NAME);
-        if (cookie != null) {
-            sessionStore.remove(cookie.getValue());
-        }
-    }
-
-    public Cookie findCookie(HttpServletRequest request, String cookieName) {
-        if (request.getCookies() == null) {
-            return null;
-        }
-
-        return Arrays.stream(request.getCookies())
-                .filter(c -> c.getName().equals(cookieName))
-                .findAny()
-                .orElse(null);
-    }
-}