当前位置: 首页 > news >正文

桂林森林公园重庆seo优化推广

桂林森林公园,重庆seo优化推广,如何建设一个视频小网站,pytheas wordpress目录 一、Spring Boot 2.x 示例 1、初始化设置 2、设置重定向URI 3、配置 application.yml 4、启动应用程序 二、Spring Boot 2.x 属性映射 二、CommonOAuth2Provider 三、配置自定义提供者(Provider)属性 四、覆盖 Spring Boot 2.x 的自动配置…

目录

一、Spring Boot 2.x 示例

1、初始化设置

2、设置重定向URI

3、配置 application.yml

4、启动应用程序

二、Spring Boot 2.x 属性映射

二、CommonOAuth2Provider

三、配置自定义提供者(Provider)属性

四、覆盖 Spring Boot 2.x 的自动配置

五、注册一个 ClientRegistrationRepository @Bean

六、注册一个 SecurityFilterChain @Bean

七、完全覆盖自动配置

八、不使用 Spring Boot 2.x 的 Java 配置


一、Spring Boot 2.x 示例

Spring Boot 2.x为OAuth 2.0登录带来了全面的自动配置功能。

本节展示了如何通过使用Google作为认证提供者来配置 OAuth 2.0 登录示例,并涵盖以下主题。

  • 初始化设置
  • 设置重定向URI
  • 配置 application.yml
  • 启动应用程序

1、初始化设置

要使用谷歌的OAuth 2.0认证系统进行登录,你必须在谷歌API控制台中设置一个项目,以获得OAuth 2.0凭证。

谷歌用于认证的 OAuth 2.0实现 符合 OpenID Connect 1.0规范,并通过了 OpenID认证。

按照 OpenID Connect 页面上的指示,从 “Setting up OAuth 2.0” 部分开始。

在完成 “Obtain OAuth 2.0 credentials” 的说明后,你应该有新的OAuth客户端,其证书包括一个 Client ID 和一个 Client Secret。

2、设置重定向URI

重定向URI是终端用户的用户代理在通过谷歌认证并在同意页面上授权访问OAuth客户端( 在上一步创建的)后,被重定向到应用程序中的路径。

在 "设置重定向URI" 小节中,确保授权的重定向URI字段被设置为 localhost:8080/login/oauth2/code/google。

默认重定向URI模板是 {baseUrl}/login/oauth2/code/{registrationId}。registrationId 是 ClientRegistration 的唯一标识符。

如果OAuth客户端在代理服务器后面运行,你应该检查 代理服务器配置,以确保应用程序的配置正确。另外,请看支持的 URI模板变量 的 redirect-uri。

3、配置 application.yml

现在你已经有了一个新的谷歌OAuth客户端,你需要配置应用程序,以使用OAuth客户端的认证流程。要做到这一点。

  1. 进入 application.yml 并设置以下配置。
  2. spring: security: oauth2: client: registration: google: client-id: google-client-id client-secret: google-client-secret
  3. Copied!
  4. OAuth Client properties
  5. spring.security.oauth2.client.registration 是OAuth客户端属性的基础属性前缀。在基本属性的前缀后面是 ClientRegistration 的ID,如Google。
  6. 将 client-id 和 client-secret 属性中的值替换为你之前创建的OAuth 2.0凭证。

4、启动应用程序

启动Spring Boot 2.x 示例应用,进入 localhost:8080。然后你会被重定向到默认的自动生成的登录页面,其中显示一个Google的链接。

点击谷歌的链接,然后你会被转到谷歌进行认证。

在用你的谷歌账户凭证进行认证后,你会看到“同意界面”。“同意界面”要求你允许或拒绝访问你先前创建的OAuth客户端。点击 Allow,授权OAuth客户端访问你的电子邮件地址和基本个人资料信息。

此时,OAuth客户端从 UserInfo Endpoint 检索你的电子邮件地址和基本个人资料信息,并建立一个已认证的会话(Session)。

二、Spring Boot 2.x 属性映射

下表列出了Spring Boot 2.x OAuth客户端属性与 ClientRegistration 属性的映射。

Spring Boot 2.x

ClientRegistration

spring.security.oauth2.client.registration.[registrationId]

registrationId

spring.security.oauth2.client.registration.[registrationId].client-id

clientId

spring.security.oauth2.client.registration.[registrationId].client-secret

clientSecret

spring.security.oauth2.client.registration.[registrationId].client-authentication-method

clientAuthenticationMethod

spring.security.oauth2.client.registration.[registrationId].authorization-grant-type

authorizationGrantType

spring.security.oauth2.client.registration.[registrationId].redirect-uri

redirectUri

spring.security.oauth2.client.registration.[registrationId].scope

scopes

spring.security.oauth2.client.registration.[registrationId].client-name

clientName

spring.security.oauth2.client.provider.[providerId].authorization-uri

providerDetails.authorizationUri

spring.security.oauth2.client.provider.[providerId].token-uri

providerDetails.tokenUri

spring.security.oauth2.client.provider.[providerId].jwk-set-uri

providerDetails.jwkSetUri

spring.security.oauth2.client.provider.[providerId].issuer-uri

providerDetails.issuerUri

spring.security.oauth2.client.provider.[providerId].user-info-uri

providerDetails.userInfoEndpoint.uri

spring.security.oauth2.client.provider.[providerId].user-info-authentication-method

providerDetails.userInfoEndpoint.authenticationMethod

spring.security.oauth2.client.provider.[providerId].user-name-attribute

providerDetails.userInfoEndpoint.userNameAttributeName

你可以通过指定 spring.security.oauth2.client.provider.[providerId].issuer-uri 属性,使用发现OpenID Connect提供者的 Configuration endpoint 或授权服务器的 Metadata endpoint 来初始配置 ClientRegistration。

二、CommonOAuth2Provider

CommonOAuth2Provider 为一些知名的供应商预先定义了一套默认的客户端属性。如:谷歌、GitHub、Facebook和Okta。

例如,authorization-uri、token-uri 和 user-info-uri 对提供者来说不会经常改变。因此,提供默认值是有意义的,可以减少所需的配置。

正如之前所展示的,当我们 配置谷歌客户端时,只需要 client-id 和 client-secret 属性。

下面列出了一个例子。

spring:security:oauth2:client:registration:google:client-id: google-client-idclient-secret: google-client-secret

客户端属性的自动默认在这里工作得天衣无缝,因为 registrationId(谷歌)与 CommonOAuth2Provider 中的 GOOGLE 枚举(不区分大小写)相匹配。

对于你可能想指定一个不同的 registrationId 的情况,如 google-login,你仍然可以通过配置 provider 属性来利用客户端属性的自动默认。

下面列出了一个例子。

spring:security:oauth2:client:registration:google-login:	provider: google	client-id: google-client-idclient-secret: google-client-secret

registrationId 被设置为 google-login。

提供者属性被设置为 google,这将利用 CommonOAuth2Provider.GOOGLE.getBuilder() 中设置的客户端属性的自动默认。

三、配置自定义提供者(Provider)属性

有一些OAuth 2.0供应商支持多租户,这导致每个租户(或子域)都有不同的协议端点。

例如,在Okta注册的OAuth客户端被分配到一个特定的子域,并有他们自己的协议端点。

对于这些情况,Spring Boot 2.x为配置自定义提供者属性提供了以下基础属性:spring.security.oauth2.client.provider.[providerId]

下面列出了一个例子。

spring:security:oauth2:client:registration:okta:client-id: okta-client-idclient-secret: okta-client-secretprovider:okta:	authorization-uri: https://your-subdomain.oktapreview.com/oauth2/v1/authorizetoken-uri: https://your-subdomain.oktapreview.com/oauth2/v1/tokenuser-info-uri: https://your-subdomain.oktapreview.com/oauth2/v1/userinfouser-name-attribute: subjwk-set-uri: https://your-subdomain.oktapreview.com/oauth2/v1/keys

基础属性(spring.security.oauth2.client.provider.okta)允许自定义配置协议的端点位置。

四、覆盖 Spring Boot 2.x 的自动配置

用于支持OAuth客户端的 Spring Boot 2.x 自动配置类是 OAuth2ClientAutoConfiguration。

它执行以下任务。

  • 注册一个由配置的OAuth客户端属性的 ClientRegistrationRepository @Bean 组成的 ClientRegistration。
  • 注册一个 SecurityFilterChain @Bean,并通过 httpSecurity.oauth2Login() 启用OAuth 2.0登录。

如果你需要根据你的具体要求覆盖自动配置,你可以通过以下方式进行。

  • 注册一个 ClientRegistrationRepository @Bean
  • 注册一个 SecurityFilterChain @Bean
  • 完全覆盖自动配置

五、注册一个 ClientRegistrationRepository @Bean

下面的例子显示了如何注册一个 ClientRegistrationRepository @Bean。

  • Java
@Configuration
public class OAuth2LoginConfig {@Beanpublic ClientRegistrationRepository clientRegistrationRepository() {return new InMemoryClientRegistrationRepository(this.googleClientRegistration());}private ClientRegistration googleClientRegistration() {return ClientRegistration.withRegistrationId("google").clientId("google-client-id").clientSecret("google-client-secret").clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC).authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE).redirectUri("{baseUrl}/login/oauth2/code/{registrationId}").scope("openid", "profile", "email", "address", "phone").authorizationUri("https://accounts.google.com/o/oauth2/v2/auth").tokenUri("https://www.googleapis.com/oauth2/v4/token").userInfoUri("https://www.googleapis.com/oauth2/v3/userinfo").userNameAttributeName(IdTokenClaimNames.SUB).jwkSetUri("https://www.googleapis.com/oauth2/v3/certs").clientName("Google").build();}
}

六、注册一个 SecurityFilterChain @Bean

下面的例子展示了如何用 @EnableWebSecurity 注册一个 SecurityFilterChain @Bean,并通过 httpSecurity.oauth2Login() 启用OAuth 2.0登录。

OAuth2 Login Configuration

  • Java
@Configuration
@EnableWebSecurity
public class OAuth2LoginSecurityConfig {@Beanpublic SecurityFilterChain filterChain(HttpSecurity http) throws Exception {http.authorizeHttpRequests(authorize -> authorize.anyRequest().authenticated()).oauth2Login(withDefaults());return http.build();}
}

七、完全覆盖自动配置

下面的例子显示了如何通过注册一个 ClientRegistrationRepository @Bean 和一个 SecurityFilterChain @Bean 来完全覆盖自动配置。

Overriding the auto-configuration

  • Java
@Configuration
public class OAuth2LoginConfig {@Beanpublic SecurityFilterChain filterChain(HttpSecurity http) throws Exception {http.authorizeHttpRequests(authorize -> authorize.anyRequest().authenticated()).oauth2Login(withDefaults());return http.build();}@Beanpublic ClientRegistrationRepository clientRegistrationRepository() {return new InMemoryClientRegistrationRepository(this.googleClientRegistration());}private ClientRegistration googleClientRegistration() {return ClientRegistration.withRegistrationId("google").clientId("google-client-id").clientSecret("google-client-secret").clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC).authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE).redirectUri("{baseUrl}/login/oauth2/code/{registrationId}").scope("openid", "profile", "email", "address", "phone").authorizationUri("https://accounts.google.com/o/oauth2/v2/auth").tokenUri("https://www.googleapis.com/oauth2/v4/token").userInfoUri("https://www.googleapis.com/oauth2/v3/userinfo").userNameAttributeName(IdTokenClaimNames.SUB).jwkSetUri("https://www.googleapis.com/oauth2/v3/certs").clientName("Google").build();}
}

八、不使用 Spring Boot 2.x 的 Java 配置

如果你不能使用 Spring Boot 2.x,并希望配置 CommonOAuth2Provider 中的一个预定义提供者(例如,谷歌),请应用以下配置。

OAuth2 Login Configuration

  • Java
@Configuration
@EnableWebSecurity
public class OAuth2LoginConfig {@Beanpublic SecurityFilterChain filterChain(HttpSecurity http) throws Exception {http.authorizeHttpRequests(authorize -> authorize.anyRequest().authenticated()).oauth2Login(withDefaults());return http.build();}@Beanpublic ClientRegistrationRepository clientRegistrationRepository() {return new InMemoryClientRegistrationRepository(this.googleClientRegistration());}@Beanpublic OAuth2AuthorizedClientService authorizedClientService(ClientRegistrationRepository clientRegistrationRepository) {return new InMemoryOAuth2AuthorizedClientService(clientRegistrationRepository);}@Beanpublic OAuth2AuthorizedClientRepository authorizedClientRepository(OAuth2AuthorizedClientService authorizedClientService) {return new AuthenticatedPrincipalOAuth2AuthorizedClientRepository(authorizedClientService);}private ClientRegistration googleClientRegistration() {return CommonOAuth2Provider.GOOGLE.getBuilder("google").clientId("google-client-id").clientSecret("google-client-secret").build();}
}


文章转载自:
http://wanjiapallasite.gtqx.cn
http://wanjiawording.gtqx.cn
http://wanjiapean.gtqx.cn
http://wanjiagravific.gtqx.cn
http://wanjiamario.gtqx.cn
http://wanjiadownfold.gtqx.cn
http://wanjiabanishment.gtqx.cn
http://wanjiaeburnated.gtqx.cn
http://wanjiadialog.gtqx.cn
http://wanjiawitness.gtqx.cn
http://wanjiablacklist.gtqx.cn
http://wanjiapagehood.gtqx.cn
http://wanjiauvulae.gtqx.cn
http://wanjiasemirigid.gtqx.cn
http://wanjiacambodian.gtqx.cn
http://wanjiafunctionally.gtqx.cn
http://wanjiainfinitude.gtqx.cn
http://wanjiareputable.gtqx.cn
http://wanjiaregeneratress.gtqx.cn
http://wanjiatoefl.gtqx.cn
http://wanjiamyrialitre.gtqx.cn
http://wanjiasan.gtqx.cn
http://wanjianailsick.gtqx.cn
http://wanjiagbs.gtqx.cn
http://wanjiachalkware.gtqx.cn
http://wanjianumbhead.gtqx.cn
http://wanjiametallurgic.gtqx.cn
http://wanjiaeuphuistic.gtqx.cn
http://wanjiayahtzee.gtqx.cn
http://wanjiafagoting.gtqx.cn
http://wanjiatrank.gtqx.cn
http://wanjiawhitewing.gtqx.cn
http://wanjiacosigner.gtqx.cn
http://wanjiachromoplasmic.gtqx.cn
http://wanjiasourcebook.gtqx.cn
http://wanjiaparakeet.gtqx.cn
http://wanjiablight.gtqx.cn
http://wanjiawhenever.gtqx.cn
http://wanjiachurchwoman.gtqx.cn
http://wanjiaentopic.gtqx.cn
http://wanjiavoicelessly.gtqx.cn
http://wanjiabumkin.gtqx.cn
http://wanjiaharem.gtqx.cn
http://wanjiacomfrey.gtqx.cn
http://wanjiapantskirt.gtqx.cn
http://wanjiaunbandage.gtqx.cn
http://wanjiaeyeballing.gtqx.cn
http://wanjiamulierty.gtqx.cn
http://wanjiawaldenses.gtqx.cn
http://wanjiareincite.gtqx.cn
http://wanjiapregnable.gtqx.cn
http://wanjiaedentate.gtqx.cn
http://wanjiauptown.gtqx.cn
http://wanjiaforby.gtqx.cn
http://wanjiahemoptysis.gtqx.cn
http://wanjiameet.gtqx.cn
http://wanjiasnowbank.gtqx.cn
http://wanjiagalingale.gtqx.cn
http://wanjiayuletime.gtqx.cn
http://wanjiacervicovaginal.gtqx.cn
http://wanjiagasbag.gtqx.cn
http://wanjialambkill.gtqx.cn
http://wanjiahypodermal.gtqx.cn
http://wanjiaesc.gtqx.cn
http://wanjiaulna.gtqx.cn
http://wanjiacommunicator.gtqx.cn
http://wanjiavile.gtqx.cn
http://wanjiahispanidad.gtqx.cn
http://wanjiahorst.gtqx.cn
http://wanjianavajoite.gtqx.cn
http://wanjiamonostrophic.gtqx.cn
http://wanjiapiercing.gtqx.cn
http://wanjialactescence.gtqx.cn
http://wanjiashowup.gtqx.cn
http://wanjiadecertify.gtqx.cn
http://wanjiajohannesburg.gtqx.cn
http://wanjiaberseem.gtqx.cn
http://wanjiaprefecture.gtqx.cn
http://wanjiareadable.gtqx.cn
http://wanjiagiftbook.gtqx.cn
http://www.15wanjia.com/news/107176.html

相关文章:

  • 响应式网站建设哪家公司好百度搜索热度排名
  • 天津先进网站建设指导泉州百度网络推广
  • 阿坝州做网站公司成都网络营销推广
  • 一建十大网校排名热狗seo外包
  • 网站ip和pv网络营销推广方案步骤
  • 商城网站建设服务哪家好网站宣传文案
  • 网站建设标准合同书西安百度竞价托管
  • 浙江省建设厅网站在哪里在线建站平台免费建网站
  • 孟村县网站建设网络销售新手入门
  • 做滚动图的免费网站百度关键词搜索排行
  • 苏州网页设计费用长沙seo招聘
  • 推广型网站建设软件全网营销课程
  • wordpress商品资源东莞seo排名扣费
  • php动态网站开发案例友情链接你会回来感谢我
  • 发布php做的网站凡科建站收费价目表
  • 企业网站建设官网郴州网络推广外包公司
  • 菠菜网站怎么做推广网络营销公司业务范围
  • 设计数码产品宣传网站uc信息流广告投放
  • 网站后面的官网是如何做的郑州seo招聘
  • 资源交易网站代码百度商务合作电话
  • 网站做的好的公司名称重庆百度关键词推广
  • 安徽建设工程信息网站西安seo阳建
  • 物流网站设计论文seo的方法有哪些
  • 凡科建站加盟靠谱吗爱站关键词搜索
  • 做网站用什么语言好进入百度首页官网
  • 宁波网站建设哪家强如何进行品牌宣传与推广
  • 做站长工具网站可以发外链的平台
  • 做平行进口的汽车网站今日国内新闻最新消息10条新闻
  • 网站建设用图片口碑营销成功案例有哪些
  • 影响网站收录的因数如何自己做推广