0

は、ここに私のconfigureコードスニペット私はPOSTPUT httpmethodsにアクセスするためにROLE_ADMINを行う必要があり、この中hasAuthorityの唯一のPOSTのための方法およびPUT httpmethods

@Override 
    public void configure(HttpSecurity http) throws Exception { 
     http. 
     authorizeRequests() 
     .antMatchers("/").permitAll() 
     .antMatchers("/api/user/**").hasAnyAuthority("ROLE_ADMIN") 
     .antMatchers("/api/status/**").hasAuthority("ROLE_ADMIN").anyRequest() 
     .authenticated() 
     .and() 
     .exceptionHandling() 
     .accessDeniedHandler(new OAuth2AccessDeniedHandler()); 
     } 

です。彼はGETまたはDELETE httpmethodにアクセスするべきではありません。私はこれを単一の.antMatchers()メソッドで行う必要があります。 どうすればいいですか?

答えて

1

この春example projectをご覧ください。パスごとにマッチャを定義することができます HTTP動詞。

http 
    .authorizeRequests() 
     .antMatchers(HttpMethod.POST, "/employees").hasRole("ADMIN") 
     .antMatchers(HttpMethod.PUT, "/employees/**").hasRole("ADMIN") 
     .antMatchers(HttpMethod.PATCH, "/employees/**").hasRole("ADMIN") 
関連する問題