我有一个简单的Spring Boot应用程序,它公开了一个RESTAPI。我已经使用@PreAuthorize(“hasRole('ROLE_4'))注释成功地配置了Spring Security性,以根据restapi中的角色保护每个方法。
我注意到,如果我根本不把@PreAuthorize注释,框架允许任何经过身份验证的用户进行此请求。我想扭转这种行为。因此,如果其中一个程序员忘记添加@PreAuthorize注释,对该方法的任何请求都将被自动拒绝。
以下是我的配置:
@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
//Disable HTTP Basic authentication
http.httpBasic().disable();
//Add the filters
http.addFilterBefore(new AuthenticationFilter(authenticationManager()), BasicAuthenticationFilter.class);
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(securityServiceAuthenticationProvider());
}
@Bean
public AuthenticationProvider securityServiceAuthenticationProvider() {
return new SecurityServiceAuthenticationProvider();
}
}
谢谢Guy Hudara
您可以指定一个自定义AccessDecisionManager,如果查询的对象是方法调用
,则检查它是否有@PreAuthorize
注释;如果是,就让它过去。否则,失败。您可以像这样将其添加到配置:http。授权请求()。accessDecisionManager(myManager)
。
您可以使用MethodSecurityInterceptor;这里是XML配置示例。该示例将安全性应用于单个bean,但表达式非常灵活,您可以保护任何名称以“Controller”结尾的类的所有公共成员。我以前使用过类似的XML配置,但我没有使用Java配置;但是我想您可以在Java配置中做同样的事情。
我试图覆盖Archaius为线程池提供的默认配置(如corepool大小、最大池大小、队列大小等)。但不知何故,它并没有起到作用。下面是我在application.yml文件中的配置。 Hystrix:命令:QueryTimeOutHandler:执行:隔离:线程:TimeOutInMilliseconds:600000线程池:QueryTimeOutHandler:CoreSize:200 Ma
我是jsPlumb的新手,我对演示很感兴趣。当指定目标或源时,我不需要允许连接。我的意思是:当目标是X-连接无法建立。
问题内容: 考虑程序的三个不同的运行: 是否可以在第一种情况下,第二种情况下,第三种情况下使用? 问题答案: 带有参数的参数可以很好地处理此三向输入。 我也可以给它一个参数。 如何使用argparse在python中添加多个参数选项?
我有简单的对象客户端
像这样: 我该怎么办?
我需要解决这个场景。我有两个amqp消费者设置来获取一条消息。 taskChannel是queuechannel,但一次只允许使用一条消息,因此没有并行处理。如果另一条消息花了太长时间才继续,我如何在超时后拒绝一条消息。那么这个消息将返回到队列,由另一个节点继续?我的意思是,这两个消费者预取了两条消息,但一次只能处理一条,所以如果第一条预取消息需要很长时间才能处理,那么如何释放第二条预取消息呢。