Download the sample project in this tutorial: www.codejava.net/frameworks/spring-boot/oauth2-login-with-google-example
@yadav117uday2 жыл бұрын
this is the most accurate tutorial which did things properly
@dmitry14453 жыл бұрын
Thanks for the tutorial. Hi from Belarus)
@CodeJava3 жыл бұрын
Welcome! Greetings from Vietnam :)
@David-wf3cc Жыл бұрын
Where can we get code for front end and other files not included in git
@CodeJava Жыл бұрын
in my course on Udemy: www.udemy.com/course/spring-boot-e-commerce-ultimate
@igorpavlenkov36583 жыл бұрын
Thanks for this tutorial. Hello from Russia)
@CodeJava3 жыл бұрын
Welcome! Greetings from Vietnam :)
@Nguyễnkiên-j9s Жыл бұрын
@@CodeJava em cũng Người Việt ạ
@sagarsri41434 жыл бұрын
Superb 👌 explanation ✌️
@sagarsri41434 жыл бұрын
Will you please make video on role based logins.
@CodeJava4 жыл бұрын
including registration (sign up)?
@eugenefeng511 Жыл бұрын
Thank you for saving me. That's exact what I want.
@CodeJava Жыл бұрын
Glad I could help!
@AndresCodifica3 жыл бұрын
hi , i need help, my error is oauth2.core.oidc.user.DefaultOidcUser cannot be cast to com.co.rastros.oauth.CustomOAuth2User, i follow the video but in the step CustomOAuth2User oAuth2User = (CustomOAuth2User) authentication.getPrincipal() in the class OAuth2LoginSuccessHandler it's not possible, Help.
@ktn44 жыл бұрын
That's what I need. Many thanks.
@CodeJava4 жыл бұрын
You're welcome! Happy learning!
@ai65663 жыл бұрын
Thank You. This was very informative session.
@CodeJava3 жыл бұрын
Glad it was helpful!
@lts8683 Жыл бұрын
Thanks, please keep going
@CodeJava Жыл бұрын
Thank you, I will.
@phamluc26613 жыл бұрын
I'm newbie with Spring Boot, having a question Can I use the OAuth2 authentications for mobile app?
@CodeJava3 жыл бұрын
I think it's possible though I haven't used it for mobile apps.
@roan14352 жыл бұрын
Hi Nam. I followed almost similar to you what you did in this tutorial. But I'm get and error "principalName cannot be empty"... Do you have any idea why i'm getting this error?
@CodeJava2 жыл бұрын
Kindly refer to this Stackoverflow's thread: stackoverflow.com/questions/63352692/spring-security-5-with-oauth2-causing-principalname-cannot-be-empty-error
@charagergi53163 жыл бұрын
I have a question, OAuth2 works with a token for authorization, here I can't see any function for the token. It is managed automatically or we dont use tokens?
@CodeJava3 жыл бұрын
everything is done by Spring OAuth library so we just write some configs then focus on the business logics.
@lokeshdandasena67663 жыл бұрын
it was nice that u have provided some information but it seems like u are starting from the middle as you have files in the application before even starting to explain, you are not saying anything about the application (i think you have other microservices as well), you should walk through the application so that the purpose should be clear. For example - you have said to add a property to the entity table, I think you are not clearly describing it. please describe it properly so that it will help others.
@CodeJava3 жыл бұрын
Thanks for your feedback. I understand what you meant. However, the main purpose of video is to show you guys how to integrate social login functionality for an existing Spring Boot application, you it supposes that you already have one.
@bennteast17762 жыл бұрын
Can we please have the full source code, the article doesn't have all the code needed @CodeJava
@CodeJava2 жыл бұрын
You can get the full code if enroll in my course here: www.udemy.com/course/spring-boot-e-commerce-ultimate/?couponCode=SPRING08
@bennteast17762 жыл бұрын
@@CodeJava can you help me have the customerService class where i can see the logic there
@hanumantd3 жыл бұрын
Can you please post database table creation scripts?
@ethandsa19664 жыл бұрын
Thank you for the tutorial. How do I deny access if the user doesn't already exist instead of creating a new user?
@CodeJava4 жыл бұрын
Oh, that's not the purpose of social login, which allows users to login using their own google accounts - unanticipated. If you want to deny access in such case, just redirect the user to the login page with an appropriate message: httpResponse.sendRedirect("/login");
@ethandsa19664 жыл бұрын
@@CodeJavaThank you so much for your reply. I'll try that out.
@ipox00902 жыл бұрын
Can you tell me where the OAuth2User 22:47 you wrote is, why can't I see it. Can you help me explain.
@CodeJava2 жыл бұрын
it is from Spring Security OAuth2 dependency: spring-boot-starter-oauth2-client
@ipox00902 жыл бұрын
@@CodeJava Thank you.
@maral-erdenetumursuh48443 жыл бұрын
Hello, thank you for great tutorial. I've question about security implementation in micro service project. In cloud gateway can not add spring-boot-starter-web dependency. So cannot extend WebSecurityConfigurerAdapter. How i do my filter this kind of architechture.
@CodeJava3 жыл бұрын
isn't it spring-boot-starter-security?
@trinhquycong.20012 жыл бұрын
This tutorial's great sir, but how can i implement this into a fullstack application, let say Spring boot & Angular, since it involves Rest api, can you give me some advice? Thank you in advance!
@CodeJava2 жыл бұрын
I will publish such kind of tutorial in future. Thanks for coming and asking :)
@trinhquycong.20012 жыл бұрын
@@CodeJava you're so enthusiastic, hope you do well in this new year!
@buiucnhan56232 жыл бұрын
Can you make a video with Reactjs as the front end?
@CodeJava2 жыл бұрын
Yes, I will.
@stevechao40123 жыл бұрын
Thanks for the great tutorial! I was able to log in using g-mail with my original project!! And I am able to put g-mail user data in SQL Server DB. But after I log in with Google, the registered account seem do not recognized with my original roles set thus I get a 403 forbidden when I'm using google accounts to login. Can you suggest any leads to combine my original roles set with google accounts?? Thanks a lot!
@CodeJava3 жыл бұрын
How do you check the role of a user? You need to update your custom OAuth2User class: update roles in the getAuthorities() method.
@stevechao40123 жыл бұрын
@@CodeJava Thanks again ! I manage to get in to the page, but then I found that my Authentication was empty. I use SecurityContextHolder.getContext().getAuthentication() to get user information but it returned null, could it be possible that I have to do something to the JWT that Google sent to me ?
@rahilbaig38734 жыл бұрын
Hi, I am getting an error saying " org.springframework.security.oauth2.core.oidc.user.DefaultOidcUser cannot be cast to com.bookstore.oauth.CustomOAuth2User" it is occuring on this line ---> "CustomOAuth2User oAuth2User= (CustomOAuth2User) authentication.getPrincipal(); " it cannot able to cast to CustomOAuth2User.
@CodeJava4 жыл бұрын
Do you return a CustomOAuth2User object from the method loadUser in the CustomOAuth2UserService class?
@rahilbaig38734 жыл бұрын
@@CodeJava Hi, I really appreciate for your response. when I ran the code in debug mode , I see that CustomOAuth2UserService is not invoking, debug is directly going to OAuth2AuthenticationSuccessHandler. Please advice me, I have pasted the code below. Thanks in advance controller: @Controller public class UserController { @RequestMapping("/login") public String home() { return "login"; } @RequestMapping("/welcome") public String welcome(Model model, Principal principal) { model.addAttribute("userDetails", principal); return "welcome"; } security Config: ------------------------- public class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private CustomOAuth2UserService oauth2UserService; @Autowired private OAuth2AuthenticationSuccessHandler oauth2AuthenticationSuccessHandler; @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests().antMatchers("/oauth2/**").permitAll().antMatchers("/welcome/**").authenticated() .anyRequest().permitAll().and().formLogin().loginPage("/login").and().oauth2Login().loginPage("/login") .userInfoEndpoint().userService(oauth2UserService).and() .successHandler(oauth2AuthenticationSuccessHandler).and().logout().permitAll().and().rememberMe(); } } Service: ------------ @Service public class CustomOAuth2UserService extends DefaultOAuth2UserService { @Override public OAuth2User loadUser(OAuth2UserRequest oAuth2UserRequest) throws OAuth2AuthenticationException { OAuth2User oAuth2User = super.loadUser(oAuth2UserRequest); return new CustomOAuth2User(oAuth2User); } } OAuth2AuthenticationSuccessHandler -------------------------------------------------- @Component public class OAuth2AuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler { @Override public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { // TODO Auto-generated method stub CustomOAuth2User oAuth2User=(CustomOAuth2User)authentication.getPrincipal(); String email=oAuth2User.getEmail(); System.out.println("Customer's Email"+ email); super.onAuthenticationSuccess(request, response, authentication); } }
@CodeJava4 жыл бұрын
@@rahilbaig3873 your code seems to be fine. Check if you use @EnableWebSecurity for the config class, and is the dependency spring-boot-starter-oauth2-client present?
@aideng51934 жыл бұрын
@@CodeJava Hello Ty for the tutorial, I have the same problem and have been stuck for hours ... I have @EnableWebSecurity for the config class, and the dependency spring-boot-starter-oauth2-client is present. Any help please ? :(
@aideng51934 жыл бұрын
CustomOAuth2User : codepad.org/mg8M3n2D OAuth2LoginSuccessHandler : codepad.org/hRgg6swS CustomOAuth2UserService : codepad.org/IyyV6sat Configure Class : codepad.org/su23grlu CustomOAuth2User : codepad.org/mg8M3n2D Thank you sir
@430981084 жыл бұрын
Thanks for this!
@CodeJava4 жыл бұрын
No worries! Glad it helped.
@mjpannu52103 жыл бұрын
Amazing! Thanks alot
@CodeJava3 жыл бұрын
You're welcome!
@mjpannu52103 жыл бұрын
@@CodeJava Can you please make a video on how to properly authenticate and authorize requests when I have multiple microservices and we want a single authentication server
@CodeJava3 жыл бұрын
@@mjpannu5210 Noted your suggestion. I will do it in future because I'm busy making my new course on Udemy this time.
@Nguyễnkiên-j9s Жыл бұрын
anh ơi, tại sao trong fle pom ở cái source code bên dưới phần miêu tả a đính kèm, trong file pom a có để như này 1.8 e đang dùng java 17 thì e thay 17 vào thì có lỗi bắn ra còn để nguyên thì chạy được lí do là gì anh nhỉ? mong được anh reply ạ
@CodeJava Жыл бұрын
có thể là IDE của em chưa hỗ trợ Java 17 chăng?
@shawaalsaif21443 жыл бұрын
I have two Authentication provider Google and Facebook. As you set authentication provider to google what if the user logs in with facebook?
@CodeJava3 жыл бұрын
then you have to check provider type in the CustomOAuth2User object (or something else - I don't remember), and update the provider type in database accordingly.
@shawaalsaif21443 жыл бұрын
Thank you for replying and this video helped me in understanding oauth2 better and heres how I got that wether the user logged in with fb or gmail OAuth2AuthenticationToken oauthToken = (OAuth2AuthenticationToken) authentication; OAuth2AuthorizedClient client = clientService.loadAuthorizedClient( oauthToken.getAuthorizedClientRegistrationId());
@CodeJava3 жыл бұрын
@@shawaalsaif2144 Look at the OAuth2UserRequest class as the parameter of the loadUser() method in a class that implements DefaultOAuth2UserService
@HaiNguyen-qm3ft Жыл бұрын
Trong trường hợp, login with GG thì password trong db là null. Vậy chức năng change password dành cho tài khoản làm cách nào để có thể sử dụng vậy anh. em cảm ơn anh
@CodeJava Жыл бұрын
khi đó thì em nên kiểm tra authentication type của user là database thì mới tiến hành đổi mật khẩu.
@potararaj26424 жыл бұрын
Thankyou Nam ha min
@CodeJava4 жыл бұрын
Welcome 😊
@AjayGupta-ob8oe4 жыл бұрын
Thanks nam
@CodeJava4 жыл бұрын
you're welcome. I always remember your request about Spring AOP.
@Nguyễnkiên-j9s Жыл бұрын
a ơi lúc em download source code vè chạy thì nó cứ báo lỗi là Connection refused: no further information em kiểm tra lại thông tin trong file properties kĩ lắm rồi mà cứ báo v
@Nguyễnkiên-j9s Жыл бұрын
a ơi ngoài ide a đang dùng thì a có dùng intellij idea ko ạ
@CodeJava Жыл бұрын
Anh có dùng IJ. em có dùng database ko? Kiểm tra javascript error xem.
@rajashekar57554 жыл бұрын
NAM im doing project can you please help me with this, When User enters into my website User should register first and then he needs to be verified by Email so that he can login using those crediantials.
@CodeJava4 жыл бұрын
So you can follow the video "Spring Boot Email verification" here: kzbin.info/www/bejne/bZ65hZmkhK59hZo
@tuannguyen-il5oh2 жыл бұрын
Could you guild to how to force user choose account google to login(when click login with google redirect a page allow choose account google) at video browser get account google we have logined
@CodeJava2 жыл бұрын
just customize the login page, display Login with Google button only.
@babisvasilopoulos56663 жыл бұрын
Is any available repository to download the source code
@CodeJava3 жыл бұрын
I'll put the code into a separate article, which will be published in near future.
@charagergi53163 жыл бұрын
Hi the video was really helpful, but can I find the source code somewhere? Thank you
@CodeJava3 жыл бұрын
source code will be published in a companion article.
@VIVEKSINGH-zk4pv4 жыл бұрын
Hey I am getting error principalities cannot be empty
@CodeJava4 жыл бұрын
could you share the full, detailed exception stack trace?
@никитаснигиревич4 жыл бұрын
where is git?
@CodeJava4 жыл бұрын
Coming soon. I will share the code when I publish a text-based article for the same topic. Thanks for watching :)
@dmitry14453 жыл бұрын
@@CodeJava a month has passed and there is no article or gita
@buukhanhong402 жыл бұрын
Anh có dạy khoá tiếng Việt không ạ
@CodeJava2 жыл бұрын
ko em ạ. Anh chỉ có khóa tiếng Anh thôi.
@sanghub16424 жыл бұрын
Please helps me. I have problem in class Oauth2LoginSuccessHandler with error: can't convert CustomOauth2User to ....
@CodeJava4 жыл бұрын
kindly show me the full error/exception here.
@sangha17224 жыл бұрын
@@CodeJava Full error/exception here: java.lang.ClassCastException: org.springframework.security.oauth2.core.oidc.user.DefaultOidcUser cannot be cast to com.example.oauth2Google.entity.CustomOauth2User. Please seen help me!
@CodeJava4 жыл бұрын
@@sangha1722 You use the wrong type for the CustomOAuth2User class. It should implements the OAuth2User class. Check the video again.
@sangha17224 жыл бұрын
@@CodeJava My class CustomOAuth2User: "codepad.org/pPNFzKEr". And Class Oauth2LoginSuccess: "codepad.org/fvK6mAxM" Please seen help me! Thanks.
@никитаснигиревич4 жыл бұрын
@@sangha1722 Did u fix this problem??? i have this error too
@arwaalblooshi69444 жыл бұрын
Can you please do Linkedin login? thanks
@CodeJava4 жыл бұрын
Yes, I will. Thanks for watching :)
@vuvankhiem4783 жыл бұрын
Anh cho em hỏi là làm sao để lấy được avatar về được ạ
@CodeJava3 жыл бұрын
look at the attributes in OAUth2User object: oauth2User.getAttribute("name");
@nilsahyadri3 жыл бұрын
can you send all code or github link.
@CodeJava3 жыл бұрын
kindly find in the written article at www.codejava.net/frameworks/spring-boot/oauth2-login-with-google-example
@cuongnguyenminh62353 жыл бұрын
Anh có chanel bằng tiếng Việt ko ạ, em cảm ơn anh
@CodeJava3 жыл бұрын
anh chỉ có kênh tiếng Anh này thôi em ạ.
@sagarsri41434 жыл бұрын
Please make video on role based login from scratch
@CodeJava4 жыл бұрын
did you check this video? kzbin.info/www/bejne/n2OUmWmKnbqcjcU
@sagarsri41434 жыл бұрын
@@CodeJava thank u
@masnaswamy40674 жыл бұрын
java.lang.IllegalArgumentException: principalName cannot be empty., HOW TO SOLVE THIS EXCEPTION BRO
@CodeJava4 жыл бұрын
tell me the properties you're using for Spring OAuth configuration.
@@masnaswamy4067why github? are you configuring for google for github? for google, the configuration should be like this: security: oauth2: client: registration: google: clientId: clientSecret: scope: - email - profile
@masnaswamy40674 жыл бұрын
@@CodeJava no bro i have configured for GitHub only using github oauth properties .,not google
@CodeJava4 жыл бұрын
so you need to follow this video: kzbin.info/www/bejne/qJTMfmmgaNiii9U
@tuananhtran43902 жыл бұрын
Anh có thể làm 1 video với Okta mà SSO đc ko ạ :((
@CodeJava2 жыл бұрын
khi nào anh có thời gian em ạ.
@minhthangngo44313 жыл бұрын
Lỗi uỷ quyền thì phải làm sao ạ
@CodeJava3 жыл бұрын
em gửi lỗi chi tiết (exception) được ko?
@minhthangngo44313 жыл бұрын
@@CodeJava em fix đc rồi anh ạ. thêm cái link uri là đc
@n7-caovanson3813 жыл бұрын
a ơi giúp e với
@sunnysehgal80294 жыл бұрын
Please share the source code
@CodeJava4 жыл бұрын
Kindly follow the video by now because I will publish the code in an article later.
@adamdecarte48472 жыл бұрын
HI, my oAuth2User does not have .getAtribute() method. Only .getAtributes() & .getName()
@CodeJava2 жыл бұрын
Make sure it is from org.springframework.security.oauth2.core.user.OAuth2User. Reference: docs.spring.io/spring-security/site/docs/current/api/org/springframework/security/oauth2/core/user/OAuth2User.html
@xtrange2152 Жыл бұрын
Anh ơi cái login google em ok r nhưng có vấn đề là nếu em edit user theo kiểu gọi MyUserDetail ra để lấy người dùng đang đăng nhập hiện tại thì nó sẽ ra null nếu em login bằng pass vs mk bth thì ok ko sao hết vấn đề ở chỗ đó thôi ạ. Thì phần anh làm là a để oauth2detail riêng ra nên em nghĩ là 2 thg nó ko phân biệt đc nhau ạ em để user role là admin mà login bằng nó ko hiện phần của admin luôn khá ảo
@nienpingchen49672 жыл бұрын
How can i get the profile photo from facebook or google?(oauth2User.getAttribute("name")? can i get a photo from keyword "name"??) Thank you so much for all your springboot tutorial, it help me finish my project , so i can start to find a job !
@CodeJava2 жыл бұрын
I think you need to study OAuth2 attributes of Google and Facebook to know which attribute used for user photo image.