我正在尝试使用spring安全和OAUTH2OAUTH来实现社交登录,在提供商(Linkedin)和我的应用程序之间进行authentication.The认证。因此,我的connection对象返回空连接。请查看更多详细信息
JDK版本- JDK 1.6_37
Spring version- spring 3.2.3.RELEASESpring Security Version-3.2.3.RELEASEpom.xml依赖项
<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,建立到提供商的任何连接。
@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社交中的提供者(详细说明中的连接流)通信来解决这个问题的吗?
发布于 2017-03-11 01:44:03
通过使用你的客户端秘密,只有你的应用程序与provider.the通信,原因是你的应用程序没有与提供商通信,可能是你没有正确配置你的id和秘密。我不知道linkedin,但当连接到facebook时,我们必须让我们的应用程序存活,这是最重要的事情,还有更多的事情要做。我建议您正确配置密钥。
https://stackoverflow.com/questions/42341490
复制相似问题