springboot 6

[ 2Factor 인증] Google Authenticator 인증 java코드

관리자 모드로 로그인 할 때 2차 인증을 하는 기능 추가가 필요했다 여러가지 방법이 있고,그 중Google Authenticator을 사용하기로함 후딱 끝날거라고 생각했는데 ㅋ삽질 엄청나게함구현한거랑 뭐땜에 글케 삽질했는지 적어보겠음 삽질 1. google QR코드 자동으로 생성해주는 API가 지원이 종료됐다는데 이걸 모르고내내 그 API를 쓰려고해서 QR이 안만들어졌다ㅠ 계속 이미지 에러가 떠서..여차저차 찾다보니 API지원이 끝난걸알았고구글링하면서 다른사람들이 qr생성하는 코드를 찾게되어서참고해서 만들어봄 package com.example.demo.controller;import com.example.demo.service.TotpService;import org.sp..

[ 보안 취약점 ] main() 메서드

최근에 마무리된 프로젝트에서취약점 분석 결과중  디버그 목적으로 포함된 main() 메소드 혹은 지정된 디버그 메소드 호출을 검출합니다. 실제로 배포할 프로그램의 진입로 역할을 할 main() 메소드가 하나 존재해야한다면 그 소속 클래스를 옵션으로 지정하여 검출에서 제외할 수 있습니다. 이런 피드백을 받았다.  => 디버그 목적으로 작성된 main() 메서드나 디버그 메서드를 식별하고, 실제 배포용 프로그램에서 불필요한 메서드를 제거해야 한다는 말임.    억울함,, 디버그 목적으로 메인메서드를 만들ㅇ지않았음ㅠ있어야되니까 만든것이기 때문이지,, ,, + ㅅㅏ실 내가 짠 코드가 아님그러나 고쳐야 하는 사람이 나라는 게,,중요할 ,,뿐,,    이런 진단을 받고 main()메서드에 관해서 내가 아는 것은 이..

[ Springboot ] final

취약점 진단을 받고 보완을하다가 mapper 필드를 final로 선언하고, 이미 생성자 주입을 통해 할당하고 있으므로 별도의 세션 간 데이터 누출 문제를 유발하지 않도록 private SettlementMapper settlementMapper;private ModelMapper mapper; 위와 같이 선언해둔 부분을private final SettlementMapper settlementMapper;private final ModelMapper mapper; 로 변경해야한다는 진단을 받았다.    final 키워드를 붙이면필드가 객체 생성 이후 변경되지 않는 ‘불변성’을 가지게 됨.이로써 코드 안정성과 명확성이 증가하고, 멀티스레드 환경에서 동시성 문제를 줄일 수 있다. 반면 final이 없으면 필드..

[ swagger ] Failed to load remote configuration.

간단하게 테스트해볼게있어서새로 프로젝트를 하나 파서후딱 외부 API 하나만 연동해올라고스웨거 설정을 하는디         @Configurationpublic class SecurityConfig { @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http .csrf().disable() .authorizeRequests() .antMatchers("/v3/api-docs/**", "/swagger-ui/**", "/swagger-ui.html").permitAll() .anyRequest().authenticated(..