我希望在Broadleaf应用程序上提供Facebook和Gmail登录名,我为此引用了下面提到的链接
https://www.broadleafcommerce.com/blog/why-your-ecommerce-site-should-integrate-with-spring-social
无论链接是否较旧,任何人都可以帮助我发送链接或指针以使用Broadleaf 5.2版进行Spring Social登录
预先感谢
答案 0 :(得分:0)
我实际上还没有实现,但是我想我可以提供一些指示。以下步骤来自博客文章。总体而言,博客文章仍然是正确的,但是自从该文章被编写以来,声明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中。 / p>
以下是博客文章中第一个以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/**
添加到现有的requiresChannel
antMatcher(如果存在)。
与博客文章相同
使用组件扫描时,无需执行此步骤。我怀疑您在Broadleaf 5.2中使用的是web.xml文件。
与博客文章相同。您可以在org.broadleafcommerce.core.web.controller.account.BroadleafSocialRegisterController
与博客文章相同。适应您网站的HTML。
我希望这会有所帮助。随时提出任何后续问题。