스프링/스프링 시큐리티
-
OAuth - 구글 로그인(Authentication 객체가 가지는 2가지 타입)스프링/스프링 시큐리티 2024. 1. 9. 23:23
로컬 로그인 IndexController.class@Controllerpublic class IndexController { @GetMapping("/test/login") public @ResponseBody String testLogin(Authentication authentication) { PrincipalDetails principalDetails = (PrincipalDetails) authentication.getPrincipal(); System.out.println("authentication : " + principalDetails.getUser()); return "세션 정보 확인하기"; }}localhost:8080/test/l..
-
OAuth - 구글 로그인(구글 api를 통해 회원 프로필 받아오기)스프링/스프링 시큐리티 2024. 1. 9. 22:44
소셜 로그인은 간편하기에 프로젝트에서 많이 사용된다고 알고있다. 지금까지 소셜 로그인을 구현해본 적이 없어서 소셜 로그인을 구현해볼 것이다. 우선 구글 클라우드에서 API를 등록한다. application.yml spring: security: oauth2: client: registration: google: client-id: 1031257684665-knkr9fbcoeud3gg55hc3kr47cd2n2g2q.apps.googleusercontent.com client-secret: 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 redirect-uri: http://localhost/8080/login/oauth2/code/google scope: - email - profile a..
-
시큐리티 권한처리스프링/스프링 시큐리티 2024. 1. 8. 20:51
이전에 SecurityConfig에서 /manager 경로는 ADMIN, MANAGER만 접근이 가능하게 했다. 또한, /admin 경로는 ADMIN만 접근이 가능하게 했었다. Role을 저렇게 부여하면 스프링 시큐리티에서 자동으로 ROLE_ADMIN, ROLE_MANAGER 등으로 바꿔준다. 따라서 우리가 설정할 때에도 권한 값에 위와 같이 넣어줘야 한다. (ROLE_MANAGER가 아니라 MANAGER라고만 해서 접근이 안되어서 엄청 헤맸다...) 간편하게 권한을 부여하는 방법이 또 있다. @Configuration @EnableWebSecurity // 스프링 시큐리티 필터가 스프링 필터체인에 등록이 된다. @EnableGlobalMethodSecurity(securedEnabled = true) ..
-
Security Session스프링/스프링 시큐리티 2024. 1. 8. 20:09
SecurityConfig.class @Configuration @EnableWebSecurity // 스프링 시큐리티 필터가 스프링 필터체인에 등록이 된다. public class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.csrf(CsrfConfigurer::disable); http.authorizeHttpRequests(authorize -> authorize .requestMatchers("/user/**").authenticated() .requestMatchers("/manager/**").hasAnyRole("ADMIN", "MANAGER") .r..
-
회원가입 시 비밀번호 암호화스프링/스프링 시큐리티 2024. 1. 8. 18:07
회원가입을 할 때 비밀번호 암호화를 하지 않으면 그냥 데이터베이스에 데이터를 저장해놨다가 맞춰보는 것밖에 안된다. db가 털리면 회원들의 정보가 다 털리는 것이다. SecurityConfig.class @Configuration @EnableWebSecurity // 스프링 시큐리티 필터가 스프링 필터체인에 등록이 된다. public class SecurityConfig { // 해당 메서드의 리턴되는 오브젝트를 IoC로 등록 @Bean public BCryptPasswordEncoder encodePWD() { return new BCryptPasswordEncoder(); } } SecurityConfig에 BCryptPasswordEncodeer를 추가해준다. 이 메서드는 비밀번호를 자동으로 암호화..
-
스프링 필터 - 권한 있는 사람만 접근스프링/스프링 시큐리티 2024. 1. 8. 17:31
프로젝트에서 로그인 기능을 만들 때 스프링 시큐리티에 대한 깊이 이해가 없었기 때문에 스프링 시큐리티에 대한 공부와 강의 코드를 정리를 할 것이다. 나머지 코드들은 아래의 링크에서 확인이 가능하다. 깃허브 : chanhee01/spring-security (github.com) @Configuration @EnableWebSecurity // 스프링 시큐리티 필터가 스프링 필터체인에 등록이 된다. public class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.csrf(CsrfConfigurer::disable); http.authorizeHttpRequest..