我希望在 Broadleaf 应用程序上提供 Facebook 和 Gmail 登录信息,我指的是下面提到的链接
https://www.broadleafcommerce.com/blog/why-your-ecommerce-site-should-integrate-with-spring-social
但是链接已经很老了,谁能帮我发送一个链接或指针以使用 Broadleaf 5.2 版进行 Spring Social 登录
提前致谢
我希望在 Broadleaf 应用程序上提供 Facebook 和 Gmail 登录信息,我指的是下面提到的链接
https://www.broadleafcommerce.com/blog/why-your-ecommerce-site-should-integrate-with-spring-social
但是链接已经很老了,谁能帮我发送一个链接或指针以使用 Broadleaf 5.2 版进行 Spring Social 登录
提前致谢
我实际上并没有实现这一点,但我想我可以提供一些指针。以下步骤取自博客文章。总的来说,这篇博文仍然是正确的,但自从写了这篇博文以来,声明 bean 已经从 XML 转移到了 Java。
关注博文。
您可能需要更新到 Spring Social 的最新版本(截至 2020 年 1 月的 1.1.6)。请参阅Spring Social Documentation以获取更新的依赖项。具体来说,您需要从博客文章中列出的内容中添加一个额外的依赖项:
<dependency>
<groupId>org.springframework.social</groupId>
<artifactId>spring-social-core</artifactId>
<version>1.1.6.RELEASE</version>
</dependency>
最新的 spring-social-facebook 是 1.1.1,最新的 spring-social-twitter 是 1.1.2。
这是变化最大的一步。Broadleaf 5.2 支持在类上使用 Spring 的 @Configuration 注释声明 bean。这意味着可以在 Java 中为 Broadleaf 5.2 的 @Configuration 类定义博客文章中 XML 中定义的 bean。
applicationContext-social.xml 的 bean 定义可以添加到 SiteConfig.java(或添加到从 SiteConfig 扫描组件的新配置类),applicationContext-servlet.xml 的 bean 定义将进入 SiteServletConfig。
这是博客文章中作为 Java 配置列出的第一个 bean 的示例:
@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;
}
applicationContext-security.xml 的条目将进入 SiteSecurityConfig,但需要对其进行更新以符合 Spring Security Java 配置的新标准。博客文章中的配置片段<sec:intercept-url pattern="/signin/**" requires-channel="https" />只要求 /signin 下的 URL 通过 https 提供。自 2012 年撰写博客文章以来,通过 https 为整个站点提供服务已成为标准,因此如果您的站点已经这样做,则可能不需要此步骤。查看我们的参考 Heat Clinic 应用程序,它的 SiteSecurityConfig.java 已经配置为通过 https 提供所有 URL。
如果您确实需要添加一个条目,请在 SiteSecurityConfig.java 中找到该方法configure(HttpSecurity http)并将其添加到配置中:
.requiresChannel()
.antMatchers("/signin/**")
.requiresSecure()
如果存在,您还可以将字符串添加/signin/**到现有的requiresChannelantMatcher。
与博文相同
使用组件扫描时,此步骤不是必需的。我怀疑您使用的是带有 Broadleaf 5.2 的 web.xml 文件。
和博文一样。您可以在以下位置查看框架控制器org.broadleafcommerce.core.web.controller.account.BroadleafSocialRegisterController
和博文一样。适应您网站的 HTML。
我希望这有帮助。随时提出任何后续问题。