使用 Spring 安全/社交调试 facebook 身份验证
Debugging facebook authentication using Spring Security / Social
我正在使用 Spring 安全 (4.0.1) 和 Spring 社交 (1.1.2) 来实现对 Spring MVC 应用程序的身份验证现有的 Facebook 帐户。表单身份验证工作正常。但是,facebook 身份验证不起作用。
据我所知,我已经设置了完成这项工作所需的部分:
- 创建了一个实现 SocialConfigurer 的 class,添加了 facebook 连接工厂、useridsource(现有的 AuthenticationNameUserIdSource)和 usersconnectionrepository(定制用于 OrientDB)
- 在我的 WebSecurityConfigurerAdapter
中添加了一行以应用 SpringSocialConfigurer
- 添加了一个 SocialUserDetailsService bean
这似乎大部分都有效,但身份验证尚未完成。调用 /auth/facebook 时,会发生以下情况:
- 重定向到 facebook.com oauth(登录机制)
- 回调到我的应用程序 /auth/facebook,带有冗长的代码变量和状态变量
- 重定向到我的 defaultFailureUrl,没有警告、错误或日志或请求变量中的任何消息
所以出了点问题,但我无法确定具体是什么地方。
我已尝试将 org.springframework.social 的日志记录设置为 FINEST,但没有显示任何消息。
有没有人有任何提示如何确定使用 facebook 完成身份验证失败的原因?
提前致谢,
半月
我找到了问题的答案,我必须正确配置 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 选项中
此致,
半月
我正在使用 Spring 安全 (4.0.1) 和 Spring 社交 (1.1.2) 来实现对 Spring MVC 应用程序的身份验证现有的 Facebook 帐户。表单身份验证工作正常。但是,facebook 身份验证不起作用。
据我所知,我已经设置了完成这项工作所需的部分:
- 创建了一个实现 SocialConfigurer 的 class,添加了 facebook 连接工厂、useridsource(现有的 AuthenticationNameUserIdSource)和 usersconnectionrepository(定制用于 OrientDB)
- 在我的 WebSecurityConfigurerAdapter 中添加了一行以应用 SpringSocialConfigurer
- 添加了一个 SocialUserDetailsService bean
这似乎大部分都有效,但身份验证尚未完成。调用 /auth/facebook 时,会发生以下情况:
- 重定向到 facebook.com oauth(登录机制)
- 回调到我的应用程序 /auth/facebook,带有冗长的代码变量和状态变量
- 重定向到我的 defaultFailureUrl,没有警告、错误或日志或请求变量中的任何消息
所以出了点问题,但我无法确定具体是什么地方。 我已尝试将 org.springframework.social 的日志记录设置为 FINEST,但没有显示任何消息。
有没有人有任何提示如何确定使用 facebook 完成身份验证失败的原因?
提前致谢,
半月
我找到了问题的答案,我必须正确配置 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 选项中此致,
半月