본문 바로가기

전체 글

(41)
final, 접근제어자 레거시 코드를 리팩토링을 할 때, final 키워드가 없고 접근제어자가 public 인 메소드를 마주하면, 아래 의문을 계속 확인하면서 작업해야 한다. 이 메소드는 왜 public 이지? 외부에서 사용하는 곳이 있나? 이 메소드를 어디선가 override 해서 사용하고 있나? API 를 만들 때, 이 클래스를 사용할 개발자에게 어디까지 노출할 것인지를 계속 확인해야 한다. public interface A { void a1(); } public class AImpl implements A { @Override public void a1() { a2(); a3(); } public void a2() { .. } private void a3() { .. } } AImpl 의 a1() 메소드는 같은 클래스의 ..
http.formLogin() http.formLogin() .loginPage("/login.html") .defaultSuccessUrl("/home") .failureUrl("/login.html?error=true") .usernameParameter("username") .passwordParameter("password") .loginProcessingUrl("/login") .successHandler(loginSuccessHandler()) .failureHandler(loginFailureHandler()) ; loginPage 사용자 정의 로그인 페이지 사용자가 Login 페이지를 구성한 후, 경로를 입력하면, LoginPage 호출시 해당 경로에 작성한 커스텀 페이지가 열린다. defaultSuccessUrl 로그..
Spring Security 기본 User/Password 설정 Spring Security 의존성을 추가하면 기본적으로 로그인 가능한 id/pasword를 제공한다. 기본 아이디는 user 이고, password 는 스프링 부트를 실행할 때마다 랜덤한 UUID 값으로 제공한다. Using generated security password: 392c7d84-9210-4a3b-9d81-b516abcb4b47 2021-12-19 18:16:10.594 INFO 62476 --- [ main] o.s.s.web.DefaultSecurityFilterChain : Will secure any request with [org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@6..