Spring Framework: 317개의 글
오늘 포스팅은 길지 않은 포스팅이 될 것같다. 오늘 포스팅할 내용은 이전 OAuth2.0 Authorization Server,Resource Server에 대하여 포스팅했던 내용에 Client 애플리케이션 소스코드를 추가한 최종 소스를 예제로 넣은 포스팅이다. 이전 포스팅들과 조금 달라진 소스가 있지만 아마 그대로 받아서 사용하면 간단한 OAuth2.0(Authorization Code Grant) 플로우를 테스트 해볼 수 있다. 혹시나 이전 포스팅을 보지 못했다면 밑 링크를 참고하자. [Spring Framework/Spring security] - Spring Security OAuth2.0 파헤치기! - 1(Authorization Server) [Spring Framework/Spring sec..
오늘은 이전 포스팅에서 다 마치지 못했던 Authorization Server와 나머지 Resource Server,Client 애플리케이션에 대해 포스팅 할 것이다. 사실 대부분 소스설명은 생략하였다. 사실 소스 설명이라고 할건 Spring Security 포스팅에서 다루었던 클래스들이다. 이전 포스팅에서는 Authorization Server 설정과 토큰 발급까지 다루었다. 이번 포스팅은 동적 클라이언트 등록에 관한 설명으로 시작할 것이다. 다들 페이스북, 구글의 어떠한 기능을 우리의 애플리케이션에서 사용하기 위하여 앱등록을 해본 경험자들이 있을 것이다. 앱을 등록하면 ClientId와 Client Secret이라는 것을 발급받게 된다. 그것은 바로 OAuth2.0에서 나의 애플리케이션을 인증하고, ..
내부 챗봇 솔루션을 개발하면서, OAuth2.0을 이용하여 자체 인증서버를 구축할 일이 생겼다. 최근에 웹 또는 앱을 보면서 자주 접하게 되는 인증 방식이 OAuth2.0 방식이다. 대표적으로 네아로(네이버 아이디로 로그인), 페이스북으로 로그인, 구글아이디로 로그인 등등이 지금부터 설명하게 될 OAuth2.0 인증방식이다. 그렇다면 왜 OAuth2.0을 사용하게 되었을까? 사실 많은 이유가 있겠지만 페이스북을 예제로 보면 3rd-party 애플리케이션이 페이스북의 특정 기능(3rd-party 애플리케이션 사용자의 리소스)을 사용하게 되면 사용자의 동의를 받아야한다.그러면 사용자의 페이스북 인증정보를 3rd-party 애플리케이션에도 가지고 있어야할까? 아니다 ! 인증은 페이스북에서 하는 것이고 3rd-..
오늘 포스팅할 내용은 Spring Security이다. 사실 필자는 머리가 나빠서 그런지 모르겠지만, 아무리 구글링을 통해 스프링 시큐리티를 검색해도 이렇다할 명쾌한 해답을 얻지 못했다. 대부분 이론적인 설명들은 잘 해주시는 분들이 많지만 실사례로 묵은 채증을 내려주지는 못했다.레퍼런스 또한 마찬가지이다. 영어를 잘 못하는 나로써는 잘 안되는 머릿속 몇 안되는 영어단어를 떠올리고 혹은 정말 모르는 문장은 번역기를 돌려서 보니 오히려 혼란만 가중되었다. 그래서 맘먹고 몇일을 스프링 시큐리티를 파고 들어보니 어느정도 사용할 정도가 되어서 이렇게 포스팅하게 된다. 아마 포스팅은 3~4개 정도로 이어질 것같다. 이번 포스팅에서는 토큰 기반 인증 직전까지의 포스팅이 될 것같고, 다음 포스팅은 이어서 JWT 토큰을..
오류명 : No message available 오류원인 : 1. Lombok Requires Annotation Processing 오류 2. MainApplication이랑 다른 패키지에 있을 경우 오류해결 : 1. Lombok Requires Annotation Processing 문제 해결 2. MainApplication이랑 같은 패키지에 넣어 놓아서 해결 1. Lombok Requires Annotation Processing 오류 인텔리제이로 프로젝트 실행시 아래 오류와 함께 프로젝트 실행이 안되었다. 확인해보니 Lombok Requires Annotation Processing 오류로 확인되었다. 다음과 같이 Enable 버튼을 클릭하여 해결하거나 아래와 같이 설정하여 해결하도록하자. 1-..
오류제목 : java.lang.NullPointerException(lombok 체크) 오류내용 : 회사에서 잘되던 코드가 집에서 실해하니 Null 오류를 뿜어냈다. 오류원인 : lombok 미추가로 인한 getter, setter 기능 미실행으로 발생한 오류였다. 오류해결 : lombok 추가와 Job에서 final 선언 추가 후 해결하였다. 잘되던 코드가 안된다면 lombok을 체크해보자. 회사에서 잘되던 코드가 집에서는 실행하니 NullPointer 오류를 발생했다. database.properties라고 생각하여 database.properties 변경을 하였으나 동일한 문제가 발생하였다. 원인은 lombok미설치로인한 getter, setter 실패 그러므로 잘되던 코드가 안된다면 getter,..
오류내용 : [WARNING] The requested profile "pom.xml" could not be activated because it does not exist. 오류원인 : 메이븐 빌드시 Run configuration의 pom.xml 문제로 확인됨 오류처리 : Run configuration의 profile에서 pom.xml 삭제 후 정상적으로 메이븐 빌드됨 프로젝트 메이븐 빌드시 다음과 같은 오류가 발생하였다. [WARNING] The requested profile "pom.xml" could not be activated because it does not exist. 해당 오류의 오류원인은 메이븐 빌드시 Run configuration의 pom.xml 문제로 확인되었다. 다음과 ..
오류내용 : Controller로 페이지 이동시 404 오류 발생 오류원인 : 1. Controller가 잘못 설정되어 있을 경우 2. application.properties에 내용이 잘못되어 있을 경우 3. jsp 파일의 경로가 잘못되어 있거나 없을 경우 4. build.gradle에서 dependency가 정상 주입이 안되어 있었을 경우 5. maven의 경우 pom.xml에서 tomcat-embed-jasper가 추가 안되어 있을 경우 오류해결 : 1. Controller 설정 확인 2. application.properties의 내용 확인 3. jsp 파일의 경로 확인 4. build.gradle에서 dependency가 정상적으로 추가되었는지 확인 5. pom.xml에서 tomcat-embed..
오류내용 : Web server failed to start. Port 8291 was already in use. 오류원인 : 해당 포트번호를 이미 사용하고 있을 경우 발생함 오류해결 : 1. cmd에서 netstat -ano | findstr 8291 입력 2. taskkill /F /PID 7292(PID값) 입력하여 해당 PID를 죽이면됨 3. 다시 netstat -ano | findstr 8291 조회하여 정상적으로 죽었는지 확인 다음과 같이 8291 포트의 PID 값을 확인한 후 taskkill로 죽인 것을 확인할 수 있다. 출처 : namubada.net/350?category=781472
오류내용 : cvc-complex-type.4: Attribute 'version' must appear on element 'web-app'. 오류원인 : web-app 요소에 반드시 버전을 표기해야만 하므로 버전을 표기하지않았을 경우 발생한다. 오류해결 : web-app 요소에 버전 표기 후 해결 다음과 같이 버전 표기가 안되어 있을 경우 오류가 발생한다. 버전 표기 후 문제가 해결된 것을 확인할 수 있다. 출처 : namubada.net/349?category=781472