목록전체 글 (191)
JAN's History
JwtAuthorizationFilter extends BasicAuthenticationFilter 생성// 시큐리티가 filter를 가지고 있는데 그 필터중에 BasicAuthenticationFilter라는 것이 있음// 권한이나 인증이 필요한 특정 주소를 요청했을 때 위 필터를 무조건 타게 되어 있음// 만약에 권한이나 인증이 필요한 주소가 아니라면 이 필터를 사용하지 않음public class JwtAuthorizationFilter extends BasicAuthenticationFilter { public JwtAuthorizationFilter(AuthenticationManager authenticationManager) { super(authenticationManag..
RestApiController로그인 기능을 구현하기 전 회원가입을 먼저 진행해보자 @PostMapping("join") public String join(@RequestBody User user) { user.setPassword(bCryptPasswordEncoder.encode(user.getPassword())); user.setRoles("ROLE_USER"); userRepository.save(user); return "회원가입완료"; }SecurityConfig에 BCryptPasswordEncoder Bean으로 등록 @Bean public BCryptPasswordEncoder bCryptPasswordEnco..
JWT를 공부하던 도중 Authentication 객체를 반환하는 이유가 권한 관리를 위해서라는 말이 이해가 가지 않아 정리해보기로 결심! 일단 저의 코드 구조를 대략적으로 적어보겠습니다.User @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private String username; private String password; private String roles; //USER, ADMIN //하나의 유저당 role이 2개 이상일 경우를 대비해서! public List getRoleList(){ if(this.roles.length() > 0){ ..
상황인텔리제이랑 MySQL 연동하려고 하는데 자꾸 ..com.mysql.cj.jdbc.driver 에러가 발생 ㅠㅠ해결그래도 10분만에 비교적 빠르게 해결!!1. MySQL shell에 들어가서 자신의 버전을 확인한다.2. 인텔리제이 의존성에 아래와 같은 코드를 추가한다.dependencies { implementation 'mysql:mysql-connector-java:8.0.29' //your version}
토큰을 검증하기 위한 필터 만들기필터를 이용하여 토큰 검증을 진행했을 때, 유효하지 않다면 해당 컨트롤러로 더이상 접근하지 못하도록 할 수 있습니다.public class MyFilter3 implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) servletRequest; HttpServletResponse res = (Http..
에러 메시지 ! [rejected] main -> main (non-fast-forward)error: failed to push some refs to 'https://github.com/~~~.git'hint: Updates were rejected because the tip of your current branch is behindhint: its remote counterpart. Integrate the remote changes (e.g.hint: 'git pull ...') before pushing again.hint: See the 'Note about fast-forwards' in 'git push --help' for details. 인텔리제이에서 Git에 push 하..
Spring Security Filter Chain필터를 등록하기 전, 스프링에서 제공하는 Filter Chain에 대해 꼭 알아두기를 바랍니다!이전 글에 정리해뒀으니 읽어보고 오시는 것을 추천드려요 :)Filter 생성하기public class MyFilter1 implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { System.out.println("Filter 1"); filterChain.doFilte..
JWT을 위한 Filter를 구현하기 전, Spring SecurityFilterChain를 제대로 짚고 넘어가는 것이 좋을 것 같아 힘이 닿는데까지 공부해보기로 했습니다! Spring에서 JWT 필터 구현의 필요성?JWT를 하는데 왜 필터를 구현해야하는지 묻는 분들을 위해 이 부분도 짚고 넘어가려고해요! (제가그랬기 때문..)JWT(Json Web Token)은 HTTP프로토콜을 따라 stateless한 방식으로 인증을 처리합니다. 그렇다보니, 로그인 상태를 유지하기 위해 나온 것이 바로 JWT토큰이었는데요! 서버가 세션 상태를 유지할 필요 없이 클라이언트가 요청 시마다 JWT를 포함해 인증을 수행하며 인증과 인가를 처리하고 있었습니다.이를 위해 커스텀 필터를 구현해야하는 이유는 다음과 같아요. 1. ..