从授权步骤重定向时,OAuth2客户端失败

时间:2020-04-03 19:18:25

标签: spring-boot spring-security spring-oauth2

在当前的春季启动中,我尝试使用外部OAuth2服务器登录用户。现在的问题是,当我执行应用程序时,授权成功后,应该将用户重定向回该应用程序。发生这种情况时,我遇到了错误。

我的application.properties文件:

spring.security.oauth2.client.registration.mercadolivre.provider=mercadolivre
spring.security.oauth2.client.registration.mercadolivre.client-id=...
spring.security.oauth2.client.registration.mercadolivre.client-secret=...
spring.security.oauth2.client.registration.mercadolivre.authorization-grant-type=authorization_code
spring.security.oauth2.client.registration.mercadolivre.redirect-uri=http://localhost:8080/
spring.security.oauth2.client.provider.mercadolivre.authorization-uri=https://auth.mercadolivre.com.br/authorization
spring.security.oauth2.client.provider.mercadolivre.token-uri=https://api.mercadolibre.com/oauth/token

我的安全配置类:

@Configuration
public class Security extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
            .anyRequest().authenticated()
            .and()
            .oauth2Login();
    }
}

我现在面临的错误:

enter image description here

这是什么问题?

更新

我尝试将此行添加到我的applicatio.properties文件中:

spring.security.oauth2.client.registration.mercadolivre.redirect-uri={baseUrl}/login/oauth2/code/{registrationId}

现在我收到此错误:

enter image description here

打开浏览器开发者控制台:

enter image description here

1 个答案:

答案 0 :(得分:0)

redirect-uri更改为其他内容...最好使用reference使用的模板字符串,例如:

spring.security.oauth2.client.registration.mercadolivre.redirect-uri={baseUrl}/login/oauth2/code/{registrationId}

这是将处理授权服务器发回的授权代码的uri。如果您希望在成功认证后将用户重定向到某个页面,请在configure()中执行以下操作:

http.
    ...
    .oauth2Login()
        .defaultSuccessUrl("/");