본문 바로가기
관리자

Programming-[Backend]

(394)
[TIL][링크] yyyyMMddhh24miss, MSSQL CONVERT 변환 코드 표 yyyyMMddhh24miss 은 Oracle에서 사용하는 날짜/시간 타입이다. 20220216175803 (2022-02-16 17:58:03) 형식으로 저장된다. 사외 시스템과 api를 연동하는 문서에 해당 단어가 적혀있어서 찾아보게 되었다. SQL dialect별 해당 포맷으로 날짜값을 추출하는 식은 아래와 같다. (참조1) MSSQL SELECT CONVERT(CHAR(8), GETDATE(), 112) + REPLACE(CONVERT(CHAR(8), GETDATE(), 108), ':', '') Oracle SELECT TO_CHAR(SYSDATE, 'yyyymmddhh24miss') FROM DUAL MSSQL 날짜 변환표 - 참조 2 번호 쿼리 결과 코드 0 CONVERT(CHAR(19), ..
[TIL][작성중]RestTemplate 사용하기 참조 링크 https://blog.naver.com/hj_kim97/222295259904 https://tecoble.techcourse.co.kr/post/2021-07-25-resttemplate-webclient/ https://sjh836.tistory.com/141 -------------- REST Template으로 GET을 보내야하는데 header값을 추가하고 싶다면 exchange 메서드를 활용해야한다. https://stackoverflow.com/questions/21101250/sending-get-request-with-authentication-headers-using-resttemplate
[TIL][링크] 타임리프 부트스트랩 클래스 표 - grid options https://getbootstrap.com/docs/4.1/layout/grid/ col-sm, col-md 등과 같이 부트스트랩에서 제공하는 class 이름에 대한 설명이 있는 링크이다.
[스프링 시큐리티]18. DB 연동 인가처리 - 스프링 MVC 복습, FilterInvocationSecurityMetadataSource 기초 구현 0. 소스 코드 수정 강의에서 DB 연동 처리를 하기 위해서 JPA를 사용하였다. 그런데 2년 전 강의라 그런지, Entity 구조상 @ManyToMany 등 JPA 안티패턴이 있고 잘못된 부분들이 좀 있어서 Entity 및 전체 구조를 적절히 수정했다. 아래 주소의 레포지토리 - master branch에 수정된 파일들을 담았다. (원본은 keep 브랜치) https://github.com/CJ0823/corespringsecurity 복습도 할겸, thymeleaf와 controller 코드를 잠시 살펴보자. 강의 소스코드에는 권한을 등록하는 admin/role/register 주소의 view 파일이 존재하지 않았다. 그래서 detail.html 파일을 복사해서 조금 바꿔주었다. register.ht..
[스프링 시큐리티] 17. Ajax 인증 구현 - DSL, CSRF 1. DSL DSL(Domain-specific language, 도메인 특화 언어)는 특정화된 도메인을 적용하는데 특화된 언어이다. HTML과 같이 웹 전체에서 널리 쓰이는 언어의 개념이 아니라 특정한 도메인에서만 쓰이는 언어라고 보면 된다. 지금 학습하고 있는 맥락에서 이해하자면, filter나 handler 등의 http. 환경설정 메서드의 set를 만든다고 생각하면 될 것 같다. spring security를 전반적으로 다 이해하고 환경설정 set를 만들어서 활용할 정도가 되어야 사용할 것 같다. 그래서 이 부분은 가볍게 이해하고 넘어가면 될 것 같다. AbstractHttpConfigurer 초기화를 위한 설정 클래스이다. 이 클래스를 이용해서 스프링 시큐리티의 환경설정 set를 만든다. con..
[스프링 시큐리티] 16. Ajax 인증 구현 - 인증, 인가 처리 1. 인증 처리 : AuthenticationSuccessHandler & AuthenticationFailureHandler From 인증과 같이 인증 성공과 실패 시 handler를 적용한다. Form 인증 방식과 다를 게 없고, View 형태로 응답하는 것이 아니라 response의 body에 정보를 담아서 보내주는 형태이다. AuthenticationSuccessHandler response에 정보를 담기 위해서 ObjectMapper를 불러온다. 그리고 앞선 글에서 살펴본 AuthenticationManager에서 성공한 인증 객체, authentication을 받아와서 Account 객체로 만들어서 응답값으로 반환한다. public class AjaxAuthenticationSuccessHan..
[스프링 시큐리티] 15. Ajax 인증 구현 - AbstractAuthenticationProcessingFilter, Token, AuthenticationProvider 1.Ajax 인증 개요 Ajax 인증은 Form 인증과 유사하다. 다만, Form 인증은 동기적인 방식으로 인증처리를 했던 것에 비해서 Ajax 인증은 비동기적인 방식으로 인증을 처리한다. AjaxAuthenticationFilter -> AjaxAuthenticationToken -> AuthenticationManager -> AjaxAuthenticationProvider Ajax 인증의 가장 큰 기본적인 흐름은 위와 같다. Form 인증과 별반 다를게 없다. ※Ajax Asynchronous Javascript and XML의 약자이다. 비동기적으로 클라이언트에서 서버로 요청을 하여, 웹페이지의 일부만을 비동기적으로 갱신할 수 있게 해서 웹페이지의 효용성을 높인다. 2. Ajax 인증 필터 만들기..
[TIL][Spring security] hasRole 적용 시 access is denied 문제 문제 SecurityConfig에서 hasRole("MANAGER")로 권한을 주었는데도 "/messages" 페이지에 대한 접근이 불가했다. @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() // .antMatchers("/mypage").hasRole("USER") .antMatchers("/messages").hasRole("MANAGER") // .antMatchers("/config").hasRole("ADMIN") .antMatchers("/**").permitAll() .anyRequest().authenticated() .and() .formLogin() .logi..