Spring boot 使用Broadleaf进行Spring社交登录

Spring boot 使用Broadleaf进行Spring社交登录,spring-boot,broadleaf-commerce,spring-social-facebook,spring-social-google,Spring Boot,Broadleaf Commerce,Spring Social Facebook,Spring Social Google,我期待着提供Facebook和Gmail登录到Broadleaf应用程序,我指的是下面提到的链接 然而,这个链接已经很老了,有人能帮我发送一个链接或指针,用Broadleaf 5.2版进行Spring社交登录吗 提前感谢我还没有真正实现这一点,但我想我可以提供一些指导。以下步骤摘自博客文章。一般来说,这篇博文仍然是正确的,但是自从那篇博文撰写以来,声明bean已经从XML转移到Java 1) 将Spring社交依赖项添加到根POM 关注博客帖子 您可能需要更新到最新版本的Spring Soci

我期待着提供Facebook和Gmail登录到Broadleaf应用程序,我指的是下面提到的链接

然而,这个链接已经很老了,有人能帮我发送一个链接或指针,用Broadleaf 5.2版进行Spring社交登录吗


提前感谢

我还没有真正实现这一点,但我想我可以提供一些指导。以下步骤摘自博客文章。一般来说,这篇博文仍然是正确的,但是自从那篇博文撰写以来,声明bean已经从XML转移到Java

1) 将Spring社交依赖项添加到根POM 关注博客帖子

您可能需要更新到最新版本的Spring Social(自2020年1月起为1.1.6)。有关更新的依赖项,请参阅。具体来说,您需要从博客文章中添加一个额外的依赖项:

<dependency>
    <groupId>org.springframework.social</groupId>
    <artifactId>spring-social-core</artifactId>
    <version>1.1.6.RELEASE</version>
</dependency>
applicationContext-security.xml的条目将放在SiteSecurityConfig中,但它需要更新以符合Spring security Java配置的新标准。博客帖子
中的配置片段只要求通过https提供/sign下的URL。自2012年写博客文章以来,通过https为整个网站提供服务已成为标准,因此,如果您的网站已经在这样做,则此步骤可能没有必要。查看我们的参考Heat Clinic应用程序,其SiteSecurityConfig.java已经配置为通过https服务所有URL

如果确实需要添加条目,请在SiteSecurityConfig.java中找到方法
configure(HttpSecurity http)
,并将其添加到配置中:

@Value("${facebook.clientId}")
private String facebookClientId;

@Value("${facebook.clientSecret}")
private String facebookClientSecret;

@Value("${twitter.consumerKey}")
private String twitterConsumerKey;

@Value("${twitter.consumerSecret}")
private String twitterConsumerSecret;

@Bean
public ConnectionFactoryRegistry connectionFactoryLocator() {
    FacebookConnectionFactory facebookConnectionFactory = new FacebookConnectionFactory(facebookClientId, facebookClientSecret);
    TwitterConnectionFactory twitterConnectionFactory = new TwitterConnectionFactory(twitterConsumerKey, twitterConsumerSecret);

    ConnectionFactoryRegistry connectionFactoryRegistry = new ConnectionFactoryRegistry();
    connectionFactoryRegistry.setConnectionFactories(Arrays.asList(facebookConnectionFactory, twitterConnectionFactory));
    return connectionFactoryRegistry;
}
.requiresChannel()
    .antMatchers("/signin/**")
    .requiresSecure()
您还可以将字符串
/signin/**
添加到现有的
requireChannel
antMatcher(如果存在)

3) 修改您的Broadleaf运行时属性 和博客文章一样

4) 将新的applicationContext-social.xml添加到web.xml 使用组件扫描时,此步骤不是必需的。我怀疑您使用的web.xml文件是Broadleaf 5.2

5) 将您的RegisterController更改为扩展BroadLeaf Social RegisterController 和博客文章一样。您可以在
org.broadleafcommerce.core.web.controller.account.BroadleafSocialRegisterController

6) 最后,将登录按钮添加到登录页面 和博客文章一样。适应网站的HTML


我希望这有帮助。请随时提出任何后续问题。

我还没有真正实现这一点,但我想我可以提供一些建议。以下步骤摘自博客文章。一般来说,这篇博文仍然是正确的,但是自从那篇博文撰写以来,声明bean已经从XML转移到Java

1) 将Spring社交依赖项添加到根POM 关注博客帖子

您可能需要更新到最新版本的Spring Social(自2020年1月起为1.1.6)。有关更新的依赖项,请参阅。具体来说,您需要从博客文章中添加一个额外的依赖项:

<dependency>
    <groupId>org.springframework.social</groupId>
    <artifactId>spring-social-core</artifactId>
    <version>1.1.6.RELEASE</version>
</dependency>
applicationContext-security.xml的条目将放在SiteSecurityConfig中,但它需要更新以符合Spring security Java配置的新标准。博客帖子
中的配置片段只要求通过https提供/sign下的URL。自2012年写博客文章以来,通过https为整个网站提供服务已成为标准,因此,如果您的网站已经在这样做,则此步骤可能没有必要。查看我们的参考Heat Clinic应用程序,其SiteSecurityConfig.java已经配置为通过https服务所有URL

如果确实需要添加条目,请在SiteSecurityConfig.java中找到方法
configure(HttpSecurity http)
,并将其添加到配置中:

@Value("${facebook.clientId}")
private String facebookClientId;

@Value("${facebook.clientSecret}")
private String facebookClientSecret;

@Value("${twitter.consumerKey}")
private String twitterConsumerKey;

@Value("${twitter.consumerSecret}")
private String twitterConsumerSecret;

@Bean
public ConnectionFactoryRegistry connectionFactoryLocator() {
    FacebookConnectionFactory facebookConnectionFactory = new FacebookConnectionFactory(facebookClientId, facebookClientSecret);
    TwitterConnectionFactory twitterConnectionFactory = new TwitterConnectionFactory(twitterConsumerKey, twitterConsumerSecret);

    ConnectionFactoryRegistry connectionFactoryRegistry = new ConnectionFactoryRegistry();
    connectionFactoryRegistry.setConnectionFactories(Arrays.asList(facebookConnectionFactory, twitterConnectionFactory));
    return connectionFactoryRegistry;
}
.requiresChannel()
    .antMatchers("/signin/**")
    .requiresSecure()
您还可以将字符串
/signin/**
添加到现有的
requireChannel
antMatcher(如果存在)

3) 修改您的Broadleaf运行时属性 和博客文章一样

4) 将新的applicationContext-social.xml添加到web.xml 使用组件扫描时,此步骤不是必需的。我怀疑您使用的web.xml文件是Broadleaf 5.2

5) 将您的RegisterController更改为扩展BroadLeaf Social RegisterController 和博客文章一样。您可以在
org.broadleafcommerce.core.web.controller.account.BroadleafSocialRegisterController

6) 最后,将登录按钮添加到登录页面 和博客文章一样。适应网站的HTML

我希望这有帮助。请随时提出任何后续问题