첫 번째 도전
이전 글에서 spring webflux에 google login 창을 띄우고 OAuth2를 이용하려 했으나 실패했다.
UI까지 띄우고 리디렉션 페이지로 이동하는 것은 성공하였으나 코드 같은 정보를 어디서 가져오는지 도통 알 수가 없었다.
첫 시도는 실패 하였고. 스프링에서 기본적으로 만들어 넣으 샘플이 있다고 하여 재 도전을 해 보려 합니다.
https://devkimchi.tistory.com/73
코드를 받아서 토큰을 처리 하고 싶었으나 코드를 주지 않은 예제.
https://docs.spring.io/spring-security/reference/reactive/oauth2/login/core.html
분명 공식 홈페이지에 샘플 코드가 있는 것처럼 보이나 들어가 보면
404페이지가 뜬가 제가 만드는 시점에 새로 만들고 있는것인지 문제가 있어서 내린 것인지 모르겠네요.
스프링 3버전을 사용 중이고 시큐리티 쪽 문서를 타고 들어온 것인데 스프링 3에 맞는 버전을 만들고 있는 것인지 아니면 제가 사용하기 시기상조인 시기에 있는 것인지.
완성돼서 돌아가는 샘플은 스킵하고 위에 링크해둔 문서의 아래쪽에 부분 예제들을 보며 시도해 봅니다.
문서 내용 참조 하며 해보기
- 자바스크립트단에서 signInSuccessUrl 을 스프링에서 기본으로 제공된다는 주소로 변경합니다.
var uiConfig = {
signInSuccessUrl: '/login/oauth2/code/google',
- security config에도 oatuh2 login을 활성화시켜 주고
@Bean
@Order(Ordered.HIGHEST_PRECEDENCE)
public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity httpSecurity) {
httpSecurity
. securityMatcher(new PathPatternParserServerWebExchangeMatcher("/manage/admin"))
.authorizeExchange(
exchanges -> exchanges.anyExchange().authenticated()
)
.httpBasic().disable()
.formLogin().disable()
.csrf().disable()
.oauth2Login(Customizer.withDefaults())
// .httpBasic().disable()
;
return httpSecurity.build();
}
- application.yml 부분도 수정해 줍니다.
oauth2:
client:
registration:
google:
client-id: {id}
client-secret: {secrete}
scope: profile, email
이렇게 해주고 돌려보면 404가 뜨네요 oauth2에 맞게 자동적으로 구현된 줄 알았으나 또 먼 설정이 빠진 건지 잘못 코딩한 것인지 404 에러를 뿌려 주네요 ㅠㅠ
Whitelabel Error Page
This application has no configured error view, so you are seeing this as a fallback.
깃헙에 보면 6.0대 릴리즈가 있는 거 같으나 클릭하고 들어가 보면
아직 포함하고 있지 않다고 나오니 내가 너무 이르게 사용하는 건가 5.8 버전을 써야 하나 심히 고민이 됩니다.
5.8을 쓰면 thymeleaf가 미구현된 게 있을 거 같고 6.0은 샘플이 아직 안 보이니 고민이 됩니다.
스프링 current는 6.0이고 이전 단계를 써야 하나 하는 의문이 전에 웹플러스 초기에 thymeleaf에 미구현된 게 많아서 고생했던 거 같은데 sec태그가 안 되는 것이 많아서.
흠 Firebase UI를 사용하지 말고 REST 방식으로 전송을 던져서 주고받아야 하나 이번에는 REST로 직접 쏘고 받는 방법으로 한번 도전해 보겠습니다. 제가 알고 있는 지식선에선 간단하게 작동이 되지 않네요.
spring boot 3.0.2를 사용 중이었는데 OAuth2에 대한 샘플도 없고 하니 일단은 부트 2.7.8 버전으로 OAuth2를 적용해 보고 나중에 예제들이 좀 나오면 그때 다시 도전해 봐야겠습니다.
'개발 > 스프링 FIreBase Neo4j' 카테고리의 다른 글
Spring Boot Material Design 3 선택 이유 Thymeleaf Layout 적용 (0) | 2023.02.02 |
---|---|
Sprng Boot 2.7.8 Reactive WebOAuth2 Google Login 적용해 보기 간단 해결기 (0) | 2023.02.02 |
SPRING WEBFLUX OAUTH 2.0 구글 로그인 후 넘어 오는 값(CODE) 방황기 (0) | 2023.01.29 |
firebase login Sign-in method, web ui 설정, google 로그인 제공 업체 추가 (0) | 2023.01.26 |
firebase google login spring webflux 적용기 (0) | 2023.01.26 |