반응형

1. 쿠키

    ˙ 사용자가 특정 웹 사이트에 접속할 때, 사용자의 컴퓨터에 저장하는 기록 파일

    ˙ ex) 로그인 시 ID와 PW 저장을 체크한 후 사이트 재접속 시 ID/PW를 기억하는 기능

 

2. 세션

    ˙ 서버에서 가지고 있는 객체(Object)로써, 특정 사용자의 로그인 정보를 유지하기 위해 사용하는 기술
    ˙  서버는 접속한 클라이언트에게 세션ID와 회원정보를 매핑하여 기록하고 Session ID를 부여하면,
    ˙  사용자는 접속할 때마다 발급받은 Session ID와 함께 요청(Request)한다.
    ˙  ex) 웹 사이트 로그인 후 다른 페이지 이동마다 접속 상태 유지하는 역할

 

    ① 장점

        - 개인정보가 포함되지 않은 세션ID(회원 식별 목적)를 사용자에게 제공하고, 회원 중요정보는 서버가 갖고 있음.

 

    ② 단점

        - 악의적인 공격자가 세션 ID를 탈취할 수 있음.

        - 웹 서버에서 세션 정보를 기록하고 있어야 하므로, 접속자가 많을 때 서버 메모리 부하 문제가 발생할 수 있음.

 

3. 세션과 쿠키의 관계

 

 

    ˙ 세션 ID는 일반적으로 쿠키에 저장되며, 세션 쿠키라고도 불린다.  

    ˙ 브라우저는 이 세션 쿠키를 갖고 있으면서 서버와의 상호 작용을 통해 세션 상태를 유지한다.

    ˙ 주로 사용되는 쿠키 타입은 HttpOnly 속성이 설정된 쿠키이며, JavaScript에서 쿠키에 접근하는 것을 방지하여 보안을 강화할 수 있다.
    ˙ SpringBoot에서도 세션 관리를 위한 설정이 가능하며, 세션 ID를 쿠키에 저장/유지하는 방식을 선택할 수 있다.

반응형
반응형

1. 시험환경

    - Spring MVC Project

    - Spring Framework v5.2.13.RELEASE

    - Spring Security ver : Spring Framework 버전에 따름 ( ${org.springframework-version} )

 

2. 목적

    - Spring MVC 프로젝트에 Security를 설정한다.

    - 초기 설정 후 초기 Login 화면이 나타는 것을 확인한다.

 

3. 적용

    ① Spring Security 관련 라이브러리를 설치한다.

pom.xml

 

<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-core -->
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-core</artifactId>
    <version>${org.springframework-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-web -->
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-web</artifactId>
    <version>${org.springframework-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-config -->
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-config</artifactId>
    <version>${org.springframework-version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.security/spring-security-taglibs -->
<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-taglibs</artifactId>
    <version>${org.springframework-version}</version>
</dependency>

 

    ② Security 설정 파일을 생성한다.

        - appServlet 우클릭 → New → Spring Bean Configuration File 메뉴 클릭

Spring Bean Configuration File 생성

 

        - Security 설정 파일명 입력

security-context.xml 파일 생성

        - security 어노테이션 추가

security 어노테이션 추가

 

        - security 설정

설정 파일

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:security="http://www.springframework.org/schema/security"
           xsi:schemaLocation="http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <security:http auto-config="true" use-expressions="false">
        <security:intercept-url pattern="/**" access="ROLE_USER" />
    </security:http>

    <security:authentication-manager>
        <security:authentication-provider>
            <security:user-service>
                <security:user name="admin" password="{noop}admin" authorities="ROLE_ADMIN"/>
                <security:user name="user" password="{noop}user" authorities="ROLE_USER"/>
            </security:user-service>
        </security:authentication-provider>
    </security:authentication-manager>
</beans>

 

    ③ web.xml 설정

        - security 설정 파일을 등록한다.

security 설정 파일 등록

 

        - Security 관련 필터를 등록한다. 클라이언트 요청을 가로채서 보안 절차를 수행한다.

 

4. 결론

    - 프로젝트에 접근 요청을 하면, 스프링 시큐리티에서 제공하는 로그인 화면이 나타난다.

    - 에러 처리 및 customize 작업을 추가적으로 하자.

로그인 화면

 

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다.

반응형

+ Recent posts