Merge pull request #43 from Chung10Kr/feature-005

Refactor Login and Schedule Management API to RESTful Design - Backend
main
eGovFrameSupport 2 years ago committed by GitHub
commit 10b55568b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -49,10 +49,9 @@ public class AuthenticInterceptor extends WebContentInterceptor {
log.debug("AuthenticInterceptor ================== ");
return true;
}
}
log.debug("AuthenticInterceptor Fail!!!!!!!!!!!!================== ");
// ModelAndView modelAndView = new ModelAndView("redirect:/uat/uia/egovLoginUsr.do");
ModelAndView modelAndView = new ModelAndView("redirect:http://localhost:3000/login");
throw new ModelAndViewDefiningException(modelAndView);
}

@ -122,6 +122,7 @@ public class EgovConfigAppCommon {
public CommonsMultipartResolver springRegularCommonsMultipartResolver() {
CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();
commonsMultipartResolver.setMaxUploadSize(100000000);
commonsMultipartResolver.setSupportedMethods("POST","PUT");
commonsMultipartResolver.setMaxInMemorySize(100000000);
return commonsMultipartResolver;
}
@ -133,6 +134,7 @@ public class EgovConfigAppCommon {
@Bean
public EgovMultipartResolver localMultiCommonsMultipartResolver() {
EgovMultipartResolver egovMultipartResolver = new EgovMultipartResolver();
egovMultipartResolver.setSupportedMethods("POST","PUT");
egovMultipartResolver.setMaxUploadSize(100000000);
egovMultipartResolver.setMaxInMemorySize(100000000);
return egovMultipartResolver;

@ -57,20 +57,17 @@ public class EgovConfigWebDispatcherServlet implements WebMvcConfigurer {
.addPathPatterns(
// "/cop/com/*.do",
// "/cop/bbs/*Master*.do",
"/uat/uia/*.do")
"/auth/*")
.excludePathPatterns(
"/uat/uia/actionLogin.do",
"/uat/uia/actionLoginAPI.do",
"/uat/uia/actionLoginJWT.do",
"/uat/uia/egovLoginUsr.do",
"/uat/uia/egovLoginUsrAPI.do",
"/uat/uia/actionLogoutAPI.do"
"/auth/login",
"/auth/login-jwt",
"/auth/logout"
);
registry.addInterceptor(new CustomAuthenticInterceptor())
.addPathPatterns(
"/**/*.do")
.excludePathPatterns(
"/uat/uia/**");
"/auth/**");
}
// -------------------------------------------------------------

@ -4,6 +4,7 @@ import egovframework.com.jwt.JwtAuthenticationEntryPoint;
import egovframework.com.jwt.JwtAuthenticationFilter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer;
@ -29,18 +30,22 @@ import java.util.Arrays;
@EnableWebSecurity
public class SecurityConfig {
//Http Methpd : Get 인증예외 List
private String[] AUTH_GET_WHITELIST = {
"/schedule/daily", //일별 일정 조회
"/schedule/week", //주간 일정 조회
"/schedule/{schdulId}", //일정 상세조회
};
// 인증 예외 List
private String[] AUTH_WHITELIST = {
"/",
"/login/**",
"/uat/uia/actionLoginJWT.do",//JWT 로그인
"/uat/uia/actionLoginAPI.do",//일반 로그인
"/auth/login-jwt",//JWT 로그인
"/auth/login",//일반 로그인
"/cmm/main/**.do", // 메인페이지
"/cmm/fms/FileDown.do", //파일 다운로드
"/cmm/fms/getImage.do", //갤러리 이미지보기
"/cop/smt/sim/egovIndvdlSchdulManageDailyListAPI.do", //일별 일정 조회
"/cop/smt/sim/egovIndvdlSchdulManageWeekListAPI.do", //주간 일정 조회
"/cop/smt/sim/egovIndvdlSchdulManageDetailAPI.do", //일정 상세조회
"/cop/bbs/selectUserBBSMasterInfAPI.do", //게시판 마스터 상세 조회
"/cop/bbs/selectBoardListAPI.do", //게시판 목록조회
@ -84,6 +89,7 @@ public class SecurityConfig {
.csrf(AbstractHttpConfigurer::disable)
.authorizeHttpRequests(authorize -> authorize
.antMatchers(AUTH_WHITELIST).permitAll()
.antMatchers(HttpMethod.GET,AUTH_GET_WHITELIST).permitAll()
.anyRequest().authenticated()
).sessionManagement((sessionManagement) ->
sessionManagement.sessionCreationPolicy(SessionCreationPolicy.STATELESS)

@ -11,18 +11,12 @@ import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.egovframe.rte.fdl.cmmn.exception.EgovBizException;
import org.egovframe.rte.fdl.cryptography.EgovCryptoService;
import org.egovframe.rte.fdl.property.EgovPropertyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springmodules.validation.commons.DefaultBeanValidator;
@ -107,9 +101,9 @@ public class EgovIndvdlSchdulManageApiController {
@ApiResponse(responseCode = "200", description = "조회 성공"),
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
})
@PostMapping(value = "/cop/smt/sim/egovIndvdlSchdulManageMonthListAPI.do")
@GetMapping(value = "/schedule/month")
public ResultVO EgovIndvdlSchdulManageMonthList(@AuthenticationPrincipal LoginVO loginVO, HttpServletRequest request,
@RequestBody Map<String, Object> commandMap) throws Exception {
@RequestParam Map<String, Object> commandMap) throws Exception {
ResultVO resultVO = new ResultVO();
Map<String, Object> resultMap = new HashMap<String, Object>();
@ -181,7 +175,7 @@ public class EgovIndvdlSchdulManageApiController {
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님"),
@ApiResponse(responseCode = "900", description = "입력값 무결성 오류")
})
@PostMapping(value = "/cop/smt/sim/egovIndvdlSchdulManageRegistActorAPI.do")
@PostMapping(value = "/schedule")
public ResultVO IndvdlSchdulManageRegistActor(
HttpServletRequest request,
final MultipartHttpServletRequest multiRequest,
@ -246,9 +240,9 @@ public class EgovIndvdlSchdulManageApiController {
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "조회 성공")
})
@PostMapping(value = "/cop/smt/sim/egovIndvdlSchdulManageDetailAPI.do")
@GetMapping(value = "/schedule/{schdulId}")
public ResultVO EgovIndvdlSchdulManageDetail(
@RequestBody Map<String, Object> commandMap,
@PathVariable("schdulId") String schdulId,
@AuthenticationPrincipal LoginVO user)
throws Exception {
@ -256,7 +250,7 @@ public class EgovIndvdlSchdulManageApiController {
Map<String, Object> resultMap = new HashMap<String, Object>();
IndvdlSchdulManageVO indvdlSchdulManageVO = new IndvdlSchdulManageVO();
indvdlSchdulManageVO.setSchdulId((String)commandMap.get("schdulId"));
indvdlSchdulManageVO.setSchdulId(schdulId);
//일정시작일자(시)
resultMap.put("schdulBgndeHH", getTimeHH());
@ -323,10 +317,10 @@ public class EgovIndvdlSchdulManageApiController {
@ApiResponse(responseCode = "200", description = "등록 성공"),
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
})
@DeleteMapping(value = "/cop/smt/sim/egovIndvdlSchdulManageDeleteAPI/{schdulId}.do")
public ResultVO EgovIndvdlSchdulManageDelete(HttpServletRequest request,
@PathVariable("schdulId") String schdulId)
throws Exception {
@DeleteMapping(value = "/schedule/{schdulId}")
public ResultVO EgovIndvdlSchdulManageDelete(
@PathVariable("schdulId") String schdulId
) throws Exception {
ResultVO resultVO = new ResultVO();
@ -361,19 +355,20 @@ public class EgovIndvdlSchdulManageApiController {
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님"),
@ApiResponse(responseCode = "900", description = "입력값 무결성 오류")
})
@PostMapping(value = "/cop/smt/sim/egovIndvdlSchdulManageModifyActorAPI.do")
@PutMapping(value = "/schedule/{schdulId}")
public ResultVO IndvdlSchdulManageModifyActor(
final MultipartHttpServletRequest multiRequest,
IndvdlSchdulManageVO indvdlSchdulManageVO,
BindingResult bindingResult,
@PathVariable("schdulId") String schdulId,
@AuthenticationPrincipal LoginVO user)
throws Exception {
ResultVO resultVO = new ResultVO();
Map<String, Object> resultMap = new HashMap<String, Object>();
//서버 validate 체크
indvdlSchdulManageVO.setSchdulId(schdulId);
beanValidator.validate(indvdlSchdulManageVO, bindingResult);
if (bindingResult.hasErrors()) {
@ -443,10 +438,8 @@ public class EgovIndvdlSchdulManageApiController {
@ApiResponse(responseCode = "200", description = "조회 성공"),
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
})
@PostMapping(value = "/cop/smt/sim/egovIndvdlSchdulManageDailyListAPI.do")
public ResultVO EgovIndvdlSchdulManageDailyList(
@RequestBody Map<String, Object> commandMap)
throws Exception {
@GetMapping(value = "/schedule/daily")
public ResultVO EgovIndvdlSchdulManageDailyList(@RequestParam Map<String, Object> commandMap) throws Exception {
ResultVO resultVO = new ResultVO();
Map<String, Object> resultMap = new HashMap<String, Object>();
@ -517,9 +510,9 @@ public class EgovIndvdlSchdulManageApiController {
@ApiResponse(responseCode = "200", description = "조회 성공"),
@ApiResponse(responseCode = "403", description = "인가된 사용자가 아님")
})
@PostMapping(value = "/cop/smt/sim/egovIndvdlSchdulManageWeekListAPI.do")
@GetMapping(value = "/schedule/week")
public ResultVO EgovIndvdlSchdulManageWeekList(
@RequestBody Map<String, Object> commandMap)
@RequestParam Map<String, Object> commandMap)
throws Exception {
ResultVO resultVO = new ResultVO();

@ -89,7 +89,7 @@ public class EgovLoginApiController {
@ApiResponse(responseCode = "200", description = "로그인 성공"),
@ApiResponse(responseCode = "300", description = "로그인 실패")
})
@PostMapping(value = "/uat/uia/actionLoginAPI.do", consumes = {MediaType.APPLICATION_JSON_VALUE , MediaType.TEXT_HTML_VALUE})
@PostMapping(value = "/auth/login", consumes = {MediaType.APPLICATION_JSON_VALUE , MediaType.TEXT_HTML_VALUE})
public HashMap<String, Object> actionLogin(@RequestBody LoginVO loginVO, HttpServletRequest request) throws Exception {
HashMap<String,Object> resultMap = new HashMap<String,Object>();
@ -121,7 +121,7 @@ public class EgovLoginApiController {
@ApiResponse(responseCode = "200", description = "로그인 성공"),
@ApiResponse(responseCode = "300", description = "로그인 실패")
})
@PostMapping(value = "/uat/uia/actionLoginJWT.do")
@PostMapping(value = "/auth/login-jwt")
public HashMap<String, Object> actionLoginJWT(@RequestBody LoginVO loginVO, HttpServletRequest request, ModelMap model) throws Exception {
HashMap<String, Object> resultMap = new HashMap<String, Object>();
@ -170,7 +170,7 @@ public class EgovLoginApiController {
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "로그아웃 성공"),
})
@GetMapping(value = "/uat/uia/actionLogoutAPI.do")
@GetMapping(value = "/auth/logout")
public ResultVO actionLogoutJSON(HttpServletRequest request, HttpServletResponse response) throws Exception {
ResultVO resultVO = new ResultVO();

@ -80,7 +80,7 @@ public class EgovLoginApiControllerTest {
HttpEntity request = new HttpEntity(params,headers);
TestRestTemplate rest = new TestRestTemplate();
ResponseEntity<HashMap> res = rest.exchange(this.SERVER_URL + "/uat/uia/actionLoginJWT.do", HttpMethod.POST,request , HashMap.class);
ResponseEntity<HashMap> res = rest.exchange(this.SERVER_URL + "/auth/login-jwt", HttpMethod.POST,request , HashMap.class);
assertThat( res.getStatusCode() ).isEqualTo( HttpStatus.OK );
HashMap<String,Object> body = (HashMap<String,Object>) res.getBody();

Loading…
Cancel
Save