
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package com.takensoft.cms.loginPolicy.web;
import com.takensoft.cms.loginPolicy.service.LoginPolicyService;
import com.takensoft.cms.loginPolicy.vo.LoginPolicyVO;
import com.takensoft.common.message.MessageCode;
import com.takensoft.common.util.JWTUtil;
import com.takensoft.common.util.ResponseUtil;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* @author 김혜민
* @since 2025.03.22
* @modification
* since | author | description
* 2025.03.22 | 김혜민 | 최초 등록
*
* 중복로그인 허용 관련 컨트롤러
*/
@RestController
@RequiredArgsConstructor
@Slf4j
@RequestMapping(value = "/admin/allowMultipleLogin")
public class LoginPolicyController {
private final LoginPolicyService loginPolicyService;
private final ResponseUtil resUtil;
private final JWTUtil jwtUtil;
/**
*
* @return ResponseEntity - 접근 제어 목록 조회 결과를 포함하는 응답
*
* 중복로그인 조회
*/
@GetMapping("/login-policy")
public ResponseEntity<?> getPolicy() {
Boolean isAllowed = loginPolicyService.getPolicy();
return resUtil.successRes(isAllowed, MessageCode.COMMON_SUCCESS);
}
/**
* @param params - 접근 제어 정보
* @return ResponseEntity - 접근 제어 수정 결과를 포함하는 응답
*
* 중복로그인 수정
*/
@PostMapping("/login-policy")
public ResponseEntity<?> updatePolicy(@RequestBody Map<String, Object> params, HttpServletRequest request) {
try {
boolean allow = (Boolean) params.get("allowMultipleLogin");
String token = request.getHeader("Authorization");
String adminId = (String) jwtUtil.getClaim(token, "mbrId");
if (adminId == null || adminId.isBlank()) {
return resUtil.errorRes(MessageCode.COMMON_BAD_REQUEST);
}
LoginPolicyVO loginPolicyVO = new LoginPolicyVO();
loginPolicyVO.setAllowMultipleLogin(allow);
loginPolicyVO.setMbrId(adminId);
int result = loginPolicyService.insertPolicy(loginPolicyVO);
if (result > 0) {
return resUtil.successRes(result, MessageCode.COMMON_SUCCESS);
} else {
return resUtil.errorRes(MessageCode.COMMON_INSERT_FAIL); // 저장 실패
}
} catch (DuplicateKeyException e) {
return resUtil.errorRes(MessageCode.COMMON_DUPLICATION_DATA); // 중복 저장
} catch (Exception e) {
return resUtil.errorRes(MessageCode.COMMON_UNKNOWN_ERROR); // 기타 예외
}
}
}