首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Social Login with Broadleaf

Spring Social Login with Broadleaf
EN

Stack Overflow用户
提问于 2020-01-04 23:59:11
回答 1查看 105关注 0票数 1

我希望提供的Facebook和Gmail登录的宽叶应用程序,我是指下面提到的链接

https://www.broadleafcommerce.com/blog/why-your-ecommerce-site-should-integrate-with-spring-social

然而,该链接是相当旧的,谁可以帮助我发送一个链接或指针做Spring社交登录与宽带版本5.2

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2020-01-07 14:30:54

我实际上还没有实现这一点,但我想我可以提供一些建议。下面的步骤取自博客文章。总体而言,这篇博客文章仍然是正确的,但是自从那篇文章发表以来,声明bean已经从XML转移到了Java。

1)将Spring Social依赖项添加到根POM中

关注这篇博文。

您可能想要更新到Spring Social的最新版本(截至2020年1月的1.1.6)。有关更新的依赖项,请参阅Spring Social Documentation。具体地说,您需要从博客帖子中添加一个额外的依赖项:

代码语言:javascript
复制
<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的示例:

代码语言:javascript
复制
@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)并将其添加到配置中:

代码语言:javascript
复制
.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。

我希望这能帮到你。请随时询问任何后续问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59592380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档