기본 콘텐츠로 건너뛰기

2021의 게시물 표시

스프링 자바 JAVA 서버에서 URL 찾기

스프링 서버단에서 호출 URL 찾기 서버(spring)에서 호출 URL을 알아야 할때 유용할 듯 @Override      public   void  urlCheck(HttpServletRequest request, HttpServletResponse response) {          //이전 페이지의 정보를 알때 레퍼러를 활용(URL을 직접 치고 들어오는경우는 null)          String  referer  =  ( String ) request.getHeader( "REFEREER" );            //URL를 확인하는 방법         UrlPathHelper urlPathHelper  =   new  UrlPathHelper();          String  originalURL  =  urlPathHelper.getOriginatingRequestUri(request);            //스프링 시큐리티 로그인할떄 저장하는 캐시를 활용         RequestCache requestCache  =   new  HttpSessionRequestCache();         SavedRequest savedRequest  =  requestCache.getRequest(request, response);          String  redirectUrl  =  savedRequest.getRedirectUrl();             } Colored by Color Scripter cs 참고 감사합니다 https://blog.jiniworld.me/53 https://jang8584.tistory.com/86

스프링 시큐리티(Spring Security) 권한 없을때 여러 결과 페이지 설정하기

Spring Security의 인가 실패시 결과 커스텀하기 Java에서 config 설정 방법으로 남김 AccessDeniedHandler()를 커스텀 해야함 public   class  CustomAccessDeniedHandler  implements  AccessDeniedHandler {       @Override      public   void  handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException e)  throws  IOException, ServletException {          //스프링 시큐리티 로그인때 만든 객체         Authentication authentication  =  SecurityContextHolder.getContext().getAuthentication();          //현재 접속 url를 확인         UrlPathHelper urlPathHelper  =   new  UrlPathHelper();          String  originalURL  =  urlPathHelper.getOriginatingRequestUri(request);            //로직을 짜서 상황에 따라 보내줄 주소를 설정해주면 됨         response.sendRedirect( "/" );     } } Colored by Color Scripter cs config에 설정 @Override      protected   void  configure(HttpSecurity http)  throws  Exception {         http             .addFilterBefore(authenticationFilter(), UsernamePasswordSessionAuthenticationFilter. class )             .authorizeReque

Mac 맥 맥북 mySql [HY000][1449]The user specified as a definer ('mysql.infoschema'@'localhost') does not exist

[HY000][1449]The user specified as a definer ('mysql.infoschema'@'localhost') does not exist 에러 발생시 터미널로 mysql접속한 후  DROP  USER  'mysql.infoschema' @ 'localhost' ;   CREATE  USER  'mysql.infoschema' @ 'localhost'  IDENTIFIED  BY   'password' ;   GRANT  SELECT   ON   * . *  TO  `mysql.infoschema` @ `localhost` ; cs 작성해서 새로 생성하면 문제해결~

Mac 맥 맥북 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED 에러 해결

REMOTE HOST IDENTIFICATION HAS CHANGED 에러 해결 이렇게 에러가 남 1 2 3 4 5 6 7 8 9 10 11 12 13 14 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED !      @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY ! Someone could be eavesdropping on you right now (man - in - the - middle attack) ! It is also possible that a host key has just been changed. The fingerprint  for  the ECDSA key sent by the remote host is SHA256:(숨김) Please contact your system administrator. Add correct host key in  / Users / ddoongmause / .ssh / known_hosts to get rid of this message. Offending ECDSA key in  / Users / ddoongmause / .ssh / known_hosts: 1 ECDSA host key  for  dev.ddoongmause.co.kr has changed and you have requested strict checking. Host key verification failed. Colored by Color Scripter cs  맥북을 포맷하고 ssh저장한걸 가져오니까 나던 오류라서 아마 맥정보가 바껴서 난거 같음 sudo rm ~ / .ssh / known_hosts cs 방법은 여러가지가 있지

mac 맥 맥북 mysql8 ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded 에서 해결

mySql8에서 등장하는 plugin 'auth_socket' is not loaded 에러 해결 방법 mySql8를 맥북(m1)에 설치해서 사용중에 한번 발생해서 첨에는 mySql를 재설치 했는데 또 발생해서 해결해봄 brew services stop mysql cs 입력해서 브루에서 mysql를 끄고 혹시 몰라서 mysql까지 끄실려면 mysql.server stop cs 입력하시면 됨 mysqld_safe  - - skip - grant - tables  & ##먼저 입력하고 입력창 같은 상태일때 아래를 입력 mysql  - u root cs 이렇게 입력하면 mysql접속 가능(그전에는 'auth_socket' 타령 오지게했음) select Host,User,plugin from mysql.user where User = 'root' ;   update mysql.user  set  plugin = 'mysql_native_password' ; cs 조졸두님 mySql과 제꺼는 버전이 다른지 그 밑의 명령어는 실행이 안됨ㅠㅠ 일단 저기까지만 하고  mysql.server stop mysql.server start cs mysql를 껐다가 킴(안전 모드를 끄기 위해) mysql  - u root  - p use mysql; CREATE USER  'root' @ 'localhost'  IDENTIFIED BY  '비밀번호' ; GRANT ALL PRIVILEGES ON  * . *  TO  'root' @ 'localhost'  WITH GRANT OPTION; FLUSH PRIVILEGES; exit; 이거를 입력 하는데 아마 safe모드 어쩌구 할 수 있음 sudo mysqld stop cs 을 입력해서 안전 모드를 끄고 다시 비번 넣어주면 될 거 같음 감사합니다. 참고  https://gist.github.com/st

mac 맥 맥북 사용중인 포트 죽이기 Kill

mac 맥북 간혹 포트 안꺼져서 에러 날때 포트 끄기 사용중인 포트 확인(8080포트일때) lsof  - i : 8080 cs 아마도 이렇게 나올듯? COMMAND  PID           USER   FD   TYPE             DEVICE SIZE / OFF NODE NAME java     3799     ddoongmause  132u  IPv6  0xe0130a1e769cedfd       0t0  TCP  * : 8080  (LISTEN) cs 끄기(kill) - PID번호를 입력하면 됨 kill  - 9   3799 cs 감사합니다 출처 : https://88240.tistory.com/475

자바, 스프링, 스프링 부트에서 세션에 데이터 저장하기

자바 스프링에서 세션의 값을 사용해서 저장할 때 컨트롤러에서 이렇게 사용하면 됨 //HttpSession이어야 함(넣기) public   String  example(HttpSession session){       session.setAttribute( "sessionId" ,  12 );        return   "example" ; }       //꺼내기 public   String  exampleReceive(Model model, Eligibility eligibility, HttpSession session) {      if (session.getAttribute( "sessionId" )  = =   null ){          return   "redirect:/bye" ;     } else {          int  sessionId  =  ( int )session.getAttribute( "sessionId" );          //세션 개별 삭제             session.removeAttribute( "sessionId" );           //세션 전체 제거         session.invalidate();          // 세션 유지시간 설정(초단위)           // 60 * 30 = 30분          session.setMaxInactiveInterval( 30 * 60 );           // 세션 시간을 무한대로 설정          session.setMaxInactiveInterval( - 1 );            return   "/exampleReceive" ;     } } Colored by Color Scripter cs 출처  :  https://devuna.tistory.com/53

Oracle Cloud(OCI) 오라클 클라우드 무료 버전 사용하기

 오라클 클라우드 세팅 하기 어쩌다가 오라클 클라우드 무료버전이 굉장히 좋다는 얘기를 들어서 세팅하고 사용해보려고 함(AWS 1년지나서 지웠는데 오라클은 평생 무료라고.....) 가입은 모 이리저리 하면 될거 같고..... 인스턴스 생성 인스턴스를 만드는거부터 시작하려함 다음 페이지에 Create Instance버튼을 누르고 Name은 자신이 설정하고 싶은대로 설정 Placement의 Edit를 누르시면 어디 지역 선택했는지 나오는데 제일 처음 가입할때 설정해둔 지역으로 나오나봄(전 Seoul) Image and shape가 있는데 인스턴스의 os를 설정하는 곳 같음 저는 centos7로 세팅할 계획 Edit를 누른후 Oracle Linux7.9 옆의 Change Image를 눌러서 CentOS7로 변경 후 Select Image를 선택 Shape는 무료버전은 AMD뭐시기뿐 선택 사항이 없으니 패쓰 Networking도.... 패쓰(잘 모르겠음) Add SSH keys가 중요한데 처음에 세팅을 잘못하면 아예 접속이 안되므로 꼭 여기서 세팅을 잘 하시기를 바람(No SSH keys는 안해봐서 모르겠음) public key file을 사용해 보려고 함 먼저 Save Private Key와 Save Public Key를 눌러서 두개의 키를 다운함 다운한 Public Key는 옆의 Upload pulic key files로 업로드 두개의 파일을 일단 잘 챙겨놓기 그다음 Boot volume인데  Specify a custom boot volume size는 생성 용량을 지정하는 거인데 무료는 100GB까지 될거임 저는 그냥 체크 안해서 기본 세팅인 46.6기가로 Use in-transit encryption 인스턴스와 볼륨 사이에 전송이 암호화 데이터 전송이 암호화라는거 같은데 일단 체크해봄(기본은 체크 안함) Encrypt this volume with a key that you manage 키로 암호화 관리 한다는 소린가.......체크하면 추가 설정이 필요한거

CentOS7에 MySQL 마이SQL (8.X) 설치 (라즈베리파이4)

CentOS7(라즈베리파이4)에 MySQL (8.X)버전을 설치 하기 설치 RaspberryPi4라서 그런가 wget명령어를 치면 command not found 에러가 나서 wget 설치부터 시작!! yum  - y install wget cs 입력해서 다운 wget https: / / dev.mysql.com / get / mysql80 - community - release - el7 - 3. noarch.rpm cs 레파지토리 설치 sudo rpm  - ivh mysql80 - community - release - el7 - 3. noarch.rpm  cs 그리고 나서 mysql-community-server 설치 sudo yum  - y install mysql - community - server cs 출처 : https://akageun.github.io/2019/11/18/centos7-mysql80.html 세팅 실행 sudo systemctl start mysqld cs 자동 실행 sudo systemctl enable mysqld cs mySQL8은 임시 비밀번호가 ""가 아니고 자동 생성되므로 찾아야함 찾는 명령어 sudo cat  / var / log / mysqld.log  |  grep  - i  'temporary password' cs 보안 설정 mysql_secure_installation cs 임시 비밀번호 치고 들어가면 비밀번호 입력하라고 함(처음에 비밀번호 규칙이 어렵게 되어 있어서.... 미리 설정을 바꾸고 했어야 했나ㅠㅠ전 어렵게 만들었음) 비밀번호 치고 다음 나머지 설정들은 이렇게 묻는데 자신에 맞게 YES / NO 선택 Change the root password? N Remove Anonymous users? Y Dissallow root login remotely? N Remove test database and access to it? Y Reload privilege tabl

CentOS7 MariaDB 마리아DB 설치

  마리아DB설치 curl -sS https : //downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash 입력하여 /etc/yum/yum.repos.d/mariadb.repo를 생성 시킨다 arm71로 설치가 되면 저기서 에러가 나고 실제로 마리아db설치가 안됩니다 os설치의 중요성..... yum -y install MariaDB-server 마리아db를 설치합니다. systemctl enable mariadb 마리아DB를 자동으로 실행되도록 한다 systemctl start mariadb mysql_secure_installation DB 실행하고 보안설정 진행 switch to unix_socket authentication? Y Change the root password? N Remove Anonymous users? Y Dissallow root login remotely? N Remove test database and access to it? Y Reload privilege tables no? Y 세팅완료 semanage port -l | grep mysqld_port_t 마리아DB의 포트번호를 확인하는 명령어인데 사용 못하다고 하면 yum -y install policycoreutils-python 설치한 후에 다시 실행하면 포트번호를 확인할 수 있다. systemctl restart mariadb firewall-cmd --permanent --add-port=3306/tcp 방화벽에 3306를 열어둔다 firewall-cmd --reload 방화벽 재시작 mysql -u root -p 마리아db접속 use mysql grant all privileges on *.* to 'root' @ '%' identified by '비밀번호' ; mysql사용하고 계정에 권한을 지정해 준다 flush privileges ; grant 테이블을 재

Git 깃 한글깨짐 한글이 숫자로 문제 해결

 Git 한글깨짐 문제 해결 git status를 치는데 한글 이름이 다 숫자로 나옴ㅠㅠ 수정함: "6\354\243\274\354\260\250(Spring)/6\354\243\274\354\260\250_\354\234\240\355\235\254\354\203\201.md" 이렇게....ㅠㅠ 수정 방법은 단순함  git config --global core.quotepath false 입력하면 한글 잘 나옴

Next.js 정리(with React)

Next.js: React기반 Framework, Server Side Rendering에 장점이 있음 설치 방법 npx create-next-app next-tutorial( 설치 폴더 이름 ) # or yarn create next-app next-tutorial( 설치 폴더 이름 ) # Manual npm install next react react-dom # or yarn add react react-dom next create next-app설치 1. 컴파일과 번들링이 자동(webpack과 babel)       - npm run dev  // yarn run dev 2. 자동 리프레쉬 기능으로 바로 반영 3. 서버사이드 렌더링(개발자 모드에서 소스가 보임) 4. 스태틱 파일을 지원(public 폴더 활용) 5. pages폴더로 분기 6. [id].js라면  Global - CSS적용 방법  pages/_app.js에 import 시켜야함(모든 페이지 다 적용) import   '../styles/globals.css'   function  MyApp({ Component, pageProps }) {    return   < Component {...pageProps}  / > }   export   default  MyApp cs Semantic(React용 부트스트랩같은거) https://react.semantic-ui.com/ yarn add semantic-ui-react semantic-ui-css ## Or NPM npm install semantic-ui-react semantic-ui-css pages/_app.js에 import import 'semantic-ui-css/semantic.min.css' _app.js 활용 페이지 전환시 레이아웃을 유지할 수 있음 페이지 전환시 상태값을 유지할 수 있음 componentDidCatch를 이용해서 커스텀 에러 핸들링을 할 수 있음 추