관리자 페이지 개발 및 UI 변경(Front-end) 내용을 소개한다.
- github: https://github.com/scribnote5/lab
- github commit: https://github.com/scribnote5/lab/commit/77cf907a1f89f85811bcff974d0e8fee7faae713
IntelliJ 프로젝트 빌드할 때 ‘Command line is too long. Shorten command line for..’ 에러 해결 방법
- 프로젝트 빌드시 ‘Command line is too long. Shorten command line for..’ 에러가 발생하여, 다음 출처를 참고하여 해결하였다.
출처: http://jmlim.github.io/intellij/2020/02/27/intellij-idea-command-line-is-too-long-error/
Spring security
- 로그인할 때 사용자 인증 할 때 UsernameNotfoundException 예외가 발생하지 않고 BadCredentials 예외가 발생하였다. 하단 출처를 참고하여 사용자 보안을 위해서 UsernameNotfoundException 예외가 발생하지 않는 것을 확인하였다.
출처: https://cyr9210.github.io/2019/09/30/Security/usernamenotfound/
로그 기록 남기기
- JPA의 EntityListener를 사용하여, 데이터 변경 기록을 남기는 기능을 구현하였다. 모든 데이터 변경 기록(등록, 수정, 삭제) 기록을 DB에 저장하여 관리자가 관리할 수 있다.
- 로그인 접속 기록(접속 시간, IP 주소, 접속 지역)을 DB에 저장하여 관리자가 관리할 수 있다.
IP 주소 가져오기
- 로그인 접속 기록을 기록할 때 사용자의 IP 주소를 가져오는 방법이다.
출처: https://linked2ev.github.io/java/2019/05/22/JAVA-1.-java-get-clientIP/
- 톰켓은 기본적으로 IPv6 주소를 사용하므로 주소 체계를 IPv4로 변경해야 한다.
- IntelliJ에서 톰켓의 주소 체계를 변경하는 방법은 다음과 같다.
1
-Djava.net.preferIPv4Stack=true
GeoIp2
- GeoIp2는 IP 주소를 사용하여 접속 지역을 확인하는 라이브러리로서, 해당 라이브러리를 사용하여 로그인을 시도하는 사용자의 접속 지역 또한 DB에 저장하였다.
출처: https://www.maxmind.com/en/accounts/421990/geoip/downloads
Data History 페이지 개발
- 모든 데이터 변경 기록을 확인할 수 있는 페이지로서, 검색, 삭제, Active Status를 변경 기능을 지원한다.
Login History 페이지 개발
- 모든 로그인 접속 기록을 확인할 수 있는 페이지로서, 검색, 삭제, Active Status를 변경 기능을 지원한다.
Main 페이지 개발
관리자 페이지 로그인시 처음 이동하는 페이지로서, 현재 사이트의 대략적인 데이터를 출력한다.
- 링크: github + 버전(application.yml 파일에서 버전 정보 및 URL 읽기)
- 링크: user page
링크: google analystic
- 통계: 사용자수
- 통계: 등록된 글의 수
- 통계: 이번 주 로그인 수, 이번 주 변경된 글의 수, 이번 달 로그인 수, 이번 달 변경된 글의 수(dropdown 사용)
통계: 디스크 메모리
- 게시판: Alarm(추후 구현 예정) / Notice Board
- 게시판: Login Histroy
- 게시판: Data History
메일
- 메일을 CRUD 할 수 있는 페이지다.
- 구현한 메일 전송 API를 활용하여 메일을 전송할 수 있다. 해당 기능은 추후 다양한 기능과 연동할 예정이다.
Comments powered by Disqus.