我希望提供的Facebook和Gmail登录的宽叶应用程序,我是指下面提到的链接
https://www.broadleafcommerce.com/blog/why-your-ecommerce-site-should-integrate-with-spring-social
然而,该链接是相当旧的,谁可以帮助我发送一个链接或指针做Spring社交登录与宽带版本5.2
提前感谢
发布于 2020-01-07 14:30:54
我实际上还没有实现这一点,但我想我可以提供一些建议。下面的步骤取自博客文章。总体而言,这篇博客文章仍然是正确的,但是自从那篇文章发表以来,声明bean已经从XML转移到了Java。
1)将Spring Social依赖项添加到根POM中
关注这篇博文。
您可能想要更新到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。
2)创建新的applicationContext-social.xml
这是变化最大的一步。BroadLeaf5.2支持在类上使用Spring的@Configuration注解声明bean。这意味着在XML中定义的beans可以在BroadLeaf5.2的@Configuration类中用Java定义。
and的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为整个网站提供服务已经成为标准,所以如果你的网站已经在这么做了,那么这一步可能就没有必要了。查看我们的参考热诊应用程序,它的SiteSecurityConfig.java已经配置为通过https提供所有URL。
如果您确实需要在SiteSecurityConfig.java中添加条目,请找到方法configure(HttpSecurity http)并将其添加到配置中:
.requiresChannel()
.antMatchers("/signin/**")
.requiresSecure()还可以将字符串/signin/**添加到现有的requiresChannel antMatcher中(如果存在)。
3)修改Broadleaf运行时属性
与博客文章相同
4)将新的applicationContext-social.xml添加到web.xml
使用组件扫描时,此步骤不是必需的。我怀疑你在BroadLeaf5.2中使用的是web.xml文件。
5)更改您的RegisterController以扩展BroadleafSocialRegisterController
和博客文章一样。您可以在org.broadleafcommerce.core.web.controller.account.BroadleafSocialRegisterController上查看框架控制器
6)最后,将登录按钮添加到登录页面
和博客文章一样。适应你网站的HTML。
我希望这能帮到你。请随时询问任何后续问题。
https://stackoverflow.com/questions/59592380
复制相似问题