使用Java配置匹配除了某些特定路径之外的所有内容 - antMatchers

时间:2015-07-24 16:10:41

标签: spring oauth spring-security

基于this Answer,我正试图在我的春季应用程序中保护除登录页面之外的所有内容。

所以我将这个Java配置文件用于OAuth2

extends的{​​{1}}:

ResourceServerConfigurerAdapter

@Override public void configure(final HttpSecurity http) throws Exception { http .requestMatchers() .antMatchers("/**") .and() .authorizeRequests() .anyRequest() .authenticated() .antMatchers("/login") .permitAll() {{/}>的extends

OAuth2SsoConfigurerAdapter

所以,我想要的是为每个请求 @Override public void match(RequestMatchers matchers) { matchers.antMatchers("/login"); } @Override public void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .anyRequest() .authenticated() } 而不是http 401

如果执行登录请求,/login注释将用于将其重定向到OAuth2服务器。

更新1

更改过滤器@EnableOAuth2Sso的顺序后,找不到/ login请求。

ResourceServerConfigurerAdapter

此请求将是未经授权的,因为提供了任何令牌

  • http .requestMatchers() .antMatchers("/**") .and() .authorizeRequests() .antMatchers("/login") .permitAll() .anyRequest() .authenticated() http 401 Unauthorized(good)
  • ~/ http 401 Unauthorized(good)

但找不到登录页面:

~/resource http 404 Not Found(bad)

~/login被击中时,正确的功能应该是到OAuth2服务器的http 302重定向。

0 个答案:

没有答案