본문 바로가기

spring41

@RequestParam과 @PathVariable @RequestParam과 @PathVariable은 주로 사용하는 형태의 파라미터를 전달하는 경우 사용한다. Case 1 ) http://xxx.x.x?index=1&page=2 파라미터의 값과 이름을 함께 전달하는 방식으로 게시판 등에서 페이지 및 검색 정보를 함께 전달하는 방식을 사용할 때 많이 사용 Case 2 ) http://xxxx.x.x/index/1 Rest api에서 값을 호출할 때 주로 많이 사용 @RequestParam ? url뒤에 붙는 파라미터의 값을 가져올 때 사용한다. ex) /getDriver?name="name에 담긴 value" url이 전달될 때 name 파라미터(name에 담긴 value)를 받아오게 된다. - Case 1의 경우 사용 - 어노테이션 괄호 안에 전달인자.. 2023. 8. 24.
[SpringSecurity] 필터 필터란? WAS에서 실행된 요청이 오면 이 요청이 서블릿으로 들어오는데, 서블릿으로 들어오기 전 처리하는 것이 필터 필터 흐름 : HTTP 요청 -> WAS -> 필터 -> 서블릿 -> 컨트롤러 필터 체인 : HTTP 요청 -> WAS -> 필터1 -> 필터2 -> 필터3 -> 서블릿 -> 컨트롤러 1) spring 이 시작되면, ServletContext 와 RootApplicationContext 가 load 되고, bean들을 관리한다 ( * HTTP요청이 들어오면 Servlet 컨테이너에서 요청을 받는다.) 2) spring security 에 의해 설정된 SecurityFilterChain 이 DelegateFilterProxy와 FilterChainProxy 에 의해 관리된다. (*Servle.. 2023. 8. 22.
[SpringSecurity] FailureHandler 구현 1) CustomAuthFailureHandler .java - config파일과 같은 뎁스에 SimpleUrlAuthenticationFailureHandler를 상속한 CustomAuthFailureHandler 생성 - onAuthenticationFailure 오버라이딩 @Component public class CustomAuthFailureHandler extends SimpleUrlAuthenticationFailureHandler { @Override public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws.. 2023. 8. 2.
[Spring Security] Exception - BadCredentialsException 아이디가 존재하지 않거나, 비밀번호가 틀린 경우 발생하는 exception. (보안을 위해 아이디가 틀린 건지 비밀번호가 틀린 건지 알려주지 않기 위해 둘 다 BadCredentialsException 을 발생 시킨다) 기본은 위 처럼사용하지만 아이디가 틀린 건지 비밀번호가 틀린 건지 알리고 싶으면 AuthenticationProvider 를 커스텀 하여 1) 아이디가 없는 경우에는 UsernameNotFoundException 2) 비밀번호가 틀린 경우에는 BadCredentialsException 을 발생시키 사용 후 AuthenticationFailureHandler 에서 Exception 을 처리해주면 된다 2023. 7. 26.
서버 재기동시 세션 [vo] session.setAttribute("memberVo",loginService.selectMember(meberVo)); ${sessionScope.memberVo.id} [String] String id = loginService.selectMember(memberVo).getId; session.setAttribute("id", id); String이나, Interger형 데이터를 넣으면 세션유지가 잘 되지만, Vo나 객체는 사라지고 String, int 등의 값은 남는다. 2023. 2. 14.
Mybatis쿼리문 다중 파라미터 사용 1. 객체를 만들어서 대입 보통 VO 객체를 많이 사용. ParameterType과 ResultType 모두 setter와 getter가 있는 객체 타입으로 넣어주고 필드명(정확히는 getter 메소드에서 get을 빼고 앞글자를 소문자로 바꾼 명칭)만 넣어주면 Mybatis가 알아서 값을 찾고 넣어줌 2. HashMap을 사용 Map계열은 Key와 Value로 나눠져 있기 때문에 쿼리문에서 #{key}로 값을 찾아서 넣을 수가 있다. 숫자가 들어갈지 문자가 들어갈지 정해지지 않은 상태라면 HashMap 형태로 사용. 혹시 int 타입의 컬럼값을 받아올 때 캐스팅 예외가 발생한다면 Long 타입으로 지정. unsigned int는 long 타입으로 변환. 2023. 2. 11.