스프링심화-2
스프링시큐리티
configure라는 메소드를 오버라이드해서 하는거
anyRequest() 어떤요청이오던지 로그인하도록 함
http.authorizeRequests()
.anyRequest().authenticated() // 어떤요청이오든 로그인을해야하고
.and() // 그리고
.formLogin() // 로그인페이지에대해서는 허용을해주어야한다
.defaultSuccessUrl("/") // 로그인이 완료되었을때 위치 를 지정
.permitAll() // 허용을해주어야한다
.and()
.logout()
.permitAll(); // 로그아웃기능도 허용해주는걸로
spring.thymeleaf.prefix=classpath:/static/ 타임리프라는 뷰템플릿사용하는대 그곳의 루트위치설정한거임
static폴더가 루트위치설정한거임 default는 templates인걸로알고있다
그러면 이제 타임리프쓰면 return "login"하면 static아래에있는곳으로 찾아서 줍니다
이제하는대 css파일이 안먹힌다. 왜냐하면 모든요청에대해서 인증이필요하기때문이다. css파일도 인증이필요해서 안먹히는것이다 css파일은 로그인하기전에나와야하기때문에 css파일은 인증없이허용하도록 해야한다
이제 회원가입 구현
중요한점 요구사항과 UI를보면서 DB에 저장되어야 하는 정보를 정리한다.
이제부터는 Service에서 save나 findall 이런거 다하도록만들어놓는다
h2 콘솔(DB도 접근허용을 막아놓아서 저장된정보를 확인할수가없는건가???)
-> 이건아닌거같다 왜냐하면 login하면 어떻게해야하는지 구현안된거같음
암호화 암호화는 스프링시큐리티에서 제공해주고 권고되는 BCrpt 해시함수를 통해서 할것이다.
스프링시큐리티에서 제공되는 클래스 빈으로 등록한다는거에 집중 그러면 스프링컨테이너등록되는거라서 가져다사용하면된다. -> Bean으로등록한이유는 다른곳에서 사용할수있게하기위해서이다
까먹지말것
@AuthenticationPrincipal UserDetailsImpl userDetails
항상 스프링시큐리티를 로그인하면 인증정보를 항상 전달한다. 그림 까먹지말기
@Transactional // 메소드 동작이 SQL 쿼리문임을 선언합니다.
User id는 username보다는 프라이머리키인 id를 사용해서 저장을한다
public class BCryptPasswordEncoder implements PasswordEncoder
그래서 encode할때 DI주입받을수있는거
OAuth : 소셜로그인할수있는 기술
Author And Source
이 문제에 관하여(스프링심화-2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@cwangg897/스프링심화-2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)