본문 바로가기

Programming/Spring Boot10

Spring Security - BadCredentialsException 이전에 공부를 한 부분이지만, 아직 Spring Security에 대한 이해도가 낮은 것은 사실입니다..그래서 해당 게시글은 원래도 스스로 학습의 개념이지만, 그냥 기록상의 이유 그리고 나중에 찾아보는 용도로 정리하려고 한다.BadCredentialsException로그인 기능을 구현할 때, 원인을 모르는 로그인 실패시에 로그도 확인이 안되 아래와 같이 디버그를 진행해서 어떤 문제가 있었는지 확인할 수 있었다. 그리고 해당 커스터마이징 과정은 가장 아래 git 을 통해 내려받을 수 있다. org.springframework.security.authentication.BadCredentialsException:자격증명에 실패하였습니다.  위의 이유를 자세히 보면 BadCredentialsException .. 2024. 6. 15.
[Spring boot] Spring Security static 폴더(CSS,JS) 적용 문제 해결하기 Spring Security를 이용해 접속시 CSS, JS가 적용이 되지 않는 문제를 직면할 것이다.이런 문제는 아래의 코드를 @Configuration, @EnableWebSecurity가 적용된 클래스에 삽입해주면 간단하게 적용이 되는 것을 확인할 수 있다.@Beanpublic WebSecurityCustomizer webSecurityCustomizer() { return (web) -> web.ignoring() .requestMatchers(PathRequest.toStaticResources().atCommonLocations());}위 구문만 적용해주면 Static 폴더 내의 모든 것을 시큐리티 필터에서 무시한채 가져올 수 있다.그리고 하나씩 접속권한을 부여하는 것보.. 2024. 6. 15.
[Spring Boot] Spring Security를 이용한 JWT CORS Filter 로그인 커스터마이징하기 [Spring Boot] Spring Security를 이용한 JWT CORS필터체이닝기본적인 JWT 토큰 발행방법 [Spring Boot] JWT HMAC 암호화[Spring Boot] JWT[Spring Boot] Spring Security스프링 시큐리티스프링 시큐리티는 스프링에 login을 처리하는 모듈이다.같은 시큐리티 기반이라도 코딩hong-study.tistory.com이전 포스팅에서는 Spring Security 환경에서 CORS Filter를 적용하는 것에 대해서 공부하였습니다.이번 포스팅은 CORS Filter를 이용해 로그인 환경을 커스터마이징해보려고 합니다.Security 설정 파일 @Configuration@EnableWebSecuritypublic class SecurityCon.. 2024. 5. 30.
[Spring Boot] Spring Security를 이용한 JWT CORS필터체이닝 기본적인 JWT 토큰 발행방법 [Spring Boot] JWT HMAC 암호화[Spring Boot] JWT[Spring Boot] Spring Security스프링 시큐리티스프링 시큐리티는 스프링에 login을 처리하는 모듈이다.같은 시큐리티 기반이라도 코딩이 버전별로, 로그인방식에 따라 모두 다르다.시큐리hong-study.tistory.com이전 포스팅에서는 JWT HMAC 암호화 방식에 대해 공부를 하였습니다.지금은 조금 더 어려운 개념은 Spring Security를 이용한 JWT Cors 필터체이닝 방식에 대해서 공부해보고자 합니다.CORS 필터체이닝 방식을 적용하기에 앞서 CORS란 무엇인지에 대한 이해가 중요하다.CORS ( Cross-Origin Resource Sharing )웹 브라우.. 2024. 5. 30.
[Spring Boot] JWT HMAC 암호화 [Spring Boot] JWT[Spring Boot] Spring Security스프링 시큐리티스프링 시큐리티는 스프링에 login을 처리하는 모듈이다.같은 시큐리티 기반이라도 코딩이 버전별로, 로그인방식에 따라 모두 다르다.시큐리티는 방대한hong-study.tistory.com이전 글에서 JWT는 무엇이고 왜 사용하는지에 대해 설명하였다.이번에는 JWT를 직접 구현해봄으로써, 어떤 동작원리를 가지고 있는지 이해해보려고 한다.JAVA -JWT 라이브러리 추가 build.gradle implementation 'com.auth0:java-jwt:4.4.0'build.gradle에 아래와 같이 라이브러리를 추가한다.다른 버전이나 다른 개발 환경에서 사용하고 싶다면 아래에서 jwt를 검색해서 사용하면 된다.. 2024. 5. 30.
[Spring Boot] JWT [Spring Boot] Spring Security스프링 시큐리티스프링 시큐리티는 스프링에 login을 처리하는 모듈이다.같은 시큐리티 기반이라도 코딩이 버전별로, 로그인방식에 따라 모두 다르다.시큐리티는 방대한 스프링 모듈이다. 로그hong-study.tistory.com이전까지 Spring Security에 대해서 어떻게 구성되어 있고, 어떻게 구현하는지에 대해서 공부를 하였다.오늘은 Spring JWT에 대해서 공부하려고 한다.JWT, Json Web TokenJWT는 유저를 인증하고 식별하기 위한 토큰 기반 인증이다.토큰 자체에 사용자의 권한 정보나 서비스를 사용하기 위한 정보가 포함된다.Restful과 같은 무상태(Stateless)인 환경에서 사용자 데이터를 주고 받을 수 있게 된다.세션(S.. 2024. 5. 30.
[Spring Boot] 어노테이션을 활용해 권한 설정하기 @EnableGlobalMethodSecurity(prePostEnabled = true)메서드에 권한 설정 어노테이션 활성화위 어노테이션을 securityConfig 파일 붙여준다.@Configuration // 설정 파일@EnableWebSecurity // 이 설정 파일을 시큐리티 필터에 등록@EnableGlobalMethodSecurity(prePostEnabled = true)public class SecurityConfig {...생략}Controller@PreAuthorize("hasRole('ROLE_ADMIN')")@GetMapping("/test")public @ResponseBody String test() { return "어노테이션 권한";}여기서 중요하게 봐야하는 것은 @P.. 2024. 5. 29.
[Spring Boot] Spring Security 로그인 처리 로그인 처리하기이전 게시글에서는 회원가입시 권한을 설정하여 로그인을 할 때 어떤 화면으로 그리고 어떤 화면만 접속할 수 있는지 설정하였다. 스프링 부트 2버전 (수업)//시큐리티 6버전 => 스프링 부트 3버전 (문법이 완전 변경" data-og-host="hong-study.tistory.com" data-og-source-url="https://hong-study.tistory.com/375" data-og-url="https://hong-study.tistory.com/375" data-og-image="https://scrap.kakaocdn.net/dn/lNcBc/hyWdfeLzOs/BqqA2JSKRmMy2yvWSaxUIk/img.png?width=437&height=115&face=0_0_43.. 2024. 5. 29.
[Spring Boot] Spring Security 설정 스프링 라이브러리 추가//시큐리티 버전은 스프링버전에 따라 사용방법이 완전히 다릅니다.//시큐리티 5버전 => 스프링 부트 2버전 (수업)//시큐리티 6버전 => 스프링 부트 3버전 (문법이 완전 변경되니 주의)implementation 'org.springframework.boot:spring-boot-starter-security'//시큐리티 타임리프에서 사용implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'//시큐리티 테스트testImplementation 'org.springframework.security:spring-security-test'시큐리티가 처음 설정 되면 모든 요청에 대해서 시큐리가 기본 제공하는 로그인 화.. 2024. 5. 29.
[Spring Boot] Spring Security 스프링 시큐리티스프링 시큐리티는 스프링에 login을 처리하는 모듈이다.같은 시큐리티 기반이라도 코딩이 버전별로, 로그인방식에 따라 모두 다르다.시큐리티는 방대한 스프링 모듈이다. 로그인의 방식 시큐리티 없는 일반로그인 (일반세션 사용)시큐리티 일반로그인 (시큐리티 세션 사용)시큐리티 JWT 로그인 (서버가 다를 때)시큐리티 OAuth2방식 로그인(제 3자 인증로그인)SSO로그인 용어 인증(Authentication) - 로그인 된 사람권한(Role) - 로그인 된 사람 + role(권한)이 있는사람인가(Authorization) - 권한을 부여하는 행위사용자가 로그인 정보와 함께 인증 요청을 한다.(Http Request)AuthenticationFilter(필터)가 요청을 가로채고, 가로챈 정보를 .. 2024. 5. 27.
반응형