Spring Boot安全性不会重定向configure(HttpSecurity http)方法上的oauth / authorize调用

时间:2019-04-07 17:59:43

标签: java spring spring-boot security oauth

我正在设置一个新服务器,所以我要配置服务器以允许某些URL无需身份验证就可以访问时,我遇到了问题。 除了/ oauth / authorize以外,其他所有程序都工作正常,因为在上一个操作中,输入凭据时,页面未重定向,并且停留在同一页面上。

我尝试的代码如下,该代码无需任何身份验证即可访问URL,但/ oauth / authorize重定向不起作用

@Configuration
@EnableResourceServer
public class ResourceServerConfiguration extends ResourceServerConfigurerAdapter {

    @Override
    public void configure(HttpSecurity http) throws Exception {

      http.authorizeRequests()
        .antMatchers("/oauth/token", "/oauth/authorize**", "/login**", "/user/recover_password", "/user/register").permitAll()
        .anyRequest().authenticated()
        .and()
        .formLogin()
        .and()
        .logout().logoutUrl("/oauth/logout")
        .and()
        .csrf().disable();
    }
}

因此,正如我所说,我需要访问此URL而不进行身份验证,并且还必须能够在/ oauth / authorize上进行重定向,以便能够使用一些外部资源进行登录。但是我得到的是,当我输入凭据时,页面仍停留在同一页面上。

1 个答案:

答案 0 :(得分:0)

好的,最后我找到了修复程序,现在可以正常工作了,添加了sessionManagement,尽管我不知道为什么。

我添加了以下代码:

        .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED)
        .and()

因此,完整的方法应如下所示:

public class ResourceServerConfiguration extends ResourceServerConfigurerAdapter {

    @Override
    public void configure(HttpSecurity http) throws Exception {

      http.
      .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED)
        .and()
        .authorizeRequests()
        .antMatchers("/oauth/token", "/oauth/authorize**", "/login**", "/user/recover_password", "/user/register").permitAll()
        .anyRequest().authenticated()
        .and()
        .formLogin()
        .and()
        .logout().logoutUrl("/oauth/logout")
        .and()
        .csrf().disable();
    }
}

现在,/ oauth / authorize可以正常工作,并且无需身份验证即可访问我的公共URL。

所以,现在,如果任何人都可以解释sessionManagement的功能,那就很好了。