Spring Security tag를 사용하다 보면 이런 오류가 발생하는것을 볼 수 있다. [ERROR][o.a.c.c.C.[.[.[.[dispatcherServlet].log:line175] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.apache.tiles.request.render.CannotRenderException: ServletException including path '/WEB-INF/jsp/common/layout.jsp'.] with root cause org.apache.j..
KeyCloak은 쓰면 쓸수록 매력적인 솔루션인것 같다. 잘 다룰줄만 알면 인증, 권한 관련해서는 어느정도 경지에 오를수도 있을것 같다는 생각이 든다. 요즘같이 OSS가 각광받는 시대에는 꼭 알고 있어야 할 OSS라고 생각한다. KeyCloak 설치부터 해서 springboot app SSO 연동, JWT 발급, Jenkins와의 연동 등의 포스팅을 했었는데 이번에는 OAuth2를 활용해서 구글 계정으로 KeyCloak 로그인을 하는 방법에 대해서 알아보겠다. 테스트 환경 구축 일단 테스트 환경부터 구축을 해보자. 중점적으로 살펴볼 부분은 '어떻게 OAuth2를 통해 로그인을 하는가'이기 때문에 별도의 어플리케이션과 연동은 하지 않고 가장 간단하게 nginx를 설치해서 http://localhost 라는..
지금은 거의 사용되지 않는(아직도 많이 사용할수도 있겠지만..) Jenkins + Ant + SVN + Windows서버 조합으로 자동배포하는 포스팅을 하려고 한다. Hudson이 껴있었으면 딱 again 2010년쯤 유행했던 기술셋인거 같다. 이 글을 쓰는 이유는 이제 거의 사용되지 않고 있어 기억에서 흐려지고 있어서 나중에 혹시라도 다시 써먹을수도 있기에 기록을 남겨둔다. 오래된 기술셋이지만 요즘에 많이 쓰이는 Maven + Git + Linux 서버를 사용한다 하더라도 메카니즘은 동일하니 이 과정을 알아두면 분명 도움이 된다. 1. Ant Build Script 작성 가장 먼저 해야 할일은 Ant Build Script를 짜는 것이다. 아래 링크를 참조해서 작성을 해보자. Ant Build (bui..
잘 되던 어플리케이션이었는데 오랫만에 보니 갑자기 pom.xml 에 오류가 떠있다. x 표시 위에 마우스를 올려봐도 아무런 힌트도 안나오고 무작정 알수 없는 에러란다. Overview를 봐도 마찬가지고 problem을 봐도 마찬가지다. Unknown error 라고만 나온다. 조금 찾아보니 흔한 오류이고 maven plugin version을 명시를 안해서 이러는 경우가 대부분이었다. 조치 3.1.1 pom.xml 에 properties 부분에 3.1.1 를 추가해 넣는다. 이렇게 넣어도 maven update 하라고 오류가 발생하는 경우가 있는데 이럴때는 말그대로 maven update를 해주면 된다. 끝!
지난 포스팅으로로 Jenkins 권한관리를 KeyCloak과 연동해서 하는 방법에 대해 다뤘었는데 이것만으로는 성에 차지 않을 수 있다. 왜냐면 글로벌한 설정이기 때문이다. 대형 프로젝트 같은것을 하는 경우 각 파트별로 자기의 영역만 보이는것이 가장 좋다. 아니, 그래야만 한다. 이를테면 이런 상황이다. User 계정으로 접속을 했는데 admin view에 있는 내용까지 모두 보인다. 각 프로젝트 사용자는 해당 프로젝트에만 접근이 가능해야한다. 이럴때 권한 설정을 하는 방법을 KeyCloak의 openid-connect를 사용해서 진행해 보도록 하겠다. 해야할 일은 쉽게 설명을 하자면 1. KeyCloak에서 3개의 '그룹' 을 생성할것이다. (admin, project1, project2) 여기에 사용..
SI 업계에서 IntelliJ를 사용하는곳은 극히 드물다. 왜냐!? 모든것을 다 비용으로 생각하고 비용을 줄이고 줄이고 줄여서 이윤을 가장 많이 남기는것이 가장 잘 한다고 칭찬을 받는게 이 업의 특징이기 때문이다. (모든곳을 가보지는 않았지만 적어도 몇몇은 잘 알기에..) 하지만 생산성에 대한 이슈가 생기고 이런 생산성에 대한 개선을 적극적으로 하려는 리더들 덕분에 드디어! 말로만 듣던 IntelliJ를 사용을 할수 있게 되었다. 백지상태에서 시작을 하면 더 빨리 배울수도 있을거 같은데 10년 넘게 이클립스를 써와서 잘 적응할수 있을지 모르겠다. 마치 어린아이가 언어를 배우는것처럼... 기초지식이 전무한 상태에서 학습하지 않고 그냥 시작해봤다. 시작부터 쉽지 않다. 조금이라도 이클립스랑 비슷할줄 알고 해..
Jenkins와 KeyCloak을 openid 방식으로 연결을 하다가 로그인이 안되고 KeyCloak 오류화면으로 리다이렉트 되는 현상이 발생을 했다. http://localhost:8180/auth/realms/Oingdaddy/protocol/openid-connect/auth?client_id=testuser&redirect_uri=http://localhost:18080/securityRealm/finishLogin&response_type=code&scope=web-origins%20openid%20roles%20oingdaddy%20email%20profile&state=NWVhNWViYjQtYjg2Ni00 이런식으로 되어서 Jenkins에 들어가서 수정을 해야 하는데 아예 들어갈 수 없는 상..
Jenkins에 대한 주제를 많이 다루면서 설치하는 방법에 대해서는 포스팅을 안했었다니... 마침 새로운 PC에 Jenkins를 설치할 일이 있어서 겸사겸사 포스팅도 해본다. Jenkins download and deployment Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software www.jenkins.io 위의 사이트에 들어가서 조금만 내리면 아래와 같이 유형에 따라 Jenkins 설치파일을 제공한다. Windows를 클릭하면 jenkins.msi (윈도우용 설치파일) 이 다운로드가 된다. 필자의 버전은 2.26..