최근 이슈가 되고 있는 log 관련 보안 이슈들은 많은 개발자들을 괴롭히고 있다. 치명적인 취약점이다 보니 빠른 조치가 이루어져야 하고 보안 종사자들이 빠르게 대응을 해서 이제 어떻게 조치를 해야 하는지 대략적인 윤곽이 나왔다. 필자도 log4j, log4j2, logback에 대한 조치내용을 전달받아 다음과 같이 조치를 하였다. log4j 그냥 log4j라고 하면 log4j 관련 라이브러리가 1.x 버전을 뜻한다. log4j는 JMSAppender를 사용하는가 안하는가가 관건이다. JMSAppender를 사용한다면 사용을 중지하거나 안전한 log4j2로 migration을 해야 한다. JMSAppender는 보통 log4j.xml에서 설정을 하지만 web.xml 같은 곳에서 log파일의 위치나 이름을 ..
Jenkins 사용시 사용자별로 특정 Job만 보였으면 하는 요구사항이 있다. 즉 A user는 A project만, B user는 B project만 각각 빌드할 수 있어야 한다. 이에 대한 방법을 소개하고자 한다. 필요 플러그인 설치 기본으로 Jenkins를 설치하면 Matrix Authorization Strategy Plugin 이 설치가 되어 있지 않다. 사용자별/프로젝트별 프로젝트 관리를 위해서는 필요한 플러그인이다. 설치가 안되어 있다면 설치해준다. 사용자 생성 일단 사용자 생성을 한다. 사용자 생성은 Jenkins 관리 > Manage Users 에서 할 수 있다. 이렇게 A user와 B user를 생성하였다. Job 생성 이 글을 읽는 분들이라면 Jenkins에 이런 Job들은 있을것이..
jsp에서 springboot에서 사용하는 설정파일 (application.yml, application.properties)의 값을 바로 가지고 올 수 있다. application.properties (or application.yml) 파일은 다음과 같이 정의가 되어 있는 상황이다. oing.daddy=cool guy 이 값을 jsp에서 바로 가지고 와서 사용하고 싶다. 가지고 오는 방법은 다음과 같다. 1. @environment.getProperty 를 통해 가져오는 방법 ${oingDaddy} 위와 같이 spring tag를 선언해주고 spring:eval 을 통해서 값을 가지고 올 수 있다. @environment.getProperty 를 통해 properties 파일 (or yml 파일) 의..
Jenkins 실행중에 다음과 같은 오류가 발생하였다. 상황은 A라는 서버에서 잘 돌고 있는 jenkins를 그대로 가지고 와서 B라는 서버에서 돌린 것이다. 가지고 올때 A 서버의 jenkins job의 상태값까지도 들고 와서 위와 같이 DirectoryNotEmptyException 이 발생을 한 것이라고 보면 된다. 해결책으로는 오류로그에서 명시된 /jenkins설치경로/data/jobs/job이름/lastSuccessful 와 lastStable 을 찾아가 그곳의 기록을 지워주면 오류는 해결된다. 끝!
이클립스에서 주석을 적용하고 해제하는 단축키는 Ctrl + Shift + C 이다. Ctrl + /, Ctrl + Shift + / 등도 있지만 Ctrl + Shift + C 가 더 다양한 파일에 적용이 되어 Ctrl + Shift + C 를 애용한다. 하지만 새로운 STS를 받고 Ctrl + Shift + C 를 하니 다음과 같이 되어 불편했다. 우측 하단에 위와 같이 Ctrl + Shift + C 를 하니 두개의 주석처리 방법이 나오고 선택을 하라고 한다. 매번.. 그래서 단축키 설정하는 곳으로 들어가 고치고 이전처럼 사용하기로 하였다. 이클립스 단축키 설정 이클립스 상단 Window > Preferences > 검색창에 Keys 검색 여기에서 toggle로 검색을 해보면 주석처리 관련된 단축키들이 ..
STS를 다운받고 jsp로 구현된 프로젝트를 import 해보면 다음과 같이 나온다. 이렇게 내 NPP+로 jsp 파일이 매핑이 되게 되어있고 누르면 실제로 STS 상에서 열리는게 아니라 NPP+가 켜지며 jsp 파일이 열린다. 우리가 알던 그 모습대로 열어보자. Editor 설치 Eclipse 상단 Help > Eclipse Marketplace 클릭 jsp로 검색 후 Eclipse Enterprise Java and Web Developer Tools install! Enterprise 아닌걸로 받으면 jsp가 안된다. 꼭 Enterprise 버전으로 받자! 설치가 다 되면 STS restart를 해준다. 설치 끝! 설치만 해도 다 해결이 될것인데 혹시 적용이 안되고 JSP가 Default Edito..
servlet 3.0이 되면서 예전에 web.xml에서 하던 servlet에 대한 설정을 java config로 할 수 있다. 기본적으로는 이런 servlet에 대한 설정을 안해주면 springboot가 DispatcherServlet으로 처리를 한다. 하지만 때에 따라 다른 servlet을 태워야 하는 요청이 있을수도 있다. 이것을 하기 위한 방법은 다음과 같다. Application.java (springboot main class) @SpringBootApplication public class ApiApplication { public static void main(String[] args) { SpringApplication application = new SpringApplication(Api..
메인인 springboot app(app1)이 있고 front의 틀을 잡아주는 Tiles는 별도의 어플리케이션(app2)에 들어가 있다. app1에서는 app2에 대해 dependency를 걸고 있는 상황이다. app2가 jar로 app1에 library처럼 들어간 것이다. 그림으로 표현하자면 위와 같은 모습이다. tiles가 jar 형태로 배포가 되어야 하기에 webapp/WEB-INF 하위에 위치를 시킬 수 없어서 META-INF/resoureces/WEB-INF 하위에 tiles를 위치시켰다. IDE 상에서 dependency를 걸었을때는 다음과 같은 기본 설정으로도 잘 되었다. springboot + tiles 설정 (기본) @Bean public TilesConfigurer tilesConfig..