security is for protecting your data and business logic inside your web applications, and datait's essential for web application(it always need, no ma
generate spring boot projectnever choose java version under 17spring security 6 and spring boot 3 need over java 17 versioncreate package and classthe
if you make spring boot project with security, default is security onBecause formLogin method in default springsecurity filterwe use security filterch
make user in memory and remove username & password in application.properties Understanding User Management interfaces and Classes if user enter user
delete ldap dependenciesadd jdbc dependenciesspring.jpa.show-sql show all quries in consolespring.jpa.properties.hibernate.format_sql make more eazy t
problem in JdbcUserDetailsManager have their one quries for authentication, so we need to make table match to this form BUT sometimes you want to add
default PasswordEncoder userDetailManager deal with password default it's just storing plain text so It's too danger in authentication Encoding VS En
add BcryptPasswordEncoderget BcryptPasswordEncoder by using injectionset hashpwd into DTOregister userand then you can see hashed pwd in database
multiply authentication springsecurity provide multiply authentication by using multipleAthentication interface AuthenticationProvider supports me
CORs
인가 인가란 인증 후, 로그인 한 유저에게 권한을 부여하는 것을 의미한다. 참고로 인증에 실패하게 되면 401에러를, 인가에 실패하게 되면 403에러를 반환한다. 인증에는 성공했으나, 해당 유저의 권한 상 해당 페이지에 접근이 불가능 한 경우 403에러를 반환한다.
filter chain은 연쇄적으로 일어나며, 앞선 filter의 결과물이 뒤의 filter에 injection되어 적용되는 방식이다. 다음과 같이 filterchainproxy에서 가상의 filterchain을 만들어서 차례로 실행한다. 실습 실습을 위해 다음과
이때까지 사용한 Spring security가 로그인 시 default로 생성해주는 JESSIONID cookie는 모든 유저 아이디를 담고 있는 것이 아니기 때문에 실제 어플리케이션에서 사용하는 것은 좋지 않다. 또한 유저가 브라우저를 닫지 않았을 때 쿠키가 탈취당할
개념 OAUTH2는 인증, 인가 등을 간편하게 해주는 프레임 워크이다. 내가 만든 어플리케이션이 다른 어플리케이션에서 정보를 가져와서 사용해야하는 경우, 클라이언트 측에서 접근을 허용해 줘야햔다. 기존의 인증, 인가 방식의 문제점은 유저 클라이언트가 사용할 권한을 설정
spring security를 설정하던 중 정적자원이나, swagger관련된 resources들은 필터가 설정되지 않도록 할 필요가 있었다.처음에 security config에 다음과 같이 설정했으나 적용되지 않았다.방법은 websecuritycustomizer를 통해
spring boot의 oauth를 사용해서 소셜로그인을 구현한 예제는 많았는데, flutter와 연동한 예시는 잘 없어서 많이 애를 먹었다. 소셜 로그인 구현법 플러터와 spring boot를 연동하여 소셜로그인을 구현하는 방법은 크게 2가지다. 플러터에서는 요
하세요 public UserDetails getUserInfoInSecurityContext() { Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
spring seucurity로 로그인 시 tokenException이 발생하면 유저에게 error정보를 제공해 줘야 하는 상황이었다.기존에 다음과 같이 GloablExceptionHandler를 작성해 두어서 당연히 tokenException을 잡아서 처리해 줄 것이
이번에는 jwt토큰과 관련된 로직을 해결해야한다.일반적으로 jwt를 이용한 로그인 구현은 다음과 같은 과정을 통해 진행된다.유저가 로그인에 성공하면 accessToken과 refreshToken을 발급한다.발급한 accessToken과 refreshToken을 클라이언
이번에는 jwt토큰과 관련된 로직을 해결해야한다.일반적으로 jwt를 이용한 로그인 구현은 다음과 같은 과정을 통해 진행된다.유저가 로그인에 성공하면 accessToken과 refreshToken을 발급한다.발급한 accessToken과 refreshToken을 클라이언
이번에는 받아온 토큰을 바탕으로 accessToken을 검증해보도록 하겠다.클라이언트는 요청을 보낼 때 마다 accessToken을 전달한다고 했다. 클라이언트는 이런 형태로 accessToken을 전달한다.Authorization: bearer accessToken서
앞 글에서 말했다싶이 accessToken검증하는 부분에서 token이 만료될 경우에는 클라이언트에서 refreshToken을 보내주어야 한다.그리고 서버에서는 이 refreshToken에 대한 검증을 해야한다. refreshToken을 검증하는 부분은 accessTo