
애플리케이션에서 사용자의 권한을 구분하는 것은 중요한 보안 기능입니다. 특히, ADMIN과 USER와 같은 권한을 나누는 이유는, 각 사용자가 접근할 수 있는 리소스를 제한하려고 한다. 관리자는 모든 데이터에 접근할 수 있지만 일반 사용자는 제한된 기능만 사용해야 할 필요가 있습니다. 이때 Spring Security를 사용하여 사용자 인증 시 적절한 권한을 부여하고, 이를 세션에 저장하여 각 페이지에서 해당 권한에 맞는 행동을 제어할 수 있다. 세션에 권한을 저장하는 이유는 사용자가 로그인 후 매번 서버에 요청할 때마다 권한을 재확인할 필요 없이, 세션에 저장된 정보를 활용하여 빠르고 효율적으로 권한을 판단하고, 적절한 리소스만 접근하도록 하기 위함이다. 이번 글에서는 DB에서 저장된 권한 코드(aut..

https://ekeprl.tistory.com/37 게시판 등록기능 (2)지난 포스팅은 html 및 js를 다뤘다. 이어서 백엔드를 진행해보려한다. xhr.open('POST', '/auth/admin/manage/board_list', true);js에서 getBoardList라는 함수를 실행하고해당 URL에 POST방식으로 요청을 보낸다. 1.Cekeprl.tistory.com지난 포스팅에서 게시판에 글을작성하고 등록하는 기능을 완성했다. 이번 포스팅은 해당 게시물을 클릭해 모달을 띄워 작성한 내용을 보여주는 기능을 작성하려한다. 작성한 글들을 보여주는 게시판이다. 1.JS/*게시판 상세 모달*/clickList: function (idx) { var item = document.getEle..

https://ekeprl.tistory.com/40 Spring Security (5) : 비밀번호 암호화 저장기존 코드는 회원가입을 진행할 때 따로 비밀번호 암호화를 진행하지않았다.혹시 데이터가 유출이 된다 하더라고 데이터의 정확한 정보를 넘기지 않기위해 비밀번호 암호화는 필수적이다.따라ekeprl.tistory.com비밀번호를 암호화하여 저장을 완료했고,이번 포스팅은 로그인시 입력한 비밀번호와 비교하여 로그인하는 과정을 작성하겠다. AuthenticationProvider 작성 : https://ekeprl.tistory.com/31 Spring Security (2)(1)편에 이어서 2편을 작성하려한다.2편은 AuthenticationProvider / Success,Failuer Handle..

기존 코드는 회원가입을 진행할 때 따로 비밀번호 암호화를 진행하지않았다.혹시 데이터가 유출이 된다 하더라고 데이터의 정확한 정보를 넘기지 않기위해 비밀번호 암호화는 필수적이다.따라서 이번 포스팅은 회원가입 시 비밀번호를 암호화해서 저장하는것을 작성하려한다. 로그인창에서 회원가입을 누르고 회원가입 화면으로 진입한다.회원가입 기능 : https://ekeprl.tistory.com/26 회원가입(Join) 기능 추가 -2아이디 중복체크를 끝낸 후,아래 초록백 회원가입 버튼을 클릭하고 회원가입기능을 마무리 하려한다. 1)join.jsvar JoinJsFun = { initHtml : function () { join_duplicateBtn.addEventListener("click", function(){ ..

오픈API를 사용해보자 해서 시작하게되었다.현재 진행한 블로그에서메인페이지에 공휴일 체크 INPUT BOX + BUTTON 만 추가해서ALERT로만 간단하게 나타내도록 하려고한다. 1. UTIL.KT 2. MAIN.JS처리하는 방법중 두가지를 사용해 코드를 작성할 예정이고,이번 포스팅은 Main.js에 간단하게 작성해보도록 하겠다. 1) OPEN API KEY발급https://www.data.go.kr/ 공공데이터 포털국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datasewww.data.go.kr공공데이터 포털에 들어가 활용신청을 눌러주기만하면 간단하게 KEY를 발..
먼저 Session이란클라이언트별로 서버에 유지되는 저장공간이다. *작성자는 소스를 작성할때 사용자를 식별할때 주로 사용한다.* 이전 포스팅에서 게시판목록을 조회할 때Service단에서fun adminBoardSelectList(param : SearchModel) : JSONObject { val jsono = JSONObject() try { val listdata = mapper.adminBoardSelectList(param, session.getAttribute("userid").toString()) jsono["RESULT"] = "OK" jsono["LIST"] = listdata jsono["MESSAGE"] = "조회에 성공하였..

지난 포스팅은 html 및 js를 다뤘다. 이어서 백엔드를 진행해보려한다. xhr.open('POST', '/auth/admin/manage/board_list', true);js에서 getBoardList라는 함수를 실행하고해당 URL에 POST방식으로 요청을 보낸다. 1.Controller@ResponseBody@RequestMapping(value = [("/auth/admin/manage/board_list")], method = [(RequestMethod.POST)])@Throws(Exception::class)fun adminBoardSelectList(param : SearchModel) : JSONObject { return service.adminBoardSelectList(par..

게시판 작업을 진행하려한다.**우선 우측상단에 있는 조회조건(날짜 및 검색어) 기능은 추후에 완성하려한다.** 0. user_board 테이블 생성CREATE TABLE `user_board` (`BOARD_ID` varchar(20) NOT NULL,`BOARD_SEQ` int(11) NOT NULL AUTO_INCREMENT,`USERID` varchar(255) DEFAULT NULL,`TITLE` varchar(50) NOT NULL COMMENT '제목',`CONTENTS` blob NOT NULL COMMENT '내용',`REGDT` date DEFAULT NULL COMMENT '등록일자',`UPDDT` date DEFAULT NULL COMMENT '수정일자',`IS_DEL` int(11)..