back end 62

[보안취약점] Missing Anti-clickjacking Header in spring security

OWASP ZAP 실행 시 발생하는 취약점으로, 자세한 내용은 다음과 같습니다. OWASP ZAP 내용 1) 설명 The response does not include either Content-Security-Policy with 'frame-ancestors' directive or X-Frame-Options to protect against 'ClickJacking' attacks.The response does not include either Content-Security-Policy with 'frame-ancestors' directive or X-Frame-Options to protect against 'ClickJacking' attacks. 2) 해결 Modern Web browse..

back end/java 2023.02.15

Spring Security 중복 로그인 방지하는 방법

1. SecurityConfig에 다음과 같이 추가 @Configuration @EnableWebSecurity @RequiredArgsConstructor public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { /* 중간 생략 */ http .sessionManagement() .sessionFixation().changeSessionId() .maximumSessions(1) .maxSessionsPreventsLogin(true) ; http.logout() .logoutRequestMatcher(new A..

back end/java 2023.02.14

[java] gradle로 runnable jar 생성하는 방법

Eclipse의 경우 기본 java 프로젝트는 "Export..."를 통해 runnable jar를 만들었지만, gradle을 사용할 경우 "Export..."를 사용할 수 없습니다. 이 경우 다음과 같이 진행할 수 있습니다. gradle로 runnable jar 생성하는 방법 1. build.gradle에 shadow plugin 추가 plugins { id 'com.github.johnrengelman.shadow' version '6.1.0' } 2. build.gradle에 다음 코드 추가 jar { finalizedBy shadowJar manifest { attributes 'Main-Class': 'com.gradle.TestClass' } } 3. gradle clean, gradle bu..

back end/java 2023.02.09

[java] mssql(SQLServer)에서 datetime2 자료형 날짜 표시 2일 오차 발생하는 문제 해결방법

현상 datetime 자료형으로 설정된 컬럼은 문제없는데, datetime2로 설정된 컬럼을 JPA로 쿼리 하여 LocalDateTime에 넣었을 경우 날짜 2일 오차 발생 SSMS에서 같은 쿼리 실행 시, 날짜 정상 표시 ex) 2023-02-09 00:00:00 -> 2023-02-07 00:00:00 으로 표시 환경 Windows Server 2016 SQLServer 2016 Spring boot JPA 원인 java7이 포함된 SQL Server의 JDBC버전에 문제가 있습니다. 링크에는 3버전이 문제라고 되어있지만, 4 버전도 같은 문제가 있습니다. https://support.microsoft.com/kb/2652061 KB2652061 - FIX: SQL Server JDBC Driver ..

back end/java 2023.02.09

'org.springframework.web.servlet.handler.HandlerInterceptorAdapter' is deprecated

Spring 5.3 버전 이상에서 HandlerInterceptorAdapter를 사용하려고 하면 다음과 같이 화면에 표시됩니다. 즉, HandlerInterceptorAdapter는 Spring 5.3 이상 버전부터 더이상 사용하지 않습니다. 대신 다음과 같이 HandlerInterceptor를 implements 해서 사용해야 합니다. public class LoginInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { return HandlerInt..

back end/java 2023.02.06

Windows에 Springboot Service 등록하는 방법

개요 Springboot로 개발 후 Windows에 서비스로 등록하는 방법은 여러 가지가 있습니다. winsw를 이용하여 jar를 등록하는 방법이 검색하면 가장 많이 나오는 방법이고, nssm을 이용한 방법, exe로 만들어서 직접 서비스로 등록하는 방법도 있습니다. 이 글에서는 Apache Commons Daemon을 이용하여 서비스 등록하는 방법에 대해 소개합니다. 왜 Apache Commons Daemon인가? 처음에는 winsw를 사용하여 서비스를 등록했습니다. winsw를 사용하여 서비스를 등록할 경우 다음과 같이 프로세스 2개가 실행됩니다. 이 경우 winsw.exe와 javaw.exe가 동기화가 되지 않아 하나만 실행되어있는 상태가 될 수 있으며, 따라서 프로세스가 실행 중인지 검사할 때 두..

back end/java 2023.02.06

ClassNotFoundException: JAXBException 해결 방법

spring boot로 프로그램 개발 시, java 8에서 상위 버전으로 업그레이드를 한 경우 다음과 같은 에러가 발생할 수 있습니다. ClassNotFoundException: JAXBException JAXBException의 발생 원인 JAXB API는 Java EE(Enterprise Edition) API로 간주되며 자바 9 버전부터는 더 이상 포함되지 않습니다. 게다가 자바 11부터는 JDK에서 완전히 삭제되었다고 합니다. 출처: https://stackoverflow.com/questions/43574426/how-to-resolve-java-lang-noclassdeffounderror-javax-xml-bind-jaxbexception/43574427#43574427 JAXBExcepti..

back end/java 2023.01.06
728x90
loading