Book Image

OAuth 2.0 Cookbook

By : Adolfo Eloy Nascimento
Book Image

OAuth 2.0 Cookbook

By: Adolfo Eloy Nascimento

Overview of this book

OAuth 2.0 is a standard protocol for authorization and focuses on client development simplicity while providing specific authorization flows for web applications, desktop applications, mobile phones, and so on. This book also provides useful recipes for solving real-life problems using Spring Security and creating Android applications. The book starts by presenting you how to interact with some public OAuth 2.0 protected APIs such as Facebook, LinkedIn and Google. You will also be able to implement your own OAuth 2.0 provider with Spring Security OAuth2. Next, the book will cover practical scenarios regarding some important OAuth 2.0 profiles such as Dynamic Client Registration, Token Introspection and how to revoke issued access tokens. You will then be introduced to the usage of JWT, OpenID Connect, and how to safely implement native mobile OAuth 2.0 Clients. By the end of this book, you will be able to ensure that both the server and client are protected against common vulnerabilities.
Table of Contents (16 chapters)
Title Page
About the Author
About the Reviewer
Customer Feedback


This chapter introduces you to using Spring Security OAuth2 and the new version of Spring Security to add support for OpenID Connect. OpenID comes as an additional layer that builds authentication on top of OAuth 2.0, which is an authorization protocol. After reading this chapter, you will be able to integrate with any OpenID provider, such as Google, Microsoft, and Facebook Identity Providers. This chapter also presents you with invaluable recipes using the most up-to-date version of Spring Security. Spring Security 5 integrates all security-related projects, such as OAuth 2.0, OpenID, Single Sign On, and Spring Social, which are implemented as separate projects at the moment.


All recipes in this chapter rely on registered applications on Identity Providers. As I can't share my application credentials, I have created an file for each project created for each recipe. If you download any source code from GitHub, you have to rename this file to...