CustomSecurityConfig ( 자동 로그인 설정 추가 ) > SPRING_DATA_JPA

본문 바로가기
사이트 내 전체검색

SPRING_DATA_JPA

CustomSecurityConfig ( 자동 로그인 설정 추가 )

페이지 정보

profile_image
작성자 관리자
댓글 0건 조회 184회 작성일 24-07-19 10:50

본문

package web.config;


import javax.sql.DataSource;


import org.springframework.boot.autoconfigure.security.servlet.PathRequest;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;

import org.springframework.security.config.annotation.web.builders.HttpSecurity;

import org.springframework.security.config.annotation.web.configuration.WebSecurityCustomizer;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

import org.springframework.security.crypto.password.PasswordEncoder;

import org.springframework.security.web.SecurityFilterChain;

import org.springframework.security.web.authentication.rememberme.JdbcTokenRepositoryImpl;

import org.springframework.security.web.authentication.rememberme.PersistentTokenRepository;


import lombok.RequiredArgsConstructor;

import lombok.extern.log4j.Log4j2;

import web.security.CustomUserDetailsService;


@Log4j2

@Configuration

//@PreAuthorize 혹은 @PostAuthorize 어노테이션을 이용해서 사전 혹은 사후의 권한을 체크할 수 있다.

@EnableGlobalMethodSecurity(prePostEnabled = true)

@RequiredArgsConstructor

public class CustomSecurityConfig {


private final DataSource dataSource;

private final CustomUserDetailsService userDetailsService;


@Bean

public PersistentTokenRepository persistentTokenRepository() {

JdbcTokenRepositoryImpl repo = new JdbcTokenRepositoryImpl();

repo.setDataSource(dataSource);


return repo;

}


@Bean

public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {

log.info("-------시큐리티 해제-------");


//http.formLogin();

http.formLogin().loginPage("/member/login"); //커스텀 로그인 페이지


http.csrf().disable(); //CSRG 토큰 비활성화


http.rememberMe()

.key("12345678")

.tokenRepository(persistentTokenRepository())

.userDetailsService(userDetailsService)

.tokenValiditySeconds(60*60*24*30);


return http.build();

}


@Bean

public WebSecurityCustomizer webSecurityCustomizer() {

log.info("-------시큐리티 적용 제외-------");


return (web) -> web.ignoring().requestMatchers(PathRequest.toStaticResources().atCommonLocations());

}


@Bean

public PasswordEncoder passwordEncoder() {

return new BCryptPasswordEncoder();

}

}


댓글목록

등록된 댓글이 없습니다.

회원로그인

회원가입

사이트 정보

공지사항
자유게시판
질문답변
1:1문의

 

별명 : 터푸가위
주소 : 부산시 동래구 명장로20번길 90
대표 : 박규태
메일 : dancepkt@******.com

접속자집계

오늘
49
어제
199
최대
10,760
전체
275,078
Copyright © dancePKT . All rights reserved.