sonar 대응
This commit is contained in:
@@ -4,7 +4,6 @@ import com.eactive.httpmockserver.api.dto.MockRequest;
|
|||||||
import com.eactive.httpmockserver.api.entity.MockCondition;
|
import com.eactive.httpmockserver.api.entity.MockCondition;
|
||||||
import com.eactive.httpmockserver.api.entity.MockResponse;
|
import com.eactive.httpmockserver.api.entity.MockResponse;
|
||||||
import com.eactive.httpmockserver.api.entity.MockRoute;
|
import com.eactive.httpmockserver.api.entity.MockRoute;
|
||||||
import com.eactive.httpmockserver.api.repository.MockRouteRepository;
|
|
||||||
import com.eactive.httpmockserver.api.service.MockRouteService;
|
import com.eactive.httpmockserver.api.service.MockRouteService;
|
||||||
import com.jayway.jsonpath.JsonPath;
|
import com.jayway.jsonpath.JsonPath;
|
||||||
import com.jayway.jsonpath.PathNotFoundException;
|
import com.jayway.jsonpath.PathNotFoundException;
|
||||||
@@ -19,6 +18,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -35,7 +35,7 @@ public class MockApiController {
|
|||||||
|
|
||||||
|
|
||||||
@RequestMapping(value = "/{_:^(?!swagger-ui|mgmt|min-maps|plugins|dist|css|fonts|js|h2-console|img|pages|favicon.ico).*$}/**")
|
@RequestMapping(value = "/{_:^(?!swagger-ui|mgmt|min-maps|plugins|dist|css|fonts|js|h2-console|img|pages|favicon.ico).*$}/**")
|
||||||
public ResponseEntity<String> handleRequest(HttpServletRequest httpRequest) {
|
public ResponseEntity<String> handleRequest(HttpServletRequest httpRequest) throws IOException {
|
||||||
MockRequest request = new MockRequest(httpRequest);
|
MockRequest request = new MockRequest(httpRequest);
|
||||||
AntPathMatcher pathMatcher = new AntPathMatcher();
|
AntPathMatcher pathMatcher = new AntPathMatcher();
|
||||||
|
|
||||||
@@ -51,7 +51,7 @@ public class MockApiController {
|
|||||||
try {
|
try {
|
||||||
Thread.sleep(matchingResponse.getDelay());
|
Thread.sleep(matchingResponse.getDelay());
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
e.printStackTrace();
|
logger.error("Error while delaying response", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
HttpHeaders responseHeaders = new HttpHeaders();
|
HttpHeaders responseHeaders = new HttpHeaders();
|
||||||
@@ -98,34 +98,59 @@ public class MockApiController {
|
|||||||
|
|
||||||
private boolean isRequestMatching(List<MockCondition> conditions, MockRequest request, Map<String, String> pathVariables) {
|
private boolean isRequestMatching(List<MockCondition> conditions, MockRequest request, Map<String, String> pathVariables) {
|
||||||
|
|
||||||
if (conditions == null || conditions.size() == 0) {
|
if (conditions == null) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (MockCondition condition : conditions) {
|
for (MockCondition condition : conditions) {
|
||||||
if (condition.getType().equalsIgnoreCase("query")) {
|
switch (condition.getType().toLowerCase()) {
|
||||||
if(!condition.getValue().equals(request.getParam(condition.getKey()))){
|
case "query":
|
||||||
return false;
|
if (!isQueryMatching(condition, request)) {
|
||||||
}
|
return false;
|
||||||
} else if (condition.getType().equalsIgnoreCase("header")) {
|
}
|
||||||
if (!condition.getValue().equals(request.getHeader(condition.getKey()))){
|
break;
|
||||||
return false;
|
case "header":
|
||||||
}
|
if (!isHeaderMatching(condition, request)) {
|
||||||
} else if (condition.getType().equalsIgnoreCase("path")) {
|
return false;
|
||||||
if (!condition.getValue().equals(pathVariables.get(condition.getKey()))){
|
}
|
||||||
return false;
|
break;
|
||||||
}
|
case "path":
|
||||||
} else if (condition.getType().equalsIgnoreCase("jsonpath")) {
|
if (!isPathMatching(condition, pathVariables)) {
|
||||||
try{
|
return false;
|
||||||
Object value = JsonPath.read(request.getBody(), condition.getKey());
|
}
|
||||||
return value.toString().equals(condition.getValue());
|
break;
|
||||||
}catch(PathNotFoundException e) {
|
case "jsonpath":
|
||||||
return false;
|
if (!isJsonPathMatching(condition, request)) {
|
||||||
}
|
return false;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isQueryMatching(MockCondition condition, MockRequest request) {
|
||||||
|
return condition.getValue().equals(request.getParam(condition.getKey()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isHeaderMatching(MockCondition condition, MockRequest request) {
|
||||||
|
return condition.getValue().equals(request.getHeader(condition.getKey()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isPathMatching(MockCondition condition, Map<String, String> pathVariables) {
|
||||||
|
return condition.getValue().equals(pathVariables.get(condition.getKey()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isJsonPathMatching(MockCondition condition, MockRequest request) {
|
||||||
|
try {
|
||||||
|
Object value = JsonPath.read(request.getBody(), condition.getKey());
|
||||||
|
return value.toString().equals(condition.getValue());
|
||||||
|
} catch (PathNotFoundException e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+10
-7
@@ -17,11 +17,14 @@ import org.springframework.validation.Validator;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping("/mgmt/routes")
|
@RequestMapping("/mgmt/routes")
|
||||||
public class MockRouteMgmtController {
|
public class MockRouteMgmtController {
|
||||||
|
|
||||||
|
private static final String MOCK_ROUTE = "mockRoute";
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public void init() {
|
public void init() {
|
||||||
mockRouteService.initAllRoutes();
|
mockRouteService.initAllRoutes();
|
||||||
@@ -56,7 +59,7 @@ public class MockRouteMgmtController {
|
|||||||
MockResponseDTO defaultResponse = new MockResponseDTO();
|
MockResponseDTO defaultResponse = new MockResponseDTO();
|
||||||
defaultResponse.setDefaultResponse("true");
|
defaultResponse.setDefaultResponse("true");
|
||||||
defaultRoute.getResponses().add(defaultResponse);
|
defaultRoute.getResponses().add(defaultResponse);
|
||||||
model.addAttribute("mockRoute", defaultRoute);
|
model.addAttribute(MOCK_ROUTE, defaultRoute);
|
||||||
return MOCK_ROUTE_EDIT;
|
return MOCK_ROUTE_EDIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -65,7 +68,7 @@ public class MockRouteMgmtController {
|
|||||||
|
|
||||||
MockRoute found = mockRouteService.findById(id);
|
MockRoute found = mockRouteService.findById(id);
|
||||||
|
|
||||||
model.addAttribute("mockRoute", mockRouteMapper.map(found));
|
model.addAttribute(MOCK_ROUTE, mockRouteMapper.map(found));
|
||||||
return MOCK_ROUTE_EDIT;
|
return MOCK_ROUTE_EDIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -79,7 +82,7 @@ public class MockRouteMgmtController {
|
|||||||
validator.validate(dto, bindingResult);
|
validator.validate(dto, bindingResult);
|
||||||
|
|
||||||
if (bindingResult.hasErrors()) {
|
if (bindingResult.hasErrors()) {
|
||||||
model.addAttribute("mockRoute", dto);
|
model.addAttribute(MOCK_ROUTE, dto);
|
||||||
return MOCK_ROUTE_EDIT;
|
return MOCK_ROUTE_EDIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -102,7 +105,7 @@ public class MockRouteMgmtController {
|
|||||||
validator.validate(dto, bindingResult);
|
validator.validate(dto, bindingResult);
|
||||||
|
|
||||||
if (bindingResult.hasErrors()) {
|
if (bindingResult.hasErrors()) {
|
||||||
model.addAttribute("mockRoute", dto);
|
model.addAttribute(MOCK_ROUTE, dto);
|
||||||
return MOCK_ROUTE_EDIT;
|
return MOCK_ROUTE_EDIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,10 +117,10 @@ public class MockRouteMgmtController {
|
|||||||
|
|
||||||
|
|
||||||
@PostMapping("/delete.do")
|
@PostMapping("/delete.do")
|
||||||
public String delete(@ModelAttribute MockRouteSearch modelSearch) {
|
public String delete(@RequestParam("checkedIdForDel") List<String> ids) {
|
||||||
modelSearch.getCheckedIdForDel().forEach(id -> {
|
for (String id : ids) {
|
||||||
mockRouteService.deleteById(Long.parseLong(id));
|
mockRouteService.deleteById(Long.parseLong(id));
|
||||||
});
|
}
|
||||||
mockRouteService.initAllRoutes();
|
mockRouteService.initAllRoutes();
|
||||||
return MOCK_ROUTE_LIST_VIEW;
|
return MOCK_ROUTE_LIST_VIEW;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ public class MockRequest {
|
|||||||
return queryParams;
|
return queryParams;
|
||||||
}
|
}
|
||||||
|
|
||||||
public MockRequest(HttpServletRequest request) {
|
public MockRequest(HttpServletRequest request) throws IOException {
|
||||||
this.method = request.getMethod();
|
this.method = request.getMethod();
|
||||||
this.uri = request.getRequestURI();
|
this.uri = request.getRequestURI();
|
||||||
this.headers = Collections.list(request.getHeaderNames()).stream()
|
this.headers = Collections.list(request.getHeaderNames()).stream()
|
||||||
@@ -35,11 +35,7 @@ public class MockRequest {
|
|||||||
|
|
||||||
this.params = parseQueryString(request);
|
this.params = parseQueryString(request);
|
||||||
|
|
||||||
try {
|
this.body = request.getReader().lines().collect(Collectors.joining(System.lineSeparator()));
|
||||||
this.body = request.getReader().lines().collect(Collectors.joining(System.lineSeparator()));
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private String uri;
|
private String uri;
|
||||||
|
|||||||
@@ -13,8 +13,6 @@ public class MockRouteSearch implements BaseSearch<MockRoute> {
|
|||||||
|
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
private List<String> checkedIdForDel;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SearchModel> buildSearchCondition() {
|
public List<SearchModel> buildSearchCondition() {
|
||||||
List<SearchModel> models = new ArrayList<>();
|
List<SearchModel> models = new ArrayList<>();
|
||||||
@@ -30,11 +28,4 @@ public class MockRouteSearch implements BaseSearch<MockRoute> {
|
|||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> getCheckedIdForDel() {
|
|
||||||
return checkedIdForDel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCheckedIdForDel(List<String> checkedIdForDel) {
|
|
||||||
this.checkedIdForDel = checkedIdForDel;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -73,8 +73,4 @@ public class MockRoute {
|
|||||||
this.description = description;
|
this.description = description;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateFields(MockRoute update) {
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,23 +77,26 @@ public abstract class MockRouteMapper {
|
|||||||
public List<MockHeaderDTO> mapHeadersToList(Map<String, String> headers) {
|
public List<MockHeaderDTO> mapHeadersToList(Map<String, String> headers) {
|
||||||
List<MockHeaderDTO> list = new ArrayList<>();
|
List<MockHeaderDTO> list = new ArrayList<>();
|
||||||
if (headers != null) {
|
if (headers != null) {
|
||||||
headers.forEach((key, value) -> {
|
for (Map.Entry<String, String> entry : headers.entrySet()) {
|
||||||
|
String key = entry.getKey();
|
||||||
|
String value = entry.getValue();
|
||||||
MockHeaderDTO header = new MockHeaderDTO();
|
MockHeaderDTO header = new MockHeaderDTO();
|
||||||
header.setKey(key);
|
header.setKey(key);
|
||||||
header.setValue(value);
|
header.setValue(value);
|
||||||
list.add(header);
|
list.add(header);
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Named("mapHeadersToMap")
|
@Named("mapHeadersToMap")
|
||||||
public Map<String, String> mapHeadersToMap(List<MockHeaderDTO> headers) {
|
public Map<String, String> mapHeadersToMap(List<MockHeaderDTO> headers) {
|
||||||
Map<String, String> map = new HashMap<>();
|
Map<String, String> map = new HashMap<>();
|
||||||
if (headers != null) {
|
if (headers != null) {
|
||||||
headers.forEach(header -> {
|
for (MockHeaderDTO header : headers) {
|
||||||
map.put(header.getKey(), header.getValue());
|
map.put(header.getKey(), header.getValue());
|
||||||
});
|
}
|
||||||
}
|
}
|
||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,11 +13,8 @@ import org.springframework.data.domain.Pageable;
|
|||||||
import org.springframework.data.jpa.domain.Specification;
|
import org.springframework.data.jpa.domain.Specification;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.persistence.EntityManager;
|
|
||||||
import javax.persistence.PersistenceContext;
|
|
||||||
import javax.transaction.Transactional;
|
import javax.transaction.Transactional;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.sql.Array;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -30,10 +27,7 @@ public class MockRouteService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
MockRouteRepository mockRouteRepository;
|
MockRouteRepository mockRouteRepository;
|
||||||
|
|
||||||
@PersistenceContext
|
private List<MockRoute> allRoutes = new ArrayList<>();
|
||||||
private EntityManager entityManager;
|
|
||||||
|
|
||||||
private List<MockRoute> allRoutes = new ArrayList<MockRoute>();
|
|
||||||
|
|
||||||
public List<MockRoute> getAllRoutes() {
|
public List<MockRoute> getAllRoutes() {
|
||||||
return allRoutes;
|
return allRoutes;
|
||||||
@@ -116,7 +110,6 @@ public class MockRouteService {
|
|||||||
}
|
}
|
||||||
Hibernate.initialize(response);
|
Hibernate.initialize(response);
|
||||||
}
|
}
|
||||||
// entityManager.detach(route);
|
|
||||||
try {
|
try {
|
||||||
MockRoute cloned = (MockRoute) BeanUtils.cloneBean(route);
|
MockRoute cloned = (MockRoute) BeanUtils.cloneBean(route);
|
||||||
allRoutes.add(cloned);
|
allRoutes.add(cloned);
|
||||||
|
|||||||
@@ -2,9 +2,9 @@ package com.eactive.httpmockserver.client.controller;
|
|||||||
|
|
||||||
import com.eactive.httpmockserver.client.dto.ApiRequestDTO;
|
import com.eactive.httpmockserver.client.dto.ApiRequestDTO;
|
||||||
import com.eactive.httpmockserver.client.dto.ApiResponse;
|
import com.eactive.httpmockserver.client.dto.ApiResponse;
|
||||||
|
import com.eactive.httpmockserver.client.service.NettyApiClient;
|
||||||
import com.eactive.httpmockserver.server.entity.Server;
|
import com.eactive.httpmockserver.server.entity.Server;
|
||||||
import com.eactive.httpmockserver.server.entity.ServerRepository;
|
import com.eactive.httpmockserver.server.entity.ServerRepository;
|
||||||
import com.eactive.httpmockserver.client.service.NettyApiClient;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.ui.ModelMap;
|
import org.springframework.ui.ModelMap;
|
||||||
|
|||||||
+20
-12
@@ -6,9 +6,9 @@ import com.eactive.httpmockserver.client.entity.ApiCollection;
|
|||||||
import com.eactive.httpmockserver.client.entity.ApiRequestInfo;
|
import com.eactive.httpmockserver.client.entity.ApiRequestInfo;
|
||||||
import com.eactive.httpmockserver.client.mapper.ApiRequestMapper;
|
import com.eactive.httpmockserver.client.mapper.ApiRequestMapper;
|
||||||
import com.eactive.httpmockserver.client.service.ApiRequestMgmtService;
|
import com.eactive.httpmockserver.client.service.ApiRequestMgmtService;
|
||||||
import com.eactive.httpmockserver.common.security.CurrentUser;
|
import com.eactive.httpmockserver.common.util.SecurityUtil;
|
||||||
import com.eactive.httpmockserver.user.entity.StaffUser;
|
import com.eactive.httpmockserver.user.entity.StaffUser;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import com.eactive.httpmockserver.user.service.UserService;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
@@ -17,28 +17,36 @@ import java.util.List;
|
|||||||
@RestController
|
@RestController
|
||||||
public class ApiRequestMgmtController {
|
public class ApiRequestMgmtController {
|
||||||
|
|
||||||
@Autowired
|
private static final String SUCCESS = "success";
|
||||||
ApiRequestMgmtService apiRequestMgmtService;
|
ApiRequestMgmtService apiRequestMgmtService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
ApiRequestMapper apiRequestMapper;
|
ApiRequestMapper apiRequestMapper;
|
||||||
|
|
||||||
|
UserService userService;
|
||||||
|
|
||||||
|
public ApiRequestMgmtController(ApiRequestMgmtService apiRequestMgmtService, ApiRequestMapper apiRequestMapper, UserService userService) {
|
||||||
|
this.apiRequestMgmtService = apiRequestMgmtService;
|
||||||
|
this.apiRequestMapper = apiRequestMapper;
|
||||||
|
this.userService = userService;
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping("/mgmt/collections/list.do")
|
@GetMapping("/mgmt/collections/list.do")
|
||||||
public ResponseEntity<List<ApiCollectionDTO>> listApiRequests(@CurrentUser StaffUser user) {
|
public ResponseEntity<List<ApiCollectionDTO>> listApiRequests() {
|
||||||
|
StaffUser user = userService.findByEsntlId(SecurityUtil.getCurrentUserEsntlId());
|
||||||
List<ApiCollection> collections = apiRequestMgmtService.getMyApis(user);
|
List<ApiCollection> collections = apiRequestMgmtService.getMyApis(user);
|
||||||
return ResponseEntity.ok(apiRequestMapper.mapCollections(collections));
|
return ResponseEntity.ok(apiRequestMapper.mapCollections(collections));
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/mgmt/collections/create.do")
|
@PostMapping("/mgmt/collections/create.do")
|
||||||
public ResponseEntity<String> createApiCollection(
|
public ResponseEntity<String> createApiCollection(
|
||||||
@CurrentUser StaffUser user,
|
|
||||||
@RequestBody ApiCollectionDTO dto) {
|
@RequestBody ApiCollectionDTO dto) {
|
||||||
|
|
||||||
ApiCollection collection = apiRequestMapper.map(dto);
|
ApiCollection collection = apiRequestMapper.map(dto);
|
||||||
|
StaffUser user = userService.findByEsntlId(SecurityUtil.getCurrentUserEsntlId());
|
||||||
collection.setOwner(user);
|
collection.setOwner(user);
|
||||||
|
|
||||||
apiRequestMgmtService.createNewApiCollection(collection);
|
apiRequestMgmtService.createNewApiCollection(collection);
|
||||||
return ResponseEntity.ok("success");
|
return ResponseEntity.ok(SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -46,20 +54,20 @@ public class ApiRequestMgmtController {
|
|||||||
public ResponseEntity<String> updateApiCollection(@RequestBody ApiCollectionDTO dto) {
|
public ResponseEntity<String> updateApiCollection(@RequestBody ApiCollectionDTO dto) {
|
||||||
ApiCollection updated = apiRequestMapper.map(dto);
|
ApiCollection updated = apiRequestMapper.map(dto);
|
||||||
apiRequestMgmtService.updateApiCollection(updated.getId(), updated);
|
apiRequestMgmtService.updateApiCollection(updated.getId(), updated);
|
||||||
return ResponseEntity.ok("success");
|
return ResponseEntity.ok(SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/mgmt/collections/delete.do")
|
@PostMapping("/mgmt/collections/delete.do")
|
||||||
public ResponseEntity<String> deleteApiCollection(@RequestBody ApiCollectionDTO dto) {
|
public ResponseEntity<String> deleteApiCollection(@RequestBody ApiCollectionDTO dto) {
|
||||||
apiRequestMgmtService.deleteApiCollection(dto.getId());
|
apiRequestMgmtService.deleteApiCollection(dto.getId());
|
||||||
return ResponseEntity.ok("success");
|
return ResponseEntity.ok(SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/mgmt/collections/{id}/apis/save.do")
|
@PostMapping("/mgmt/collections/{id}/apis/save.do")
|
||||||
public ResponseEntity<String> addApiToCollection(@PathVariable(name = "id") String id,
|
public ResponseEntity<String> addApiToCollection(@PathVariable(name = "id") String id,
|
||||||
@RequestBody ApiRequestDTO dto,
|
@RequestBody ApiRequestDTO dto) {
|
||||||
@CurrentUser StaffUser user) {
|
|
||||||
ApiRequestInfo apiRequestInfo = apiRequestMapper.map(dto);
|
ApiRequestInfo apiRequestInfo = apiRequestMapper.map(dto);
|
||||||
|
StaffUser user = userService.findByEsntlId(SecurityUtil.getCurrentUserEsntlId());
|
||||||
apiRequestInfo.setOwner(user);
|
apiRequestInfo.setOwner(user);
|
||||||
String apiId = apiRequestMgmtService.saveApiToCollection(id, apiRequestInfo);
|
String apiId = apiRequestMgmtService.saveApiToCollection(id, apiRequestInfo);
|
||||||
return ResponseEntity.ok(apiId);
|
return ResponseEntity.ok(apiId);
|
||||||
@@ -69,7 +77,7 @@ public class ApiRequestMgmtController {
|
|||||||
public ResponseEntity<String> removeApiFromCollection(@PathVariable(name = "id") String id,
|
public ResponseEntity<String> removeApiFromCollection(@PathVariable(name = "id") String id,
|
||||||
@RequestBody ApiRequestDTO dto) {
|
@RequestBody ApiRequestDTO dto) {
|
||||||
apiRequestMgmtService.removeApiFromCollection(id, dto.getId());
|
apiRequestMgmtService.removeApiFromCollection(id, dto.getId());
|
||||||
return ResponseEntity.ok("success");
|
return ResponseEntity.ok(SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -119,12 +119,4 @@ public class ApiRequestInfo {
|
|||||||
return Objects.hash(id, server, owner, method, path, headers, queryParams, requestBody);
|
return Objects.hash(id, server, owner, method, path, headers, queryParams, requestBody);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
ApiRequestInfo a= new ApiRequestInfo();
|
|
||||||
a.setId("a");
|
|
||||||
ApiRequestInfo b = new ApiRequestInfo();
|
|
||||||
a.setId("a");
|
|
||||||
|
|
||||||
System.out.println(a.equals(b));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,9 @@
|
|||||||
package com.eactive.httpmockserver.client.repository;
|
package com.eactive.httpmockserver.client.repository;
|
||||||
|
|
||||||
import com.eactive.httpmockserver.client.entity.ApiCollection;
|
|
||||||
import com.eactive.httpmockserver.client.entity.ApiRequestInfo;
|
import com.eactive.httpmockserver.client.entity.ApiRequestInfo;
|
||||||
import com.eactive.httpmockserver.user.entity.StaffUser;
|
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public interface ApiRequestRepository extends JpaRepository<ApiRequestInfo, String>, JpaSpecificationExecutor<ApiRequestInfo> {
|
public interface ApiRequestRepository extends JpaRepository<ApiRequestInfo, String>, JpaSpecificationExecutor<ApiRequestInfo> {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,10 @@ import java.util.UUID;
|
|||||||
@Transactional
|
@Transactional
|
||||||
public class ApiRequestMgmtService {
|
public class ApiRequestMgmtService {
|
||||||
|
|
||||||
|
private static final String API_COLLECTION_NOT_FOUND = "api collection[%s] not found";
|
||||||
|
|
||||||
|
private static final String API_NOT_FOUND = "api collection[%s] not found";
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
ApiCollectionRepository apiCollectionRepository;
|
ApiCollectionRepository apiCollectionRepository;
|
||||||
|
|
||||||
@@ -30,9 +34,9 @@ public class ApiRequestMgmtService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void deleteApiCollection(String id) {
|
public void deleteApiCollection(String id) {
|
||||||
ApiCollection collection = apiCollectionRepository.findById(id).orElseThrow(() -> new NotFoundException("api collection[" + id + "] not found"));
|
ApiCollection collection = apiCollectionRepository.findById(id).orElseThrow(() -> new NotFoundException(String.format(API_COLLECTION_NOT_FOUND, id)));
|
||||||
|
|
||||||
if (collection.getApis().size()>0){
|
if (!collection.getApis().isEmpty()) {
|
||||||
throw new RuntimeException("api collection[" + id + "] is not empty");
|
throw new RuntimeException("api collection[" + id + "] is not empty");
|
||||||
}
|
}
|
||||||
apiCollectionRepository.deleteById(id);
|
apiCollectionRepository.deleteById(id);
|
||||||
@@ -44,20 +48,20 @@ public class ApiRequestMgmtService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void updateApiCollection(String id, ApiCollection updated) {
|
public void updateApiCollection(String id, ApiCollection updated) {
|
||||||
ApiCollection collection = apiCollectionRepository.findById(id).orElseThrow(() -> new NotFoundException("api collection[" + id + "] not found"));
|
ApiCollection collection = apiCollectionRepository.findById(id).orElseThrow(() -> new NotFoundException(String.format(API_COLLECTION_NOT_FOUND, id)));
|
||||||
collection.setName(updated.getName());
|
collection.setName(updated.getName());
|
||||||
apiCollectionRepository.save(collection);
|
apiCollectionRepository.save(collection);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String saveApiToCollection(String id, ApiRequestInfo api) {
|
public String saveApiToCollection(String id, ApiRequestInfo api) {
|
||||||
ApiCollection collection = apiCollectionRepository.findById(id).orElseThrow(() -> new NotFoundException("api collection[" + id + "] not found"));
|
ApiCollection collection = apiCollectionRepository.findById(id).orElseThrow(() -> new NotFoundException(String.format(API_COLLECTION_NOT_FOUND, id)));
|
||||||
|
|
||||||
if (StringUtils.isEmpty(api.getId())) {
|
if (StringUtils.isEmpty(api.getId())) {
|
||||||
api.setId(UUID.randomUUID().toString());
|
api.setId(UUID.randomUUID().toString());
|
||||||
apiRequestRepository.save(api);
|
apiRequestRepository.save(api);
|
||||||
} else {
|
} else {
|
||||||
String apiId = api.getId();
|
String apiId = api.getId();
|
||||||
ApiRequestInfo existing = apiRequestRepository.findById(apiId).orElseThrow(() -> new NotFoundException("api[" + apiId + "] not found"));
|
ApiRequestInfo existing = apiRequestRepository.findById(apiId).orElseThrow(() -> new NotFoundException(String.format(API_NOT_FOUND, apiId)));
|
||||||
existing.setName(api.getName());
|
existing.setName(api.getName());
|
||||||
existing.setMethod(api.getMethod());
|
existing.setMethod(api.getMethod());
|
||||||
existing.setPath(api.getPath());
|
existing.setPath(api.getPath());
|
||||||
@@ -79,8 +83,8 @@ public class ApiRequestMgmtService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void removeApiFromCollection(String id, String apiId) {
|
public void removeApiFromCollection(String id, String apiId) {
|
||||||
ApiCollection collection = apiCollectionRepository.findById(id).orElseThrow(() -> new NotFoundException("api collection[" + id + "] not found"));
|
ApiCollection collection = apiCollectionRepository.findById(id).orElseThrow(() -> new NotFoundException(String.format(API_COLLECTION_NOT_FOUND, id)));
|
||||||
ApiRequestInfo api = apiRequestRepository.findById(apiId).orElseThrow(() -> new NotFoundException("api[" + apiId + "] not found"));
|
ApiRequestInfo api = apiRequestRepository.findById(apiId).orElseThrow(() -> new NotFoundException(String.format(API_NOT_FOUND, apiId)));
|
||||||
|
|
||||||
collection.getApis().remove(api);
|
collection.getApis().remove(api);
|
||||||
apiCollectionRepository.save(collection);
|
apiCollectionRepository.save(collection);
|
||||||
|
|||||||
+2
-2
@@ -20,8 +20,8 @@ public class ApiRequestMigrationService {
|
|||||||
public void migrate() {
|
public void migrate() {
|
||||||
apiRequestRepository.findAll().forEach(apiRequest -> {
|
apiRequestRepository.findAll().forEach(apiRequest -> {
|
||||||
|
|
||||||
apiRequest.setHeaders(apiRequest.getHeaders().replaceAll("=", "::"));
|
apiRequest.setHeaders(apiRequest.getHeaders().replace("=", "::"));
|
||||||
apiRequest.setQueryParams(apiRequest.getQueryParams().replaceAll("=", "::"));
|
apiRequest.setQueryParams(apiRequest.getQueryParams().replace("=", "::"));
|
||||||
|
|
||||||
apiRequestRepository.save(apiRequest);
|
apiRequestRepository.save(apiRequest);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
package com.eactive.httpmockserver.client.service;
|
package com.eactive.httpmockserver.client.service;
|
||||||
|
|
||||||
import com.eactive.httpmockserver.client.dto.ApiRequestKeyValueDTO;
|
|
||||||
import com.eactive.httpmockserver.client.dto.ApiRequestDTO;
|
import com.eactive.httpmockserver.client.dto.ApiRequestDTO;
|
||||||
|
import com.eactive.httpmockserver.client.dto.ApiRequestKeyValueDTO;
|
||||||
import com.eactive.httpmockserver.client.dto.ApiResponse;
|
import com.eactive.httpmockserver.client.dto.ApiResponse;
|
||||||
|
import com.eactive.httpmockserver.common.exception.ServerNotFoundException;
|
||||||
import com.eactive.httpmockserver.server.entity.Server;
|
import com.eactive.httpmockserver.server.entity.Server;
|
||||||
import com.eactive.httpmockserver.server.entity.ServerRepository;
|
import com.eactive.httpmockserver.server.entity.ServerRepository;
|
||||||
import io.netty.bootstrap.Bootstrap;
|
import io.netty.bootstrap.Bootstrap;
|
||||||
@@ -24,6 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.net.ssl.SSLException;
|
import javax.net.ssl.SSLException;
|
||||||
|
import java.nio.file.Paths;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@@ -32,9 +34,9 @@ public class NettyApiClient {
|
|||||||
@Autowired
|
@Autowired
|
||||||
ServerRepository serverRepository;
|
ServerRepository serverRepository;
|
||||||
|
|
||||||
public CompletableFuture<ApiResponse> handleRequest(ApiRequestDTO apiRequest) throws Exception {
|
public CompletableFuture<ApiResponse> handleRequest(ApiRequestDTO apiRequest) throws InterruptedException {
|
||||||
|
|
||||||
Server server = serverRepository.findById(apiRequest.getServer()).orElseThrow(() -> new Exception("Server not found"));
|
Server server = serverRepository.findById(apiRequest.getServer()).orElseThrow(() -> new ServerNotFoundException("Server not found"));
|
||||||
String host = server.getHostname();
|
String host = server.getHostname();
|
||||||
int port = server.getPort();
|
int port = server.getPort();
|
||||||
|
|
||||||
@@ -74,12 +76,9 @@ public class NettyApiClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
String basePath = server.getBasePath();
|
String basePath = server.getBasePath();
|
||||||
if(!apiRequest.getPath().startsWith("/")){
|
String fullPath = Paths.get(basePath, apiRequest.getPath()).toString();
|
||||||
basePath = basePath + "/";
|
|
||||||
}
|
|
||||||
|
|
||||||
HttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.valueOf(apiRequest.getMethod()),
|
HttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.valueOf(apiRequest.getMethod()), fullPath, content);
|
||||||
(basePath + apiRequest.getPath()).replaceAll("//", "/"), content);
|
|
||||||
|
|
||||||
request.headers().set("Host", host);
|
request.headers().set("Host", host);
|
||||||
request.headers().set("Connection", HttpHeaderValues.CLOSE);
|
request.headers().set("Connection", HttpHeaderValues.CLOSE);
|
||||||
@@ -89,9 +88,9 @@ public class NettyApiClient {
|
|||||||
request.headers().set(HttpHeaderNames.CONTENT_LENGTH, content.readableBytes());
|
request.headers().set(HttpHeaderNames.CONTENT_LENGTH, content.readableBytes());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (apiRequest.getHeaders().size() > 0) {
|
if (!apiRequest.getHeaders().isEmpty()) {
|
||||||
HttpHeaders customHeaders = new DefaultHttpHeaders();
|
HttpHeaders customHeaders = new DefaultHttpHeaders();
|
||||||
apiRequest.getHeaders().stream().filter(ApiRequestKeyValueDTO::isEnabled).forEach((header) -> {
|
apiRequest.getHeaders().stream().filter(ApiRequestKeyValueDTO::isEnabled).forEach(header -> {
|
||||||
if(StringUtils.isNotEmpty(header.getKey()) && StringUtils.isNotEmpty(header.getValue())){
|
if(StringUtils.isNotEmpty(header.getKey()) && StringUtils.isNotEmpty(header.getValue())){
|
||||||
customHeaders.set(header.getKey(), header.getValue());
|
customHeaders.set(header.getKey(), header.getValue());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package com.eactive.httpmockserver.common.exception;
|
||||||
|
|
||||||
|
public class ServerNotFoundException extends RuntimeException {
|
||||||
|
public ServerNotFoundException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
package com.eactive.httpmockserver.common.security;
|
|
||||||
|
|
||||||
import java.lang.annotation.*;
|
|
||||||
|
|
||||||
@Target({ElementType.PARAMETER})
|
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
|
||||||
@Documented
|
|
||||||
public @interface CurrentUser {
|
|
||||||
}
|
|
||||||
-49
@@ -1,49 +0,0 @@
|
|||||||
package com.eactive.httpmockserver.common.security;
|
|
||||||
|
|
||||||
import com.eactive.httpmockserver.user.entity.StaffUser;
|
|
||||||
import com.eactive.httpmockserver.user.entity.User;
|
|
||||||
import com.eactive.httpmockserver.user.service.UserService;
|
|
||||||
import com.eactive.httpmockserver.common.exception.NotFoundException;
|
|
||||||
import com.eactive.httpmockserver.common.exception.UserNotLoginException;
|
|
||||||
import org.apache.commons.beanutils.PropertyUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.core.MethodParameter;
|
|
||||||
import org.springframework.security.core.Authentication;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
import org.springframework.web.bind.support.WebDataBinderFactory;
|
|
||||||
import org.springframework.web.context.request.NativeWebRequest;
|
|
||||||
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
|
|
||||||
import org.springframework.web.method.support.ModelAndViewContainer;
|
|
||||||
|
|
||||||
import java.lang.reflect.InvocationTargetException;
|
|
||||||
|
|
||||||
public class CurrentUserArgumentResolver implements HandlerMethodArgumentResolver {
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private UserService userService;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean supportsParameter(MethodParameter parameter) {
|
|
||||||
return parameter.getParameterAnnotation(CurrentUser.class) != null &&
|
|
||||||
parameter.getParameterType().equals(StaffUser.class);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Transactional
|
|
||||||
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer,
|
|
||||||
NativeWebRequest webRequest, WebDataBinderFactory binderFactory) {
|
|
||||||
Authentication authentication = (Authentication) webRequest.getUserPrincipal();
|
|
||||||
if (authentication == null || !authentication.isAuthenticated()) {
|
|
||||||
throw new UserNotLoginException();
|
|
||||||
}
|
|
||||||
StaffUser user = null;
|
|
||||||
try {
|
|
||||||
user = userService.findByEsntlId((String) PropertyUtils.getProperty(authentication.getPrincipal(), "esntlId"));
|
|
||||||
} catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
|
|
||||||
throw new NotFoundException("User not found");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (user == null) throw new UserNotLoginException();
|
|
||||||
return user;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+1
-1
@@ -1,8 +1,8 @@
|
|||||||
package com.eactive.httpmockserver.common.validator;
|
package com.eactive.httpmockserver.common.validator;
|
||||||
|
|
||||||
import com.eactive.httpmockserver.user.service.UserService;
|
|
||||||
import com.eactive.httpmockserver.common.exception.UserNotFoundException;
|
import com.eactive.httpmockserver.common.exception.UserNotFoundException;
|
||||||
import com.eactive.httpmockserver.common.util.ApplicationContextUtil;
|
import com.eactive.httpmockserver.common.util.ApplicationContextUtil;
|
||||||
|
import com.eactive.httpmockserver.user.service.UserService;
|
||||||
|
|
||||||
import javax.validation.ConstraintValidator;
|
import javax.validation.ConstraintValidator;
|
||||||
import javax.validation.ConstraintValidatorContext;
|
import javax.validation.ConstraintValidatorContext;
|
||||||
|
|||||||
+10
-4
@@ -7,7 +7,8 @@ import com.eactive.httpmockserver.user.entity.StaffUser;
|
|||||||
import com.eactive.httpmockserver.user.entity.User;
|
import com.eactive.httpmockserver.user.entity.User;
|
||||||
import com.eactive.httpmockserver.user.repository.StaffUserRepository;
|
import com.eactive.httpmockserver.user.repository.StaffUserRepository;
|
||||||
import com.eactive.httpmockserver.user.service.UserService;
|
import com.eactive.httpmockserver.user.service.UserService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.security.core.AuthenticationException;
|
import org.springframework.security.core.AuthenticationException;
|
||||||
import org.springframework.security.web.authentication.AuthenticationFailureHandler;
|
import org.springframework.security.web.authentication.AuthenticationFailureHandler;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -22,12 +23,16 @@ import java.io.IOException;
|
|||||||
@Transactional
|
@Transactional
|
||||||
public class PortalAuthenticationFailureHandler implements AuthenticationFailureHandler {
|
public class PortalAuthenticationFailureHandler implements AuthenticationFailureHandler {
|
||||||
|
|
||||||
@Autowired
|
private static final Logger logger = LoggerFactory.getLogger(PortalAuthenticationFailureHandler.class);
|
||||||
|
|
||||||
UserService userService;
|
UserService userService;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
StaffUserRepository staffUserRepository;
|
StaffUserRepository staffUserRepository;
|
||||||
|
|
||||||
|
public PortalAuthenticationFailureHandler(UserService userService, StaffUserRepository staffUserRepository) {
|
||||||
|
this.userService = userService;
|
||||||
|
this.staffUserRepository = staffUserRepository;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(propagation = Propagation.REQUIRES_NEW, noRollbackFor = {AuthenticationException.class, UserNotFoundException.class})
|
@Transactional(propagation = Propagation.REQUIRES_NEW, noRollbackFor = {AuthenticationException.class, UserNotFoundException.class})
|
||||||
@@ -44,7 +49,8 @@ public class PortalAuthenticationFailureHandler implements AuthenticationFailure
|
|||||||
|
|
||||||
staffUserRepository.save((StaffUser) user);
|
staffUserRepository.save((StaffUser) user);
|
||||||
}
|
}
|
||||||
} catch (UserNotFoundException ignored) {
|
} catch (UserNotFoundException e) {
|
||||||
|
logger.error("{} login try {}", username, e.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
request.getSession().setAttribute(LoginController.LOGIN_MESSAGE, exception.getLocalizedMessage());
|
request.getSession().setAttribute(LoginController.LOGIN_MESSAGE, exception.getLocalizedMessage());
|
||||||
|
|||||||
+1
-1
@@ -31,7 +31,7 @@ public class PortalAuthenticationSuccessHandler implements AuthenticationSuccess
|
|||||||
userService.updateUser((User) user);
|
userService.updateUser((User) user);
|
||||||
|
|
||||||
String contextPath = request.getContextPath();
|
String contextPath = request.getContextPath();
|
||||||
response.sendRedirect(contextPath + "/");
|
response.sendRedirect(contextPath + "/mgmt/routes/list_view.do");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -3,13 +3,10 @@ package com.eactive.httpmockserver.config;
|
|||||||
import org.springframework.boot.autoconfigure.domain.EntityScan;
|
import org.springframework.boot.autoconfigure.domain.EntityScan;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.Primary;
|
|
||||||
import org.springframework.data.domain.AuditorAware;
|
import org.springframework.data.domain.AuditorAware;
|
||||||
import org.springframework.data.envers.repository.support.EnversRevisionRepositoryFactoryBean;
|
import org.springframework.data.envers.repository.support.EnversRevisionRepositoryFactoryBean;
|
||||||
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
|
import org.springframework.data.jpa.repository.config.EnableJpaAuditing;
|
||||||
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
|
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
|
||||||
import org.springframework.orm.jpa.JpaTransactionManager;
|
|
||||||
import org.springframework.transaction.PlatformTransactionManager;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author
|
* @author
|
||||||
|
|||||||
@@ -16,6 +16,21 @@ import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
|
|||||||
@EnableWebSecurity
|
@EnableWebSecurity
|
||||||
public class PortalConfigSecurity extends WebSecurityConfigurerAdapter {
|
public class PortalConfigSecurity extends WebSecurityConfigurerAdapter {
|
||||||
|
|
||||||
|
private final PortalAuthenticationFailureHandler authenticationFailureHandler;
|
||||||
|
|
||||||
|
private final PortalAuthenticationSuccessHandler authenticationSuccessHandler;
|
||||||
|
|
||||||
|
private final PortalAuthenticationManager portalAuthenticationManager;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
public PortalConfigSecurity(PortalAuthenticationFailureHandler authenticationFailureHandler,
|
||||||
|
PortalAuthenticationSuccessHandler authenticationSuccessHandler,
|
||||||
|
PortalAuthenticationManager portalAuthenticationManager) {
|
||||||
|
this.authenticationFailureHandler = authenticationFailureHandler;
|
||||||
|
this.authenticationSuccessHandler = authenticationSuccessHandler;
|
||||||
|
this.portalAuthenticationManager = portalAuthenticationManager;
|
||||||
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public FilterRegistrationBean<XssEscapeServletFilter> xssFilterRegistrationBean() {
|
public FilterRegistrationBean<XssEscapeServletFilter> xssFilterRegistrationBean() {
|
||||||
FilterRegistrationBean<XssEscapeServletFilter> registrationBean = new FilterRegistrationBean<>();
|
FilterRegistrationBean<XssEscapeServletFilter> registrationBean = new FilterRegistrationBean<>();
|
||||||
@@ -26,12 +41,6 @@ public class PortalConfigSecurity extends WebSecurityConfigurerAdapter {
|
|||||||
return registrationBean;
|
return registrationBean;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public PortalAuthenticationFailureHandler authenticationFailureHandler;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
public PortalAuthenticationSuccessHandler authenticationSuccessHandler;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void configure(HttpSecurity http) throws Exception {
|
protected void configure(HttpSecurity http) throws Exception {
|
||||||
|
|
||||||
@@ -56,9 +65,6 @@ public class PortalConfigSecurity extends WebSecurityConfigurerAdapter {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Autowired
|
|
||||||
PortalAuthenticationManager portalAuthenticationManager;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Bean
|
@Bean
|
||||||
public PortalAuthenticationManager authenticationManager() {
|
public PortalAuthenticationManager authenticationManager() {
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.eactive.httpmockserver.config;
|
package com.eactive.httpmockserver.config;
|
||||||
|
|
||||||
import com.eactive.httpmockserver.common.interceptor.AuthenticInterceptor;
|
import com.eactive.httpmockserver.common.interceptor.AuthenticInterceptor;
|
||||||
import com.eactive.httpmockserver.common.security.CurrentUserArgumentResolver;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.core.Ordered;
|
import org.springframework.core.Ordered;
|
||||||
@@ -42,13 +41,8 @@ public class WebMvcConfig implements WebMvcConfigurer {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
|
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
|
||||||
resolvers.add(currentUserArgumentResolver());
|
|
||||||
resolvers.add(pageableHandlerMethodArgumentResolver());
|
resolvers.add(pageableHandlerMethodArgumentResolver());
|
||||||
}
|
}
|
||||||
@Bean
|
|
||||||
public CurrentUserArgumentResolver currentUserArgumentResolver() {
|
|
||||||
return new CurrentUserArgumentResolver();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public PageableHandlerMethodArgumentResolver pageableHandlerMethodArgumentResolver() {
|
public PageableHandlerMethodArgumentResolver pageableHandlerMethodArgumentResolver() {
|
||||||
|
|||||||
@@ -8,6 +8,6 @@ public class HomeController {
|
|||||||
|
|
||||||
@GetMapping("/")
|
@GetMapping("/")
|
||||||
public String home() {
|
public String home() {
|
||||||
return "index";
|
return "redirect:/mgmt/routes/list_view.do";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+14
-12
@@ -1,9 +1,9 @@
|
|||||||
package com.eactive.httpmockserver.server.controller;
|
package com.eactive.httpmockserver.server.controller;
|
||||||
|
|
||||||
import com.eactive.httpmockserver.server.mapper.ServerMapper;
|
|
||||||
import com.eactive.httpmockserver.server.dto.ServerDTO;
|
import com.eactive.httpmockserver.server.dto.ServerDTO;
|
||||||
import com.eactive.httpmockserver.server.dto.ServerSearch;
|
import com.eactive.httpmockserver.server.dto.ServerSearch;
|
||||||
import com.eactive.httpmockserver.server.entity.Server;
|
import com.eactive.httpmockserver.server.entity.Server;
|
||||||
|
import com.eactive.httpmockserver.server.mapper.ServerMapper;
|
||||||
import com.eactive.httpmockserver.server.service.ServerMgmtService;
|
import com.eactive.httpmockserver.server.service.ServerMgmtService;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -15,6 +15,8 @@ import org.springframework.validation.BindingResult;
|
|||||||
import org.springframework.validation.Validator;
|
import org.springframework.validation.Validator;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
@RequestMapping("/mgmt/servers")
|
@RequestMapping("/mgmt/servers")
|
||||||
@@ -29,6 +31,8 @@ public class ServerMgmtController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private Validator validator;
|
private Validator validator;
|
||||||
|
|
||||||
|
public static final String SERVER = "server";
|
||||||
|
|
||||||
public static final String SERVER_EDIT = "page/servers/serverEdit";
|
public static final String SERVER_EDIT = "page/servers/serverEdit";
|
||||||
|
|
||||||
public static final String SERVER_LIST_VIEW = "redirect:/mgmt/servers/list_view.do";
|
public static final String SERVER_LIST_VIEW = "redirect:/mgmt/servers/list_view.do";
|
||||||
@@ -49,7 +53,7 @@ public class ServerMgmtController {
|
|||||||
@GetMapping("/create_view.do")
|
@GetMapping("/create_view.do")
|
||||||
public String createView(ModelMap model) {
|
public String createView(ModelMap model) {
|
||||||
ServerDTO defaultServer = new ServerDTO();
|
ServerDTO defaultServer = new ServerDTO();
|
||||||
model.addAttribute("server", defaultServer);
|
model.addAttribute(SERVER, defaultServer);
|
||||||
return SERVER_EDIT;
|
return SERVER_EDIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,12 +61,12 @@ public class ServerMgmtController {
|
|||||||
public String updateView(ModelMap model, @RequestParam("id") Long id) {
|
public String updateView(ModelMap model, @RequestParam("id") Long id) {
|
||||||
Server found = serverMgmtService.findById(id);
|
Server found = serverMgmtService.findById(id);
|
||||||
ServerDTO server = serverMapper.map(found);
|
ServerDTO server = serverMapper.map(found);
|
||||||
model.addAttribute("server", server);
|
model.addAttribute(SERVER, server);
|
||||||
return SERVER_EDIT;
|
return SERVER_EDIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/register.do")
|
@PostMapping("/register.do")
|
||||||
public String register(@ModelAttribute("server") ServerDTO dto,
|
public String register(@ModelAttribute(SERVER) ServerDTO dto,
|
||||||
BindingResult bindingResult,
|
BindingResult bindingResult,
|
||||||
ModelMap model) {
|
ModelMap model) {
|
||||||
|
|
||||||
@@ -73,7 +77,7 @@ public class ServerMgmtController {
|
|||||||
validator.validate(dto, bindingResult);
|
validator.validate(dto, bindingResult);
|
||||||
|
|
||||||
if (bindingResult.hasErrors()) {
|
if (bindingResult.hasErrors()) {
|
||||||
model.addAttribute("server", dto);
|
model.addAttribute(SERVER, dto);
|
||||||
return SERVER_EDIT;
|
return SERVER_EDIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,7 +87,7 @@ public class ServerMgmtController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/update.do")
|
@PostMapping("/update.do")
|
||||||
public String update(@ModelAttribute("server") ServerDTO dto,
|
public String update(@ModelAttribute(SERVER) ServerDTO dto,
|
||||||
BindingResult bindingResult,
|
BindingResult bindingResult,
|
||||||
ModelMap model) {
|
ModelMap model) {
|
||||||
|
|
||||||
@@ -94,7 +98,7 @@ public class ServerMgmtController {
|
|||||||
validator.validate(dto, bindingResult);
|
validator.validate(dto, bindingResult);
|
||||||
|
|
||||||
if (bindingResult.hasErrors()) {
|
if (bindingResult.hasErrors()) {
|
||||||
model.addAttribute("server", dto);
|
model.addAttribute(SERVER, dto);
|
||||||
return SERVER_EDIT;
|
return SERVER_EDIT;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -104,12 +108,10 @@ public class ServerMgmtController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/delete.do")
|
@PostMapping("/delete.do")
|
||||||
public String delete(@ModelAttribute ServerSearch modelSearch) {
|
public String delete(@RequestParam("checkedIdForDel") List<String> checkedIdForDel) {
|
||||||
|
for (String id : checkedIdForDel) {
|
||||||
modelSearch.getCheckedIdForDel().forEach(id -> {
|
|
||||||
serverMgmtService.delete(Long.parseLong(id));
|
serverMgmtService.delete(Long.parseLong(id));
|
||||||
});
|
}
|
||||||
|
|
||||||
return SERVER_LIST_VIEW;
|
return SERVER_LIST_VIEW;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -20,8 +20,6 @@ public class ServerSearch implements BaseSearch<Server> {
|
|||||||
|
|
||||||
private String port;
|
private String port;
|
||||||
|
|
||||||
private List<String> checkedIdForDel;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SearchModel> buildSearchCondition() {
|
public List<SearchModel> buildSearchCondition() {
|
||||||
List<SearchModel> models = new ArrayList<>();
|
List<SearchModel> models = new ArrayList<>();
|
||||||
@@ -77,11 +75,4 @@ public class ServerSearch implements BaseSearch<Server> {
|
|||||||
this.port = port;
|
this.port = port;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<String> getCheckedIdForDel() {
|
|
||||||
return checkedIdForDel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setCheckedIdForDel(List<String> checkedIdForDel) {
|
|
||||||
this.checkedIdForDel = checkedIdForDel;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.eactive.httpmockserver.server.mapper;
|
package com.eactive.httpmockserver.server.mapper;
|
||||||
|
|
||||||
|
|
||||||
import com.eactive.httpmockserver.server.entity.ServerRepository;
|
|
||||||
import com.eactive.httpmockserver.common.exception.NotFoundException;
|
import com.eactive.httpmockserver.common.exception.NotFoundException;
|
||||||
import com.eactive.httpmockserver.server.dto.ServerDTO;
|
import com.eactive.httpmockserver.server.dto.ServerDTO;
|
||||||
import com.eactive.httpmockserver.server.entity.Server;
|
import com.eactive.httpmockserver.server.entity.Server;
|
||||||
|
import com.eactive.httpmockserver.server.entity.ServerRepository;
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
import org.mapstruct.ReportingPolicy;
|
import org.mapstruct.ReportingPolicy;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
package com.eactive.httpmockserver.server.service;
|
package com.eactive.httpmockserver.server.service;
|
||||||
|
|
||||||
import com.eactive.httpmockserver.server.entity.ServerRepository;
|
|
||||||
import com.eactive.httpmockserver.common.exception.NotFoundException;
|
import com.eactive.httpmockserver.common.exception.NotFoundException;
|
||||||
import com.eactive.httpmockserver.server.entity.Server;
|
import com.eactive.httpmockserver.server.entity.Server;
|
||||||
|
import com.eactive.httpmockserver.server.entity.ServerRepository;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
package com.eactive.httpmockserver.user.controller;
|
package com.eactive.httpmockserver.user.controller;
|
||||||
|
|
||||||
|
import com.eactive.httpmockserver.common.util.SecurityUtil;
|
||||||
import com.eactive.httpmockserver.user.dto.PasswordChangeRequestDTO;
|
import com.eactive.httpmockserver.user.dto.PasswordChangeRequestDTO;
|
||||||
import com.eactive.httpmockserver.user.entity.StaffUser;
|
|
||||||
import com.eactive.httpmockserver.user.entity.User;
|
|
||||||
import com.eactive.httpmockserver.user.service.UserService;
|
import com.eactive.httpmockserver.user.service.UserService;
|
||||||
import com.eactive.httpmockserver.common.security.CurrentUser;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@@ -18,6 +16,7 @@ import org.springframework.web.bind.annotation.PostMapping;
|
|||||||
@Controller
|
@Controller
|
||||||
public class AccountController {
|
public class AccountController {
|
||||||
|
|
||||||
|
public static final String UPDATE_PW = "page/updatePw";
|
||||||
@Autowired
|
@Autowired
|
||||||
private Validator validator;
|
private Validator validator;
|
||||||
|
|
||||||
@@ -25,33 +24,31 @@ public class AccountController {
|
|||||||
private UserService userService;
|
private UserService userService;
|
||||||
|
|
||||||
@GetMapping("/change_password.do")
|
@GetMapping("/change_password.do")
|
||||||
public String changePassword(ModelMap model, @ModelAttribute("passwordChangeRequest") PasswordChangeRequestDTO passwordChangeRequestDTO) {
|
public String changePassword( @ModelAttribute("passwordChangeRequest") PasswordChangeRequestDTO passwordChangeRequestDTO) {
|
||||||
return "page/updatePw";
|
return UPDATE_PW;
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping(value = "/update_password.do")
|
@PostMapping(value = "/update_password.do")
|
||||||
@Transactional
|
@Transactional
|
||||||
public String updatePassword(ModelMap model, @ModelAttribute("passwordChangeRequest") PasswordChangeRequestDTO passwordChangeRequestDTO,
|
public String updatePassword(ModelMap model, @ModelAttribute("passwordChangeRequest") PasswordChangeRequestDTO passwordChangeRequestDTO,
|
||||||
@CurrentUser StaffUser user,
|
|
||||||
BindingResult result) {
|
BindingResult result) {
|
||||||
|
|
||||||
validator.validate(passwordChangeRequestDTO, result);
|
validator.validate(passwordChangeRequestDTO, result);
|
||||||
|
|
||||||
if (result.hasErrors()) {
|
if (result.hasErrors()) {
|
||||||
model.addAttribute("errors", result);
|
model.addAttribute("errors", result);
|
||||||
return "page/updatePw";
|
return UPDATE_PW;
|
||||||
}
|
}
|
||||||
|
|
||||||
String oldPassword = passwordChangeRequestDTO.getOldPassword();
|
String oldPassword = passwordChangeRequestDTO.getOldPassword();
|
||||||
String newPassword = passwordChangeRequestDTO.getNewPassword();
|
String newPassword = passwordChangeRequestDTO.getNewPassword();
|
||||||
String newPassword2 = passwordChangeRequestDTO.getNewPassword2();
|
String newPassword2 = passwordChangeRequestDTO.getNewPassword2();
|
||||||
|
String resultMsg = userService.updateUserPassword(SecurityUtil.getCurrentUserEsntlId(), oldPassword, newPassword, newPassword2);
|
||||||
String resultMsg = userService.updateUserPassword(user.getUserId(), oldPassword, newPassword, newPassword2);
|
|
||||||
|
|
||||||
model.addAttribute("resultMsg", resultMsg);
|
model.addAttribute("resultMsg", resultMsg);
|
||||||
model.addAttribute("passwordChangeRequest", new PasswordChangeRequestDTO());
|
model.addAttribute("passwordChangeRequest", new PasswordChangeRequestDTO());
|
||||||
|
|
||||||
return "page/updatePw";
|
return "redirect:/";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
package com.eactive.httpmockserver.user.controller;
|
package com.eactive.httpmockserver.user.controller;
|
||||||
|
|
||||||
import com.eactive.httpmockserver.common.security.CurrentUser;
|
import com.eactive.httpmockserver.common.util.SecurityUtil;
|
||||||
import com.eactive.httpmockserver.user.dto.UserRegisterDTO;
|
import com.eactive.httpmockserver.user.dto.UserRegisterDTO;
|
||||||
import com.eactive.httpmockserver.user.dto.UserSearch;
|
import com.eactive.httpmockserver.user.dto.UserSearch;
|
||||||
import com.eactive.httpmockserver.user.dto.UserUpdateDTO;
|
import com.eactive.httpmockserver.user.dto.UserUpdateDTO;
|
||||||
import com.eactive.httpmockserver.user.entity.StaffUser;
|
import com.eactive.httpmockserver.user.entity.StaffUser;
|
||||||
import com.eactive.httpmockserver.user.entity.User;
|
|
||||||
import com.eactive.httpmockserver.user.mapper.StaffUserMapper;
|
import com.eactive.httpmockserver.user.mapper.StaffUserMapper;
|
||||||
import com.eactive.httpmockserver.user.service.StaffUserService;
|
import com.eactive.httpmockserver.user.service.StaffUserService;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@@ -108,10 +107,9 @@ public class UserMgmtController {
|
|||||||
|
|
||||||
|
|
||||||
@PostMapping("/delete.do")
|
@PostMapping("/delete.do")
|
||||||
public String delete(@CurrentUser User user,
|
public String delete(@ModelAttribute UserSearch modelSearch) {
|
||||||
@ModelAttribute UserSearch modelSearch) {
|
|
||||||
modelSearch.getCheckedIdForDel().forEach(id -> {
|
modelSearch.getCheckedIdForDel().forEach(id -> {
|
||||||
if (!user.getEsntlId().equals(id)) { // 자기 자신은 삭제 불가
|
if (!SecurityUtil.getCurrentUserEsntlId().equals(id)) { // 자기 자신은 삭제 불가
|
||||||
staffUserService.deleteById(id);
|
staffUserService.deleteById(id);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
package com.eactive.httpmockserver.user.dto;
|
package com.eactive.httpmockserver.user.dto;
|
||||||
|
|
||||||
import com.eactive.httpmockserver.user.entity.UserStatus;
|
|
||||||
import com.eactive.httpmockserver.common.validator.PasswordMatch;
|
import com.eactive.httpmockserver.common.validator.PasswordMatch;
|
||||||
import com.eactive.httpmockserver.common.validator.UniqueId;
|
import com.eactive.httpmockserver.common.validator.UniqueId;
|
||||||
|
import com.eactive.httpmockserver.user.entity.UserStatus;
|
||||||
import org.hibernate.validator.constraints.Length;
|
import org.hibernate.validator.constraints.Length;
|
||||||
|
|
||||||
import javax.validation.constraints.Email;
|
|
||||||
import javax.validation.constraints.NotEmpty;
|
import javax.validation.constraints.NotEmpty;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
@@ -23,7 +22,7 @@ public class UserRegisterDTO implements Serializable {
|
|||||||
*/
|
*/
|
||||||
@NotEmpty
|
@NotEmpty
|
||||||
@UniqueId
|
@UniqueId
|
||||||
@Email
|
// @Email
|
||||||
private String userId;
|
private String userId;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package com.eactive.httpmockserver.user.dto;
|
package com.eactive.httpmockserver.user.dto;
|
||||||
|
|
||||||
import com.eactive.httpmockserver.user.entity.StaffUser;
|
|
||||||
import com.eactive.httpmockserver.user.entity.UserStatus;
|
|
||||||
import com.eactive.httpmockserver.common.search.BaseSearch;
|
import com.eactive.httpmockserver.common.search.BaseSearch;
|
||||||
import com.eactive.httpmockserver.common.search.ColumnSearchModel;
|
import com.eactive.httpmockserver.common.search.ColumnSearchModel;
|
||||||
import com.eactive.httpmockserver.common.search.SearchCondition;
|
import com.eactive.httpmockserver.common.search.SearchCondition;
|
||||||
import com.eactive.httpmockserver.common.search.SearchModel;
|
import com.eactive.httpmockserver.common.search.SearchModel;
|
||||||
|
import com.eactive.httpmockserver.user.entity.StaffUser;
|
||||||
|
import com.eactive.httpmockserver.user.entity.UserStatus;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package com.eactive.httpmockserver.user.dto;
|
package com.eactive.httpmockserver.user.dto;
|
||||||
|
|
||||||
import com.eactive.httpmockserver.user.entity.UserStatus;
|
|
||||||
import com.eactive.httpmockserver.common.entity.EnabledStatus;
|
import com.eactive.httpmockserver.common.entity.EnabledStatus;
|
||||||
|
import com.eactive.httpmockserver.user.entity.UserStatus;
|
||||||
|
|
||||||
import javax.validation.constraints.NotEmpty;
|
import javax.validation.constraints.NotEmpty;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
package com.eactive.httpmockserver.user.mapper;
|
package com.eactive.httpmockserver.user.mapper;
|
||||||
|
|
||||||
|
|
||||||
|
import com.eactive.httpmockserver.common.mapper.CommonMapper;
|
||||||
|
import com.eactive.httpmockserver.common.util.EncryptionUtil;
|
||||||
import com.eactive.httpmockserver.user.dto.UserRegisterDTO;
|
import com.eactive.httpmockserver.user.dto.UserRegisterDTO;
|
||||||
import com.eactive.httpmockserver.user.dto.UserUpdateDTO;
|
import com.eactive.httpmockserver.user.dto.UserUpdateDTO;
|
||||||
import com.eactive.httpmockserver.user.entity.StaffUser;
|
import com.eactive.httpmockserver.user.entity.StaffUser;
|
||||||
import com.eactive.httpmockserver.common.mapper.CommonMapper;
|
|
||||||
import com.eactive.httpmockserver.common.util.EncryptionUtil;
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.mapstruct.Mapper;
|
import org.mapstruct.Mapper;
|
||||||
import org.mapstruct.Mapping;
|
import org.mapstruct.Mapping;
|
||||||
import org.mapstruct.ReportingPolicy;
|
import org.mapstruct.ReportingPolicy;
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
package com.eactive.httpmockserver.user.service;
|
package com.eactive.httpmockserver.user.service;
|
||||||
|
|
||||||
|
import com.eactive.httpmockserver.common.entity.EnabledStatus;
|
||||||
|
import com.eactive.httpmockserver.common.exception.UserNotFoundException;
|
||||||
import com.eactive.httpmockserver.user.entity.StaffUser;
|
import com.eactive.httpmockserver.user.entity.StaffUser;
|
||||||
import com.eactive.httpmockserver.user.entity.UserStatus;
|
import com.eactive.httpmockserver.user.entity.UserStatus;
|
||||||
import com.eactive.httpmockserver.user.repository.StaffUserRepository;
|
import com.eactive.httpmockserver.user.repository.StaffUserRepository;
|
||||||
import com.eactive.httpmockserver.common.entity.EnabledStatus;
|
|
||||||
import com.eactive.httpmockserver.common.exception.UserNotFoundException;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.data.domain.Page;
|
import org.springframework.data.domain.Page;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package com.eactive.httpmockserver.user.service;
|
package com.eactive.httpmockserver.user.service;
|
||||||
|
|
||||||
import com.eactive.httpmockserver.user.entity.StaffUser;
|
|
||||||
import com.eactive.httpmockserver.user.entity.User;
|
|
||||||
import com.eactive.httpmockserver.user.repository.StaffUserRepository;
|
|
||||||
import com.eactive.httpmockserver.common.entity.EnabledStatus;
|
import com.eactive.httpmockserver.common.entity.EnabledStatus;
|
||||||
import com.eactive.httpmockserver.common.exception.UserNotFoundException;
|
import com.eactive.httpmockserver.common.exception.UserNotFoundException;
|
||||||
import com.eactive.httpmockserver.common.util.EncryptionUtil;
|
import com.eactive.httpmockserver.common.util.EncryptionUtil;
|
||||||
|
import com.eactive.httpmockserver.user.entity.StaffUser;
|
||||||
|
import com.eactive.httpmockserver.user.entity.User;
|
||||||
|
import com.eactive.httpmockserver.user.repository.StaffUserRepository;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.core.userdetails.UserDetails;
|
import org.springframework.security.core.userdetails.UserDetails;
|
||||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||||
@@ -39,8 +39,8 @@ public class UserService implements UserDetailsService {
|
|||||||
return staffUserRepository.findByUserId(userId).orElseThrow(() -> new UserNotFoundException(USER_NOT_FOUND_MESSAGE));
|
return staffUserRepository.findByUserId(userId).orElseThrow(() -> new UserNotFoundException(USER_NOT_FOUND_MESSAGE));
|
||||||
}
|
}
|
||||||
|
|
||||||
public String updateUserPassword(String userId, String oldPassword, String newPassword, String newPassword2) {
|
public String updateUserPassword(String esntlId, String oldPassword, String newPassword, String newPassword2) {
|
||||||
User user = staffUserRepository.findByUserId(userId).orElseThrow(() -> new UserNotFoundException(USER_NOT_FOUND_MESSAGE));
|
User user = staffUserRepository.findById(esntlId).orElseThrow(() -> new UserNotFoundException(USER_NOT_FOUND_MESSAGE));
|
||||||
String encryptedOldPass = encryptionUtil.encryptPassword(oldPassword, user.getUserId());
|
String encryptedOldPass = encryptionUtil.encryptPassword(oldPassword, user.getUserId());
|
||||||
String resultMsg = null;
|
String resultMsg = null;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user