使用Spring Security / Social调试facebook身份验证

时间:2015-11-12 13:36:00

标签: spring facebook spring-mvc spring-security spring-social

我使用Spring Security(4.0.1)和Spring Social(1.1.2)使用现有facebook帐户的表单对Spring MVC应用程序实现身份验证。表单身份验证工作正常。但是,facebook身份验证无效。

据我所知,我已经设置了完成这项工作所需的部分:

  • 创建了一个实现SocialConfigurer的类,添加了facebook连接工厂,useridsource(现有AuthenticationNameUserIdSource)和usersconnectionrepository(自定义用于OrientDB)
  • 添加了一行以在我的WebSecurityConfigurerAdapter中应用SpringSocialConfigurer
  • 添加了SocialUserDetailsS​​ervice bean

这似乎在很大程度上起作用,但身份验证尚未完成。在调用/ auth / facebook时,会发生以下情况:

  • 重定向到facebook.com oauth(登录机制)
  • 在我的应用程序上回调/ auth / facebook,使用冗长的代码变量和状态变量
  • 重定向到我的defaultFailureUrl,没有警告,错误或日志或请求变量中的任何消息

所以出现了问题,但我无法确定究竟是什么或在哪里。 我已尝试将org.springframework.social的日志记录设置为FINEST,但这并未显示任何消息。

有没有人有任何提示如何确定使用Facebook完成身份验证失败的原因?

提前致谢,

了Sem

1 个答案:

答案 0 :(得分:1)

我找到了问题的答案,我必须正确配置log4j才能在我的默认服务器日志中接收所有Spring的日志消息。 这些日志消息帮助我确定了手头的问题:我的应用程序签名已更改。相当困难的问题很长一段时间......

希望这可以帮助其他人解决Spring问题,确保项目中包含log4j,创建log4j属性文件并确保它可用于您的容器。

对我来说,以下配置有效:

log4j.rootLogger=INFO, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.conversionPattern=%5p [%t] (%F:%L) - %m%n

我将它放在我的glassfish域的域配置中,并使用Dlog4j.configuration属性将其添加到JVM选项中。

此致

了Sem