【发布时间】:2021-07-09 17:27:40
【问题描述】:
我期待在生产环境中部署我的Spring Application,并且我想包括一些基本和可靠的security 措施。
首先,我扩展 WebSecurityConfigurerAdapter 到我的SecurityConfiguration.java
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Autowired
UserDetailsService userDetailsService ;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
// TODO Auto-generated method stub
auth.userDetailsService(userDetailsService);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
// TODO Auto-generated method stub
http.csrf().disable().authorizeRequests()
.antMatchers("/admin").hasAuthority("ADMIN")
.antMatchers("/ekab").hasAuthority("EKAB")
.antMatchers("/dimos").hasAuthority("DIMOS")
.antMatchers("/","/users/**","/aeds/**","/events/**","/reports/**","*/static/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin().loginPage("/login")
.defaultSuccessUrl("/dashboard",true)
.permitAll()
.and()
.logout()
.permitAll();
}
@Bean
public PasswordEncoder getPasswordEncoder() {
return NoOpPasswordEncoder.getInstance();
}
}
在生产环境中应该启用CSRF,虽然我现在不处理任何 csrf 令牌
GET 端点:请注意,
/users/**包含一些 GET 端点,其中包含 用户信息,我可以对访问者应用限制吗他们?POST 端点:我还找到了一些保护 POST 的方法,方法是使用 JSON Web Token ,这是最佳实践吗?
Spring还提供OAuth2.0、RSA、LDAP等依赖项来增强安全性。
我应该使用哪一个?这些是否可以防止 DDOS 攻击以及暴力攻击?
我必须在应用程序的部署环境中进行修改吗?
【问题讨论】:
标签: java spring spring-boot spring-security