首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用spring security进行社交登录,而不是与提供商API建立连接

使用spring security进行社交登录,而不是与提供商API建立连接
EN

Stack Overflow用户
提问于 2017-02-20 18:01:06
回答 1查看 109关注 0票数 0

我正在尝试使用spring安全和OAUTH2OAUTH来实现社交登录,在提供商(Linkedin)和我的应用程序之间进行authentication.The认证。因此,我的connection对象返回空连接。请查看更多详细信息

JDK版本- JDK 1.6_37

代码语言:javascript
复制
Spring version- spring 3.2.3.RELEASE
代码语言:javascript
复制
Spring Security Version-3.2.3.RELEASE

pom.xml依赖项

代码语言:javascript
复制
     <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-core</artifactId>
        <version>${spring.security.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-core</artifactId>
        <version>${spring.security.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>${spring.security.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-taglibs</artifactId>
        <version>${spring.security.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>${spring.security.version}</version>
    </dependency>
     <dependency>
        <groupId>org.brickred</groupId>
        <artifactId>socialauth-spring</artifactId>
        <version>2.6</version>
    </dependency>

    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpmime</artifactId>
        <version>4.3.5</version>
    </dependency>
    <!-- spring FB social media connector -->
    <dependency>
        <groupId>org.springframework.social</groupId>
        <artifactId>spring-social-facebook</artifactId>
        <version>2.0.3.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.social</groupId>
        <artifactId>spring-social-twitter</artifactId>
        <version>1.1.2.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.social</groupId>
        <artifactId>spring-social-linkedin</artifactId>
        <version>1.0.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>com.external</groupId>
        <artifactId>spring-social-instagram</artifactId>
        <version>1.0.0</version>
    </dependency>

我有一个连接controller.When,我在前端点击linkedin链接,我直接重定向到连接控制.Not,建立到提供商的任何连接。

代码语言:javascript
复制
@Autowired
    public IepSocialConnectCtr(ConnectionFactoryLocator connectionFactoryLocator, ConnectionRepository connectionRepository) {
        super(connectionFactoryLocator, connectionRepository);
        this.connectionRepository = connectionRepository;
    }
    @PostConstruct
    public void initController() {
        super.setSessionStrategy(sessionStrategy);
        super.setApplicationUrl(environment.getProperty("site.url"));
    }
    @Override
    public String connectionStatus(@PathVariable
                                   String providerId, NativeWebRequest nativeWebRequest, Model model) {
        HttpServletRequest request = (HttpServletRequest) nativeWebRequest.getNativeRequest();
        HttpServletResponse response = (HttpServletResponse) nativeWebRequest.getNativeResponse();
        String lang = LocaleContextHolder.getLocale().getLanguage();
        setNoCache(nativeWebRequest);
        processFlash(nativeWebRequest, model);
        Map<String, List<Connection<?>>> connections = connectionRepository.findAllConnections();
        if (connections.isEmpty()) {
            System.out.println("Connection is empty");
            return "redirect:/"+ lang+"/";
        }
        return  "redirect:/"+ lang+"/";
    }

我有一个带有客户端id和密码的属性文件,可以为Linkedin创建连接工厂,并将其分配给ConnectionFactoryLocator对象。

在上面的代码片段中,connectionRepository.findAllConnections()返回空连接。

有人能解释一下应用程序是如何与Spring社交中的提供者(详细说明中的连接流)通信来解决这个问题的吗?

EN

回答 1

Stack Overflow用户

发布于 2017-03-11 01:44:03

通过使用你的客户端秘密,只有你的应用程序与provider.the通信,原因是你的应用程序没有与提供商通信,可能是你没有正确配置你的id和秘密。我不知道linkedin,但当连接到facebook时,我们必须让我们的应用程序存活,这是最重要的事情,还有更多的事情要做。我建议您正确配置密钥。

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

https://stackoverflow.com/questions/42341490

复制
相关文章

相似问题

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