潍坊做网站张家口,软件研发项目管理系统,制作网页如何设置对齐方式,杭州做网站的企业这篇文章是3篇系列文章的最后一部分#xff0c;该系列文章探讨了如何为基于Spring Boot 2的应用程序启用OAuth2提供程序SSO。 3个帖子是#xff1a; 引导兼容OpenID Connect的OAuth2授权服务器/ OpenID提供程序的方法 与OAuth2授权服务器/ OpenID提供程序集成的旧版Spring … 这篇文章是3篇系列文章的最后一部分该系列文章探讨了如何为基于Spring Boot 2的应用程序启用OAuth2提供程序SSO。 3个帖子是 引导兼容OpenID Connect的OAuth2授权服务器/ OpenID提供程序的方法 与OAuth2授权服务器/ OpenID提供程序集成的旧版Spring Boot / Spring 5方法 与OAuth2授权服务器/ OpenID Connect提供商集成的更新的Spring Boot 2 / Spring 5方法–这篇文章 这篇文章将探讨使用Spring Security中的本机OAuth2支持为Spring Boot 2应用程序启用SSO的崭新方法。 该文章再次假定第一篇文章中描述的所有内容均已完成。 Spring Boot 2自动配置 Spring Boot 2为Spring Security中的本机OAuth2支持提供了自动配置请参见org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientAutoConfiguration类。 通过以下gradle坐标可用的“ spring-security-oauth2-client”库激活了自动配置 compile org.springframework.security:spring-security-oauth2-client 此自动配置会处理一组属性对于已启动的UAA身份提供程序该组属性如下 uaa-base-url: http://localhost:8080/uaaspring:security:oauth2:client:registration:uaa:client-id: client1client-secret: client1authorizationGrantType: authorization_coderedirect_uri_template: {baseUrl}/login/oauth2/code/{registrationId}scope: resource.read,resource.write,openid,profileclientName: oauth2-sample-clientprovider:uaa:token-uri: ${uaa-base-url}/oauth/tokenauthorization-uri: ${uaa-base-url}/oauth/authorizeuser-info-uri: ${uaa-base-url}/userinfojwk-set-uri: ${uaa-base-url}/token_keysuserNameAttribute: user_name 如果要依靠Spring Boot 2自动配置支持来实现对本机OAuth2的支持并实现应用程序的启动那么在访问应用程序时将看到以下页面 请注意此登录页面是由Spring Security OAuth2创建的默认页面默认情况下会显示注册列表。 单击“ oauth2-sample-client”将显示身份提供者在这种情况下UAA的登录页面 对于基于OpenID Connect的流程应用程序将获得ID令牌以及我正在解码并呈现在页面上的Access令牌 客制化 我要进行的快速自定义之一是在访问通过“ / secured” uri模式指定的任何受保护页面时重定向到UAA以下是一组应启用此配置的配置 package sample.oauth2.configimport org.springframework.context.annotation.Configuration
import org.springframework.security.config.annotation.web.builders.HttpSecurity
import org.springframework.security.config.annotation.web.builders.WebSecurity
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapterConfiguration
class OAuth2SecurityConfig : WebSecurityConfigurerAdapter() {override fun configure(web: WebSecurity) {super.configure(web)web.ignoring().mvcMatchers(/favicon.ico,/webjars/**,/css/**)}override fun configure(http: HttpSecurity) {http.csrf().disable()http.authorizeRequests().antMatchers(/secured/**).authenticated().antMatchers(/, /custom_login).permitAll().anyRequest().authenticated().and().oauth2Login().loginPage(/custom_login)}
} 请参阅上面设置为“ / custom_login”的URI依次将控制权简单地移交给OAuth2控制的端点这些端点知道设置适当的参数并重定向到UAA Controller
class LoginController {RequestMapping(/custom_login)fun loginPage(): String {return redirect:/oauth2/authorization/uaa}
} 到此结束对Spring Boo2应用程序中对本机OAuth2支持的探索。 所有示例都可以在我的github存储库中找到 – https://github.com/bijukunjummen/oauth2-boot2 以下参考资料有助于理解OAuth2支持 1. Spring安全性文档 – https://docs.spring.io/spring-security/site/docs/current/reference/html/ 2. Joe Grandja的 Spring One Platform 2017演示文稿 – https://www.youtube.com/watch?vWhrOCurxFWU 翻译自: https://www.javacodegeeks.com/2018/03/spring-boot-2-native-approach-sso-oauth-2-openid-connect.html