반응형 분류 전체보기386 [spring security, oauth2] invalid_token 에러를 핸들링(ExceptionHandler)하여 output form 설정하기 저번 글에 이어 쓴 글이다. 이전에 Oauth2 토큰 발급을 요청할때 Exception을 핸들링 하는 것에 대해 알아봤다. 이번에는 ResourceServer 에서 핸들링 하는 방법을 알아보려 한다. 유효하지 않은 토큰으로 요청한 경우 다음과 같은 에러를 리턴한다. 로그를 살펴보면 다음과 같다 o.s.s.o.p.token.store.JdbcTokenStore : Failed to find access token for token aaa 해당 로그를 찍는 곳으로 찾아가보니 JdbcTokenStore.java 에서 발생한 것을 확인했다. (이 프로젝트는 jdbc 를 tokenStore로 삼아서 그렇고, 다른 방식으로 TokenStore를 할경우 거기서 에러가 발생할 것이다. 잘못된 accessToken은 n.. 2021. 2. 17. [spring security] token 요청 시 에러 Exception 핸들링하기(/oauth/token 에러, ControllerAdvice 적용안됨) 서버중에 oauth2를 발급하는 서버가 있는데, 계정과 비밀번호를 틀리게 되었을 때 다음처럼 리턴값을 받게 된다 문제는 이 리턴방식이 회사에서 규격하는 form과 다를 확률이 높다는 점이다. 이 경우 선택할 수 있는건 2가지다 httpStatus가 401일 경우 처리방식을 고정하는 것, 아니면 이번 포스팅처럼 output을 설정하는 것이다. 이번은 output의 form을 설정하는 것에 관한 포스팅이다. 그럼 시작. 아무것도 작업하지 않으면 다음과 같이 리턴을 받을 것이다. httpStatus: 401 { "error": "invalid_grant", "error_description": "자격 증명에 실패하였습니다." } UserDetailsService 를 구현한 클래스에서 DB에서 조회하여 User.. 2021. 2. 15. [aws] lambda@edge 를 이용해 이미지 리사이즈 하기(cloud9 사용) 여기서는 CloudFront를 사용한다고 전제되어 있으며 lambda@edge를 이용해 처리하는 방법이다. (CloudFront 란 AWS에서 제공하는 CDN서비스) 단계는 다음과 같다. 1) Cloud9 생성 및 코드 작성 2) IAM 등록 3) 만든 역할을 Lambda에 등록하기 4) Lambda@Edge 배포 & 로그 확인 그럼 시작. Lambda@edge를 배포하려면 '버지니아 북부' 리전의 Lambda만 가능하다. 그래서 리전을 먼저 이동한다. AWS Console => Lambda 로 이동한 후 '함수 생성' 버튼을 클릭한다. 이미지 리사이징을 위한 lambda를 만들때 nodejs 버전을 10로 한다.(14는 아직 미지원) Lambda 파일은 Cloud9을 이용해 만들었다. 1) Cloud9.. 2021. 2. 12. [springboot] 엑셀 다운로드 시 이름지정 및 한글 깨짐 방지 POI 를 이용해 엑셀 다운로드기능을 개발할 때, 파일명을 지정하지 않으면 uri의 끝부분을 리턴한다. 다만 이렇게 될 경우 확장자도 붙지 않는다. 다음 코드를 확인해 보자 ... @GetMapping("/api/excel/testHangle") public void textExcel(HttpServletResponse response) throws IOException { Workbook workbook = new SXSSFWorkbook(); Sheet sheet = workbook.createSheet(); int rowIndex = 0; Row headerRow = sheet.createRow(rowIndex++); Cell headerCell1 = headerRow.createCell(0); h.. 2021. 2. 10. [aws] lambda@edge 설정 중 파라미터(query string)이 넘어오지 않는 경우(이미지 리사이징) 결론만 말하자면 frontcloud에서 query string을 받을 수 있도록 설정해야한다. lambda@edge 를 사용하는 경우 frontcloud와 함께쓰는 경우가 많은데 파라미터를 통해 크기를 조절하는 경우가 많다. 그런데 아무리 해도 크기가 줄지 않아 이상해 cloudwatch를 통해 봤다. 중간중간 console.log도 찍어가면서. 알고보니 request에서 querystring(파라미터)가 없는 채 들어오고 있었다. 일단 로그를 다음과 같이 찍었다. exports.handler = async(event, context, callback) => { const { request, response } = event.Records[0].cf; console.log("request: ", requ.. 2021. 2. 8. [springboot] swagger 설정 & 사용법 문서 자동화에 쓰이는 swagger를 설정 및 사용하는 방법에 대한 포스팅이다. 그럼 시작. build.gradle 에 다음 의존성을 추가한다 dependencies { ... // swagger compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2' compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2' compile group: 'io.swagger', name: 'swagger-annotations', version: '1.6.2' compile group: 'io.swagger', name: 'swagger-models', versio.. 2021. 2. 4. 이전 1 ··· 12 13 14 15 16 17 18 ··· 65 다음 반응형