전체 글 4

UsernamePasswordFilter 사용자 정의와 세션

Spring Security를 적용하다보면 제공되는 메소드만을 이용하는 프로젝트도 많지만 몇몇은 사용자 정의가 필요한 프로젝트가 있죠. 이번 글에는 UsernamePasswordFilter를 사용자 정의하며 겪었던 이슈사항에 대하여 작성하였습니다. 블로그에 작성된 코드는 샘플로 작성되어 내용 정리에 필요한 내용만 추려 담았습니다. [이슈 사항] 세션을 1개로 유지하기 위해 sessionManagement().maximumSessions(1) 설정을 하였으나 제대로 적용되지 않는 현상 발생. 1. 설정을 위한 SecurityConfig 클래스 생성 Spring Security를 이용하기 위해 @EnableWebSecurity, @Configuration 어노테이션을 추가하여 클래스를 작성하였습니다. pro..

값 전달 방식(Call by value, Call by reference)

안녕하세요. 이번에 작성한 내용은 값 전달 방식(Call by value, Call by reference)에 대한 내용입니다. 코드를 작성하다보면 여러가지 메소드나 변수를 통해서 값을 주고 받으며 사용하게 됩니다. 그 때 메소드나 변수에 값이 전달되는 방식이 나뉘게 됩니다. 흔히 Call by value, Call by reference라고 부르는 것들이 그것이죠. 쉽게 설명하자면 Call by value는 값 자체를 전달하는 것이고 Call by reference는 참조해서 사용하도록 연결해주는 것입니다. 자바에서는 이 부분이 매우 쉽게 되어있습니다. 기본 형식(primitive type)으로 된 변수는 Call by value, 객체(Object)로 되어있는 것들은 Call by reference로..

자바 제네릭(Generics)과 컬렉션(Collections)

안녕하세요. 이번 글은 자바의 제네릭과 컬렉션에 대하여 간결하게 작성하였습니다. 1. 자바 컬렉션(Java Collections Framework) 자바 컬렉션(Java Collections Framework)은 자료 구조를 사용하기 편하게 작성해놓은 클래스들의 집합이라고 보시면됩니다. 자료 구조를 배우려면 FIFO(First In First Out), LIFO(Last In First Out) 등으로 시작해서 여러가지 알고리즘과 head, body(data), tail 등으로 구성된 그림들을 많이 접해보셔야 할 것입니다. 자바에서는 이 모든 것을 간단하고 쉽게 사용할 수 있도록 구현되어 있습니다. 물론 위의 내용들이 필요없다는 것은 절대 아닙니다. 많이 알수록 편한건 어딜가나 마찬가지죠. 자바 컬렉션에..

어노테이션(Annotation)

안녕하세요. 이번 글은 자바의 어노테이션에 관한 내용입니다. 자바의 코드를 보다보면 @가 붙은 내용들이 간혹 눈에 보이실텐데요. 이것이 어노테이션입니다. 어노테이션의 기본적인 목적은 자바의 메타데이터[각주:1]로 사용하기 위함입니다. 어노테이션 작성법은 '접근 제한자 @interface 어노테이션명 { 내용 }'입니다. 다른 용도로도 많이 사용합니다만 예제에서는 메타데이터 용도만 살펴보겠습니다. 이제 예제로 만든 어노테이션을 통해 사용법을 알아보도록 하죠. 1. CustomAnnotation package com.tistory.sunimohs.study; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; imp..