Этот материал находится в платной подписке. Оформи премиум подписку и смотри или слушай OAuth 2.0 in Spring Boot Applications, а также все другие курсы, прямо сейчас!
Премиум
  • Урок 1. 00:04:25
    Introduction
  • Урок 2. 00:07:20
    Introduction to OAuth 2
  • Урок 3. 00:03:17
    OAuth 2.0 Roles
  • Урок 4. 00:04:19
    Current State of OAuth 2.0 in Spring Security 5
  • Урок 5. 00:05:01
    OAuth 2.0 Client Types
  • Урок 6. 00:07:46
    OAuth Access Token
  • Урок 7. 00:03:41
    OAuth2 and OpenID Connect (OIDC)
  • Урок 8. 00:04:27
    Introduction
  • Урок 9. 00:09:46
    Authorization Code. Introduction.
  • Урок 10. 00:07:37
    Authorization Code Demo. Initial Request.
  • Урок 11. 00:04:22
    Authorization Code Demo. Exchange code for Access token.
  • Урок 12. 00:05:38
    PKCE-enhanced Authorization Code
  • Урок 13. 00:01:14
    Generating PKCE Code Verifier
  • Урок 14. 00:01:30
    Generating PKCE Code Challenge
  • Урок 15. 00:07:21
    PKCE Demo. Requesting Authorization Code
  • Урок 16. 00:04:44
    PKCE Demo. Exchanging Code for Access Token
  • Урок 17. 00:01:42
    Client Credentials
  • Урок 18. 00:02:39
    Client Credentials Grant Type Demo
  • Урок 19. 00:02:14
    The Password Credentials Flow
  • Урок 20. 00:03:02
    The Password Credentials Flow: Demo
  • Урок 21. 00:05:05
    Introduction
  • Урок 22. 00:02:26
    Requesting Refresh Token that never expires
  • Урок 23. 00:03:14
    Refreshing Access Token. Demonstration.
  • Урок 24. 00:04:08
    Introduction
  • Урок 25. 00:02:03
    Starting up Standalone Authorization Server Keycloak
  • Урок 26. 00:03:41
    Starting and Stopping Keycloak Server
  • Урок 27. 00:01:21
    Creating an Initial Admin User
  • Урок 28. 00:03:04
    Creating a new Realm
  • Урок 29. 00:02:56
    Creating a new user
  • Урок 30. 00:04:53
    Creating a new OAuth client application
  • Урок 31. 00:01:06
    Configuring Client Application Secrets
  • Урок 32. 00:03:56
    Requesting Access Token and Refresh Token
  • Урок 33. 00:02:16
    Enable/Disable OAuth 2.0 Authorization Flow
  • Урок 34. 00:04:56
    OAuth 2.0 Client Scopes
  • Урок 35. 00:03:01
    Introduction
  • Урок 36. 00:04:05
    Creating a new project
  • Урок 37. 00:00:57
    Import project into Spring Tool Suite IDE
  • Урок 38. 00:01:36
    Starting Resource Server on different port number
  • Урок 39. 00:04:50
    Creating a Rest Controller Class
  • Урок 40. 00:02:58
    Access Token Validation URIs
  • Урок 41. 00:03:53
    Accessing endpoints with an Access Token
  • Урок 42. 00:04:17
    Accessing Principal and JWT Claims
  • Урок 43. 00:03:38
    Demo - Accessing JWT Claims
  • Урок 44. 00:09:15
    Introduction
  • Урок 45. 00:01:58
    Create WebSecurityConfigurerAdapter and enable Web Security
  • Урок 46. 00:02:46
    Override the default HttpSecurity configuration
  • Урок 47. 00:02:25
    Configure Scope-based access control
  • Урок 48. 00:03:14
    Demo - without using proper Scope
  • Урок 49. 00:01:06
    Demo - using proper Scope
  • Урок 50. 00:05:35
    Introduction
  • Урок 51. 00:01:15
    Creating User Role
  • Урок 52. 00:02:22
    Securing Endpoints to a Specific Role
  • Урок 53. 00:02:09
    Creating Role Converter class
  • Урок 54. 00:02:12
    Decoding JWT to find user roles
  • Урок 55. 00:01:32
    Converting Roles into GrantedAuthority objects
  • Урок 56. 00:01:08
    Register JwtAuthenticationConverter with HttpSecurity
  • Урок 57. 00:03:40
    Trying how it works
  • Урок 58. 00:04:56
    Introduction
  • Урок 59. 00:02:20
    Enable Method Level Security
  • Урок 60. 00:05:55
    @Secured annotation example
  • Урок 61. 00:04:00
    @PreAuthorized annotation
  • Урок 62. 00:05:39
    Reading UserId from JWT Access Token
  • Урок 63. 00:03:01
    Trying how the @PreAuthorized annotation works
  • Урок 64. 00:03:32
    Creating getUser() to be used with @PostAuthorize
  • Урок 65. 00:03:09
    @PostAuthorized annotation
  • Урок 66. 00:04:07
    Trying how to the @PostAuthorized annotation works
  • Урок 67. 00:06:02
    Introduction
  • Урок 68. 00:04:18
    Creating API Gateway Project
  • Урок 69. 00:00:37
    Import API Gateway to Spring Tool Suite
  • Урок 70. 00:06:27
    Configuring API Gateway Routes
  • Урок 71. 00:03:46
    Trying how it works
  • Урок 72. 00:03:45
    Albums & Photos Resource Servers
  • Урок 73. 00:03:05
    Routing to multiple Resource Servers
  • Урок 74. 00:04:10
    Trying how it works
  • Урок 75. 00:04:40
    Introduction
  • Урок 76. 00:03:24
    Creating Eureka Discovery Service Project
  • Урок 77. 00:03:50
    Configuring Eureka project
  • Урок 78. 00:04:14
    Eureka Client Dependency
  • Урок 79. 00:02:46
    @EnableDiscoveryClient and configuration properties
  • Урок 80. 00:00:51
    Trying how it works
  • Урок 81. 00:01:10
    Exercise
  • Урок 82. 00:04:47
    Solution overview
  • Урок 83. 00:02:08
    Load Balancing - Introduction
  • Урок 84. 00:04:13
    Starting Resource Servers on Random IP Address
  • Урок 85. 00:07:01
    Eureka and Resource Server Instance Id
  • Урок 86. 00:04:38
    Configuring API Gateway as Eureka Client
  • Урок 87. 00:03:25
    Configure API Gateway Routes
  • Урок 88. 00:02:18
    Return the running port number
  • Урок 89. 00:03:47
    Trying how it works
  • Урок 90. 00:01:43
    OAuth 2.0 in MVC Web App - Introduction
  • Урок 91. 00:02:29
    Creating a new Spring Boot Project
  • Урок 92. 00:04:13
    Creating Controller class
  • Урок 93. 00:04:55
    Returning list of albums
  • Урок 94. 00:04:22
    Displaying Albums in HTML Page
  • Урок 95. 00:01:20
    Adding OAuth2 Client Dependency
  • Урок 96. 00:05:31
    Configuring OAuth2 Client properties
  • Урок 97. 00:02:40
    Configuring OAuth2 Provider properties
  • Урок 98. 00:06:26
    Reading ID Token
  • Урок 99. 00:06:12
    Reading JWT Access Token
  • Урок 100. 00:07:40
    HTTP Request to an Internal Resource Server
  • Урок 101. 00:02:09
    Trying how it works
  • Урок 102. 00:01:28
    A different approach to adding access token
  • Урок 103. 00:01:16
    Adding WebClient Dependency
  • Урок 104. 00:04:53
    Creating a WebClient Bean
  • Урок 105. 00:02:41
    Using WebClient in a Controller class
  • Урок 106. 00:01:42
    Trying how it works
  • Урок 107. 00:01:55
    Introduction
  • Урок 108. 00:02:16
    Creating a new project
  • Урок 109. 00:04:04
    Protected Resource Controller class
  • Урок 110. 00:03:05
    Protected Resource HTML Page
  • Урок 111. 00:03:10
    Creating public page
  • Урок 112. 00:03:05
    Configure HTTP Security
  • Урок 113. 00:04:54
    OAuth 2 Client and Provider configurations
  • Урок 114. 00:02:07
    Facebook: Client Id and Client Secret
  • Урок 115. 00:01:31
    Trying how Facebook login works
  • Урок 116. 00:07:45
    Google Client Id and Client Secret
  • Урок 117. 00:01:06
    Trying how Google sign-in works
  • Урок 118. 00:03:51
    Register a new Okta app
  • Урок 119. 00:03:41
    Configure Okta properties
  • Урок 120. 00:01:00
    Trying how sign-in with Okta works
  • Урок 121. 00:03:44
    Configure logout functionality
  • Урок 122. 00:01:13
    Configure the Logout link
  • Урок 123. 00:02:45
    Trying how logout link works
  • Урок 124. 00:03:52
    OpenID Connect End Session Endpoint
  • Урок 125. 00:02:56
    Implementing OidcClientInitiatedLogoutSuccessHandler
  • Урок 126. 00:01:08
    Trying how Logout from Okta works
  • Урок 127. 00:02:09
    Introduction
  • Урок 128. 00:05:33
    Creating a new Public client in Keycloak
  • Урок 129. 00:01:26
    Creating a new Spring Boot client application
  • Урок 130. 00:01:46
    Creating Index.html
  • Урок 131. 00:01:09
    Import jQuery
  • Урок 132. 00:04:12
    Generating Random State value
  • Урок 133. 00:02:29
    Generating Code Verifier value
  • Урок 134. 00:03:27
    Generating Code Challenge value
  • Урок 135. 00:05:11
    Requesting PKCE-Enhanced Authorization Code
  • Урок 136. 00:01:00
    Creating Auth Code Reader HTML Page
  • Урок 137. 00:03:43
    Reading authorization code from the Redirect URI
  • Урок 138. 00:02:17
    Validating "state" request parameter
  • Урок 139. 00:05:46
    Exchange Code for Access Token
  • Урок 140. 00:02:11
    Finding Refresh Token and ID Token
  • Урок 141. 00:05:23
    Sending Request to Resource Server
  • Урок 142. 00:04:54
    Configure CORS Access on API Gateway
  • Урок 143. 00:10:05
    Configure CORS in Resource Server
  • Урок 144. 00:04:05
    Introduction
  • Урок 145. 00:03:10
    Creating a new project
  • Урок 146. 00:04:47
    Creating RemoteUserStorageProvider class
  • Урок 147. 00:04:04
    Creating RemoteUserStorageProviderFactory class
  • Урок 148. 00:01:26
    Adding Keycloak Core Dependency
  • Урок 149. 00:03:28
    Solution overview
  • Урок 150. 00:09:16
    Remote Users Webservice Overview
  • Урок 151. 00:01:44
    RESTEasy HTTP Client Dependency
  • Урок 152. 00:05:55
    Implementing Users Api Service
  • Урок 153. 00:03:06
    Creating User Class
  • Урок 154. 00:03:57
    Adding the verifyUserPassword to UsersApiService
  • Урок 155. 00:04:46
    Building RESTEasy HTTP Client
  • Урок 156. 00:05:39
    Implementing getUserByUsername() method
  • Урок 157. 00:03:48
    Verifying User Password
  • Урок 158. 00:04:17
    Packaging UserStorageProvider
  • Урок 159. 00:08:46
    Deploying User Storage SPI
  • Урок 160. 00:04:42
    Trying how it works
  • Урок 161. 00:03:33
    Introduction
  • Урок 162. 00:04:02
    Creating a new project
  • Урок 163. 00:08:45
    Register an OAuth Client
  • Урок 164. 00:05:31
    Configure Authorization Server
  • Урок 165. 00:03:40
    Spring Security Configuration
  • Урок 166. 00:04:59
    A request for Authorization Code
  • Урок 167. 00:06:07
    Exchange Authorization Code for JWT Access Token
  • Урок 168. 00:03:52
    Creating and Configure Resource Server
  • Урок 169. 00:04:19
    Resource Server API Endpoint
  • Урок 170. 00:03:39
    Consume protected API Endpoints
  • Урок 171. 00:03:41
    Project Overview
  • Урок 172. 00:04:42
    OAuth2 Client-related configuration
  • Урок 173. 00:02:53
    Reading the JWT Access Token
  • Урок 174. 00:03:44
    Sending HTTP Request
  • Урок 175. 00:01:39
    Trying how it works