-2
私はいくつかのコントローラを持っていて、そのうちの1つだけを保護したいと考えていますが、 は時間を費やしています。Springでマークされたコントローラのみを保護することは可能ですか?@Secured注釈
設定からどうすればいいですか?
コントローラ:
@RestController
@RequestMapping("/somepath")
public class UnsecController {
// code here
}
@Secured("ROLE_CUSTOM")
@RestController
@RequestMapping("/somepath2")
public class SecController {
// code here
}
設定:
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true, prePostEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/js/**", "/css/**", "/fonts/**", "/static", "/swagger-ui.html");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf().disable()
.antMatcher("/**")
.addFilterBefore(authFilter(), BasicAuthenticationFilter.class)
.authorizeRequests()
.antMatchers("/health").permitAll()
.anyRequest().authenticated()
.and().sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
}
@Bean
public MacaroonsAuthFilter authFilter() {
return new MacaroonsAuthFilter();
}
}
編集:
私は、 を確保したいが、それらを書きたいいけない100から50台のコントローラを持っています手動設定
セキュリティで保護された(@Secured'で)コントローラが1つしかない場合は、すべてのパスを許可できます( 'anyRequest()。permitAll()')。 – dur