使用Spring Boot

时间:2016-07-23 17:23:19

标签: java spring facebook spring-boot oauth2

我正在尝试构建一个基本的Spring Boot应用程序,该应用程序允许我将用户身份验证的工作委托给外部OAuth2提供程序(如Facebook)。

我有两个主要问题:

  1. 验证过程完成后,我得到:
  2.   

    GET请求" https://graph.facebook.com/me"结果是200(OK)

    我也得到以下内容:

      

    将[interface java.util.Map]读作" application / json"运用   [org.springframework.http.converter.json.MappingJackson2HttpMessageConverter@2a7ce52b]              委托org.springframework.security.web.authentication.session.ChangeSessionIdAuthenticationStrategy@4f061f45              SecurityContext为空或内容为匿名 - 上下文不会存储在HttpSession中。

    解析和存储返回的凭据就好像出了问题。

    1. 有时我会收到401错误:
    2.   

      身份验证请求失败:   org.springframework.security.authentication.BadCredentialsException:   无法获取访问令牌

      这是一种打击和错过,我无法追查问题。它也发生在使用Google OAuth2时。

      我基本上使用了@ EnableOAuth2Sso注释,并使用application.yml文件配置了凭据:

      security:
        oauth2:
          client:
            clientId: 123
            clientSecret: bla
            accessTokenUri: https://graph.facebook.com/oauth/access_token
            userAuthorizationUri: https://www.facebook.com/dialog/oauth
            tokenName: oauth_token
            authenticationScheme: query
            clientAuthenticationScheme: form
          resource:
            userInfoUri: https://graph.facebook.com/me
            preferTokenInfo: false
      

      非常感谢任何帮助:)

1 个答案:

答案 0 :(得分:0)

最后我设法解决了这个问题,spring-boot-starter-tomcat maven依赖项被标记为<scope>provided</scope>,从而干扰了在嵌入式tomcat中正确初始化spring上下文对象的能力。