스프링

    [실습] 스프링시큐리티 로그인처리

    [실습] 스프링시큐리티 로그인처리

    목차 [이론] 스프링 시큐리티 1 [이론] 스프링 시큐리티2 [실습] 스프링 시큐리티 Form Login [추가] CustomAuthenticationProvider vs DaoAuthenticationProvider [이론] 스프링 시큐리티3 [이론] 스프링 시큐리티4 [추가] AuthorizeReqeusts vs AuthorizeHttpRequests [실습] 스프링 시큐리티 Json data Login 처리 [실습] 스프링 시큐리티 JWT 설정 [실습] 스프링 시큐리티 JWT 처리 OAuth2tory.com/entry/%EC%8B%A4%EC%8A%B5-%EC%8A%A4%ED%94%84%EB%A7%81-%EC%8B%9C%ED%81%90%EB%A6%AC%ED%8B%B0-JWT-%EC%84%A4%EC%A..

    [이론] 스프링 시큐리티2

    [이론] 스프링 시큐리티2

    목차 [이론] 스프링 시큐리티 1 [이론] 스프링 시큐리티2 [실습] 스프링 시큐리티 Form Login [추가] CustomAuthenticationProvider vs DaoAuthenticationProvider [이론] 스프링 시큐리티3 [이론] 스프링 시큐리티4 [추가] AuthorizeReqeusts vs AuthorizeHttpRequests [실습] 스프링 시큐리티 Json data Login 처리 [실습] 스프링 시큐리티 JWT 설정 [실습] 스프링 시큐리티 JWT 처리 OAuth2 스프링 시큐리티 기본 동작 흐름도 이번에는 AuthenticationProvider, AuthenticationManger SecurityContext에 대해서 알아본다 AuthenticationProvide..

    [이론] 스프링 시큐리티1

    [이론] 스프링 시큐리티1

    목차 [이론] 스프링 시큐리티 1 [이론] 스프링 시큐리티2 [실습] 스프링 시큐리티 Form Login [추가] CustomAuthenticationProvider vs DaoAuthenticationProvider [이론] 스프링 시큐리티3 [이론] 스프링 시큐리티4 [추가] AuthorizeReqeusts vs AuthorizeHttpRequests [실습] 스프링 시큐리티 Json data Login 처리 [실습] 스프링 시큐리티 JWT 설정 [실습] 스프링 시큐리티 JWT 처리 OAuth2 스프링 시큐리티란? 스프링 기반의 애플리케이션 보안(인증, 권한, 인가)를 담당하는 스프링 하위 프레임워크 인증: 접근하는 사용자가 누구인지 확인(현관문 벨을 눌렀을 때 '누구세요?'라고 묻기) 인가: 인증된..

    Spring-Rest Docs(1)

    Spring-Rest Docs(1)

    목차 Spring-Rest Docs(1) IDE내에서도 static/docs 확인 가능 asccidoctor 작업 이후 생성된 HTML 파일을 static/docs 로 copy build 의 의존작업 명시 jar 빌드 전에 doc생성build 폴더 내에서만 확인 가능 (7,8,9 과정 실행시 굳이 안해도 됨) jar안에 static/docs directory로 doc copy Spring 공식 문서를 참조하여 설정했습니다 테스트코드 import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; im..

    앞으로 계획

    푸념 오늘을 마지막으로 졸업 작품 프로젝트를 마무리를 했다. 물론 2학기 시작하고 교수님 피드백으로 여러 수정사항이 생길 수 도 있지만 내가 첫 계획한 모든 기능들은 구현을 하였다 기능 외에도 여러 쿼리가 나가던 것을 하나로 묶어 줄이기도하고 처음 죽써놨던 컨트롤러에서 엔티티를 반환하는 것들도 전부 DTO로 변경하였다 스프링을 공부하면서 그리고 프로젝트를 진행하면서 홀로 서버단에서 렌더링을 하는 과정은 그리 어려운 것이 아니였다 잘못되면 내가 변경하면 되는 것이었고 값을 전달 하는 것에 있어도 너무나도 쉽게 진행이 되었다 하지만 이렇게 수정을 거쳐서 진행을 하니 나중가선 어떤 값이 넘어오는지 필요로 하는지 조차 헷갈리기 시작했다 원래 계획대로 였으면 친구와 둘이서 프로젝트를 진행을 해야 했는데 피치못할 ..

    Spring - 예외처리

    서블릿 예외처리 예외가 발생할 경우 ex) RuntimeException... response.sendError()로 예외를 전달 할 경우 --> 당장 예외가 발생하는 것이 아니라 서블릿 컨테이너에 전달, 응답전에 컨테이너가 확인 어플리케이션 내에서 예외처리가 되지 않을경우(try~catch) WAS까지 예외 전달 되어 예외페이지 출력된다 예외페이지 등록 예외페이지 등록 web.xml 404 /error-page/404.html java @Component public class WebServerCustomizer implements WebServerFactoryCustomizer { @Override public void customize(ConfigurableWebServerFactory factor..

    Spring-filter interceptor

    서블릿 필터 필터내에서 특정 조건을 만족하지 못한다면 해당 필터에서 끝을 내고 컨트롤러를 호출하지 않도록 제어하는 역할이다 체인 형식으로 여러개의 필터를 순차적으로 등록하여 사용할수 있다 로그인관련에서 사용 흐름 Http 요청 -> WAS -> 필터 -> 서블릿 -> 컨트롤러 호출 Interface Filter인터페이스를 상속받아서 구현을 한다 public class MyFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { //초기화시 호출 } @Override public void doFilter(ServletRequest request, ServletResponse..

    Spring-MVC4 에러검증2

    에러 검증 Bean Validation 이전에 사용했던 Validator를 상속받아 사용했던 특정 검증기와는 다르게 검증 어노테이션을 이용하여 검증을 하는 방식이다 설정 xml 설정방법 스프링 관련 설정 : @EnableWebMvc어노테이션을 사용하면 OptionalValidatorFactoryBean을 글로벌 validator로 등록 dependency 설정: maven javax.validation validation-api 2.0.1.Final org.hibernate hibernate-validator 7.0.2.Final dependency 설정: gradle implementation 'javax.validation:validation-api:2.0.1.Final' 참고 http..

    Spring MVC3 - Error검증

    에러 검증 Validator 컨트롤러에서 아래 검증기를 호출을 하여 만약 에러가 있다면 특정 페이지로 이동 혹은 다시 페이지 호출 등 행동을 취할 수 있다. public class ItemValidator implements Validator { @Override public boolean supports(Class clazz) { return true; } @Override public void validate(Object target, Errors errors) { //검증 로직 /* * 아이디 공백이 아닌지 * 비밀번호 공백이 아닌지 * 정확한 값 타입이 입력이 되었는지 등등 * 필요한 검증 로직 들어가면 됨 */ } } BindingResult, Errors BindingResult는 Errors..

    Spring MVC2

    메세지 사용이유 다양한 화면에서 하나의 텍스트 메세지를 한 곳에서 관리하고 사용하도록 하기 위해서 사용된다 메세지 설정방법 resources파일 아래에 messages.properties파일을 만들어서 안에 key-value형식으로 값을 설정을 해둔다 메세지 사용방법 @Configuration public class MessageConfigJava { @Bean public MessageSource messageSource(){ ResourceBundleMessageSource message = new ResourceBundleMessageSource(); message.setBasenames("messages", "messages_en"); message.setDefaultEncoding("utf-8"..